fix(renovate): actions の PR が automerge されない原因の rebaseWhen を修正する - #503
Merged
Conversation
rebaseWhen: never を指定していると、Renovate は既存ブランチを見つけた 時点で processBranch を no-work で打ち切り、PR 処理そのものに入らない。 automerge を判定する checkAutoMerge はその後段にあるため、 automergeSchedule: on sunday は評価されず、曜日に関係なく action 系の PR が自動マージされない状態になっていた。 早期 return の条件は rebaseWhen === "never" のみなので、conflicted に 変えることで automerge の経路まで到達する。base ブランチが進んだだけで は rebase しない挙動は保たれるため、force push で minimumReleaseAge の 判定がやり直しになる問題も再発しない。 Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
automergeSchedule: ["on sunday"]を設定しているにもかかわらず、日曜になっても自動マージされない問題を修正するrebaseWhen: "never"。Renovate は既存ブランチがある状態でrebaseWhen === "never"を検出すると、processBranchをno-workで早期 return する。automerge を判定するcheckAutoMergeはその後段にあるため、automergeScheduleは評価されず、曜日に関係なく自動マージされない状態だったrebaseWhen === "never"のみなのでconflictedに変更する。base ブランチが進んだだけでは rebase しない挙動は保たれるため、force push でminimumReleaseAgeの判定がやり直しになる問題 (c8bde1c) も再発しない確認事項
rebaseWhen: "never"が入った c8bde1c (2026-04-19) 以降、action 系 PR (chore(deps): update cachix/install-nix-action digest to 630ae54 #476, chore(deps): update cachix/install-nix-action digest to a49548c #466, chore(deps): update actions/checkout action to v7 #418, chore(deps): update actions/checkout digest to df4cb1c #399, chore(deps): update gitleaks/gitleaks-action action to v3 #395, chore(deps): update cachix/cachix-action digest to 5f2d7c5 #362, chore(deps): update actions/create-github-app-token digest to bcd2ba4 #361) はすべて手動マージで、app/renovateによる自動マージは 1 件もない。一方rebaseWhenを上書きしていない customManager 系 (difit, git-wt, ccusage, mcp-grafana) は数時間以内に自動マージされており、7/19(日) も chore(deps): update dependency grafana/mcp-grafana to v0.17.2 #482 が 21:35 JST に自動マージ済み。Renovate 自体は日曜も動いていることを確認したmergeStateStatus: CLEANかつ全チェック SUCCESS で、automerge を阻む要素が他にないことを確認したon sundayは later のon → dayOfWeekとして正しくパースされ、Renovate 本体のテストでも同形式 (on friday and saturday) が日中に true になることを確認した。スケジュール記述自体に問題はないrenovate.jsonの 1 行変更のため、実際の検証は CI の Renovate Config Check に委ねる補足
dependencyDashboardCheckが立って早期 return を回避できるinternalChecksFilter: "none"追加 (3c1a1a9) は 21:36 JST にマージされ、その 1 分前が最後の Renovate 実行だったため効果が検証されていない。修正内容自体は妥当だが、automerge されない真因はこちらだった🤖 Generated with Claude Code