VirtusLab / scala-cli

Scala CLI is a command-line tool to interact with the Scala language. It lets you compile, run, test, and package your Scala code (and more!)
https://scala-cli.virtuslab.org
Apache License 2.0
544 stars 128 forks source link

Add option to provide credentials for custom repositories #3200

Open ghostbuster91 opened 6 days ago

ghostbuster91 commented 6 days ago

Is your feature request related to a problem? Please describe.

When configuring publishing one can provide --password and --user options to configure credentials. However there is no such option in scala-cli when configuring credentials for custom repositories.

Describe the solution you'd like A new cli option that could be use for that, similar to what we have for configuring publishing credentials. e.g.

scala-cli --repository-credentials "$HOST" env:USER env:TOKEN

Describe alternatives you've considered Currently this can be done in one of the following ways:

  1. setting COURSIER_CREDENTIALS="$HOST $USER:$TOKEN" environment variable when calling scala-cli
  2. passing -Dcoursier.credentials="$HOST $USER:$TOKEN" java property when calling scala-cli
  3. calling scala-cli --power config repositories.credentials $HOST env:USER env:TOKEN beforehand

1. and 2. have the downside that credentials are passed as a clear text and could be leaked if not masked 3. seems counter-intuitive when invoking in a CI environment as we don't want to mess with global state

ghostbuster91 commented 5 days ago

Maybe it would just make sense to support arbitrary configuration passed inline?