I am using Renovate on a GitHub repository to keep dependencies up to date.
I want to automerge patches and minor releases, but I want to let minor releases ripen for a few days, using the stabilityDays
setting. This seemed to be working with this config:
"minor": {
"automerge": true,
"stabilityDays": 3,
"prCreation": "not-pending"
},
"patch": {
"automerge": true,
"stabilityDays": 0
},
"major": {
"automerge": false
},
I turned on security code scanning in my repo with "Scorecards" using the ossf/scorecard-action
and the security scanning turned up some findings with helpful mitigation paths. One of the suggestions was to use the SHA digest values to pin Docker dependencies instead of version numbers.
For example,
uses: actions/checkout@v3
becomes
uses: actions/checkout@d0651293c4a5a52e711f25b41b05b2212f385d28
That feels safer, so I like that. But now the renovate PRs are not automerging like they used to and Renovate-bot leaves me this message in a PR that would have automerged when I was not using SHA digests:
Automerge: Disabled by config. Please merge this manually once you are satisfied.
when before it would say:
Automerge: Enabled.
How can I configure Renovate to support better security and less noise and less manual intervention, while not allowing automerging of major versions?
I think that
"digest": {
"automerge": true,
"stabilityDays": 3,
"prCreation": "not-pending"
},
would turn on automerge for dependencies pinned by SHA digest keys, but now I think major version changes would be automerged, and I do not want that.
I have pored over the docs and other SO posts and could not winkle out a fix.
How can I have the serenity of SHA pinning and the convenience of minor and patch automerging?