ci(renovate): pilot platform automerge - #58
Conversation
Pilot results, part 1: human test PRs (2026-09-24)Each test PR got auto-merge armed with ordinary
Every required check is emitted by GitHub Actions ( Still to do, once this PR is merged: the review scenarios on real Renovate PRs (review requested/removed, changes requested, dismissed), plus at least 3 Renovate PRs merging through auto-merge. Baseline under the current mechanism, from the last 15 Renovate merges here: the median time from green to merge is 219 min; 5 merged within 11 minutes, and 7 waited 4–10 hours for Renovate's next run. |
Signed-off-by: edbfi <326875205+edbfi@users.noreply.github.com>
84d9856 to
4f4bb49
Compare
Pilot results, part 2: review scenarios on a real Renovate PR (2026-09-24)I created Renovate's lock file maintenance PR early from the Dependency Dashboard (it was only waiting for its Monday schedule), which gave #67. Renovate opened it at 13:36:36 and armed GitHub auto-merge itself (
Finding: policy verdicts don't carry across trigger eventsGitHub evaluates This fails closed: nothing merges wrongly. It only matters when a Timing
|
automerge.json now enables automerge with platformAutomerge, rebase merges and no wildcard package rule, so the base preset's manual renovate-config rule and repository opt-outs still win. default.json no longer sets the merge mechanism. The guides pilot (edbfi/guides#58, #67) verified that every required-check and policy condition blocks GitHub auto-merge, and the median wait from green to merge dropped from 219 minutes to seconds. Add scripts/renovate_effective.mjs, a conservative resolver that reports automerge as potentially enabled whenever any automerge: true remains and treats an omitted platformAutomerge as Renovate's default, true. BREAKING CHANGE: automerge.json no longer opts renovate-config updates in and now uses platform automerge; consumers need Allow auto-merge enabled. Signed-off-by: edbfi <326875205+edbfi@users.noreply.github.com>
Pilot results, part 3: Renovate auto-merges (2026-09-25)
#69 had no review activity: Renovate opened it, armed auto-merge, and GitHub merged 5 s after the last required check ( Count: 2 of 3. The third should be Not counted: #26 ( |
automerge.json now enables automerge with platformAutomerge, rebase merges and no wildcard package rule, so the base preset's manual renovate-config rule and repository opt-outs still win. default.json no longer sets the merge mechanism. The guides pilot (edbfi/guides#58, #67) verified that every required-check and policy condition blocks GitHub auto-merge, and the median wait from green to merge dropped from 219 minutes to seconds. Add scripts/renovate_effective.mjs, a conservative resolver that reports automerge as potentially enabled whenever any automerge: true remains and treats an omitted platformAutomerge as Renovate's default, true. BREAKING CHANGE: automerge.json no longer opts renovate-config updates in and now uses platform automerge; consumers need Allow auto-merge enabled. Signed-off-by: edbfi <326875205+edbfi@users.noreply.github.com>
automerge.json now enables automerge with platformAutomerge, rebase merges and no wildcard package rule, so the base preset's manual renovate-config rule and repository opt-outs still win. default.json no longer sets the merge mechanism. The guides pilot (edbfi/guides#58, #67) verified that every required-check and policy condition blocks GitHub auto-merge, and the median wait from green to merge dropped from 219 minutes to seconds. Add scripts/renovate_effective.mjs, a conservative resolver that reports automerge as potentially enabled whenever any automerge: true remains and treats an omitted platformAutomerge as Renovate's default, true. BREAKING CHANGE: automerge.json no longer opts renovate-config updates in and now uses platform automerge; consumers need Allow auto-merge enabled. Signed-off-by: edbfi <326875205+edbfi@users.noreply.github.com>
automerge.json now enables automerge with platformAutomerge, rebase merges and no wildcard package rule, so the base preset's manual renovate-config rule and repository opt-outs still win. default.json no longer sets the merge mechanism. The guides pilot (edbfi/guides#58, #67) verified that every required-check and policy condition blocks GitHub auto-merge, and the median wait from green to merge dropped from 219 minutes to seconds. Add scripts/renovate_effective.mjs, a conservative resolver that reports automerge as potentially enabled whenever any automerge: true remains and treats an omitted platformAutomerge as Renovate's default, true. BREAKING CHANGE: automerge.json no longer opts renovate-config updates in and now uses platform automerge; consumers need Allow auto-merge enabled. Signed-off-by: edbfi <326875205+edbfi@users.noreply.github.com>
Pilot results, part 4: decision and release (2026-09-25)Rather than wait days for natural updates, the owner chose to create the remaining conditions in a disposable consumer, edbfi/v4-canary, running the v4 code. There, three more real Renovate PRs auto-merged 7–28 s after going green, with post-merge push CI green each time (details in edbfi/automation#62). Together with #67 and #69 here, that is 5 real Renovate auto-merges in total. Decision: |
Canary result under v4 (2026-09-25)After the v4 migration (#70), the natural astro/Starlight/MDX update #72 was armed by Renovate and merged 3 s after |
Pilot for the automation v4 merge design: Renovate turns on GitHub's native auto-merge for its PRs instead of merging them itself on its next run. GitHub then merges as soon as the required checks pass.
Change
renovate.json:platformAutomerge: false→true.allow_auto_mergeis on, which GitHub needs before Renovate can request auto-merge.Nothing else changes. The required checks (
guard,quality / …,smoke / …,ci / required,policy / ci / policy), strict up-to-date branches, the rebase merge strategy andignoreTests: falseall stay as they are.Pilot plan
This PR records the results. Each scenario must not merge until its condition clears:
name:is changed)do-not-mergehold is added after policy is green while CI is still pendingpull_request-event policy run, see comment)Human test PRs use ordinary
gh pr merge --auto --rebase(no administrator bypass) and are closed afterwards.