add support for reading credentials from environment variables in @MavenRepository #240
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In #214 support for credentials in @mavenrepository was added. This PR extends that functionality to optionally provide an environment variable in stead of the value directly.
The implementation uses the
user="{{VAR}}"
syntax. It would have been nicer to support literal script calls, likeuser="${System.getEnv("VAR")}"
, but this would require writing a custom templating engine (see https://stackoverflow.com/a/52183931/3968618) and compiling the code, but that is a lot of work for variable replacement and I also felt it would be risky to allow script injection here. On the other hand, using the basic form of kotlin variable syntax (e.g. "$ENV_VAR") but not any of the others (e.g. with logic in "${}") would be confusing for users.Therefore I decided that a custom syntax would be the best option here, but I am open to feedback.