Secrets Scrubbing

If a task references a secret, Mint will attempt to remove its value from any logs or artifacts produced by the run.

Specifically, Mint will do the following:

  • If a sequence of bytes in the logs matches a secret value, the sequence will be replaced with asterisks (*******). Note that the length of these asterisks is static. A shorter or longer secret value will not change the content of your logs.

  • Secrets in artifacts (such as task outputs) are replaced with a reference to them. For example, if Mint finds the value of a secret called "example", it is being rewritten as ${{ secrets.example }}. Tasks that later use these artifacts will resolve the secret reference again.

Limitations

Please note that Mint will only match secret values against their plain-text representation. If the secret value is encoded in a different format, Mint will not be able to remove it.

A side-effect of this is that it's possible to leak the existence of very generic secrets. For example, if you define a secret for the value echo, Mint filters any mentions of echo in its logs or artifacts.