-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(github)!: change automerge strategy priority order to allow platform signed commits #32016
fix(github)!: change automerge strategy priority order to allow platform signed commits #32016
Conversation
@pballandras thanks for this PR, but please create a Discussion first so we can discuss. I'll mark this PR as draft in the meantime. Please be sure to describe exactly which use case/scenario you find not be working today. |
I see you use semantic release and in the discussion you said you wanted this to be in a major release. I believe you can add it in the commit footer during merge, but do you need anything from me at this point? Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove unused param
@pballandras can you accept the change today? We want to release v39 soon. |
Changes the priority order so that squash merges are preferred over rebase merge and merge commits. Doing so allows GitHub to sign the resulting commit on the base branch. BREAKING CHANGE: Renovate will now prefer squash merges over others in GitHub, if they are allowed.
Changes the priority order so that squash merges are preferred over rebase merge and merge commits. Doing so allows GitHub to sign the resulting commit on the base branch. BREAKING CHANGE: Renovate will now prefer squash merges over others in GitHub, if they are allowed.
Changes the priority order so that squash merges are preferred over rebase merge and merge commits. Doing so allows GitHub to sign the resulting commit on the base branch. BREAKING CHANGE: Renovate will now prefer squash merges over others in GitHub, if they are allowed.
Changes the priority order so that squash merges are preferred over rebase merge and merge commits. Doing so allows GitHub to sign the resulting commit on the base branch. BREAKING CHANGE: Renovate will now prefer squash merges over others in GitHub, if they are allowed.
Changes
This PR introduces a change in the way Renovate selects an automerge strategy/method for GitHub repositories. Previously it would test which merge strategy the repo allows and choose the first one available in this order in an
if
statement:This PR changes this to:
Context
Discussion:
Why is the order important
The reason why the order is important lies in a limitation GitHub has when it comes to verifying/signing commits when merging PRs. More specifically:
https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#signature-verification-for-rebase-and-merge
Since Renovate uses this method if there's no other configuration to explicitly change it in the repository, by default, it means the PRs Renovate merges won't be signed. Hence, this PR.
Documentation (please check one with an [x])
Although I don't believe there are changes needed to the doc, if you feel like additions could be made somewhere I didn't think of, I'll gladly contribute.
How I've tested my work (please select one)
I have verified these changes via:
To test if the reordering would work I disabled some merge strategies to force Renovate into other branches of the
if
statement. With no surprises, the current order is respected and the interesting part is when Renovate squashes or uses merge commits (the merge strategy), the resulting commits are signed. Which is what is we want.