diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md index c071f485201df4..ea790acc370d63 100644 --- a/docs/usage/configuration-options.md +++ b/docs/usage/configuration-options.md @@ -802,16 +802,41 @@ For the full list of available managers, see the [Supported Managers](https://do ## encrypted -Use this to encrypt secrets in a way which can be stored in repository configs. +Before you put any secrets in your repository configuration, encrypt the secrets. +You can encrypt secrets using either a HTML page, or the CLI. -See [Private module support](https://docs.renovatebot.com/getting-started/private-packages) for details on how this is used to encrypt npm tokens. +To encrypt secrets for the hosted Mend Renovate app for github.com with a HTML page, go to [app.renovatebot.com/encrypt](https://app.renovatebot.com/encrypt) and complete the form. +If you're self-hosting Renovate, you may download and edit the form, to use your own PGP public key. + +You can also encrypt secrets from the CLI, using the `curl`, `echo`, `jq`, `gpg`, `grep` and `tr` CLI programs. +Here is an example: + +``` +curl https://app.renovatebot.com/renovate.pgp --output renovate.pgp +echo -n '{"o":"your-organization", "r":"your-repository (optional)", "v":"your-secret-value"}' | jq . -c | gpg --encrypt -a --recipient-file renovate.pgp | grep -v '^----' | tr -d '\n' +``` + +The above script uses: + +- `curl` to download the Mend Renovate hosted app's public key +- `echo` to echo a JSON object into `jq` +- `jq` to validate the JSON and then compact it +- `gpg` to encrypt the contents +- `grep` and `tr` to extract the encrypted payload which we will use + +The `jq` step is optional, you can leave it out if you wish. +Its primary value is validating that the string you echo to `gpg` is valid JSON, and compact. !!! note Encrypted secrets must have at least an org/group scope, and optionally a repository scope. This means that Renovate will check if a secret's scope matches the current repository before applying it, and warn/discard if there is a mismatch. -Encrypted secrets typically have a single org, but you may encrypt a secret with more than one, e.g. specifying `org1,org2` to allow the secret to be used in both `org1` and `org2` organizations. +Encrypted secrets usually have a single organization. +But you may encrypt a secret with more than one organization, for example: `org1,org2`. +This way the secret can be used in both the `org1` and `org2` organizations. + +For more information on how to use secrets for private packages, read [Private package support](https://docs.renovatebot.com/getting-started/private-packages). ## excludeCommitPaths