Repository navigation
Conversation
…d (ynw-jj0g) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
eyelock
left a comment
There was a problem hiding this comment.
Hannett · ynw review seat
Verdict: ❌ changes needed — ynw-vjh1, ynw-1i9c
Reviewed against ynw-jj0g (ynh #794) at bc4e466, and against the merge-method decision now made: develop's queue squashes, main's makes merge commits, and the back-merge from main goes in once per release as a merge commit, by an admin, around the queue.
The settings are sound.
- ALLGREEN means every entry must pass on its own.
- 5 per build and per merge is plenty at ynh's pace.
- With
min_entries_to_merge = 1, the 5-minute wait hardly applies. - 60 minutes is far above ynh's longest job: Test takes about 82 seconds on develop's last green run.
merge_methodper ruleset matches the decision.
The queue's CI.
- Forcing every filter output true on
merge_groupis right.true || …makes the string"true", and on a PRfalse || steps.filter.outputs.xstill yields the filter's own value, so PR behaviour is unchanged. - Every job then runs. Packaging Config has passed before (run 42319979756), so I don't expect a stall.
- Skill Security: the pinned action diffs against the base only when
changed-onlyis set and the event ispull_request. Onmerge_groupit scans everything, so it shouldn't stall. The first queued run will confirm it, as you say.
The source-branch pass on merge_group. Same reading as ynf #189, ynm #126 and ynr #116. GitHub adds a PR to the queue only once it "has passed all required branch protection checks", and "Verify PR source branch" is one of main's. So no other branch can reach main through the queue.
What needs a change:
- ynw-vjh1. The release steps still forbid what the decision now requires.
.claude/rules/branching.md,.claude/commands/release.mdand.claude/agents/ynh-releaser.mdsay "Never--admin", and true-merge the back-merge through its PR. Through develop's queue that PR would be squashed. The admin back-merge needs writing in as the one sanctioned exception, done by a human. BRANCH_PROTECTION.md's merge-method lines and the infra README need the same change. - ynw-1i9c. The human step is
terraform applyon its own. It should be the README's sequence: update the shared checkout first, export the env, init, then a plan that must show exactly two in-place updates addingmerge_queue, then apply. A small one for consistency: protect-main'smerge_grouphas nobranches: [main]filter.
Not settled from GitHub's docs: whether a user-owned public repository can have a merge queue. That check is in the inbox item.
…queue (ynw-vjh1) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Weller · ynw worker seat Both review fixes are pushed in 1e92451 (ynw-vjh1) and the PR body (ynw-1i9c). ynw-vjh1: the back-merge into ynw-1i9c: the PR body's human step is now the full sequence (update the shared checkout to merged develop, export |
Weller · ynw worker seat
Adds a merge queue to
developandmain, so two PRs that are each green cannot combine red (the assistants #160 / assistants #176 failure).Changes
infra/github/branches.tf: amerge_queuerule on both rulesets.developsquashes,mainmakes a merge commit, matching the repository's merge settings. ALLGREEN grouping, up to 5 entries per build and merge, 5 minute wait, 60 minute check timeout..github/workflows/ci.yml:merge_grouptrigger. There is no pull request to diff in the queue, so the paths filter step is skipped and every filter output istrue: all jobs run, none is skipped, and All Clear cannot stall the queue waiting on a skipped check..github/workflows/protect-main.yml:merge_grouptrigger. A merge group has nohead_ref, so the job passes there (the PR already passed it to enter the queue)..github/BRANCH_PROTECTION.md: describes the queue.The only required checks are All Clear and Verify PR source branch, so those two workflows are the only ones that needed the trigger. Skill Security stays inside All Clear.
Checked
terraform fmtandterraform validate(backend off) pass;terraform applywas not run.make checkpassed.Next action after merge (not applied by this PR)
A maintainer applies the ruleset change. First update the shared checkout
/Users/david/Storage/Workspace/eyelock/ynhto the mergeddevelop, then:terraform planmust show exactly two in-place updates,github_repository_ruleset.this["develop"]andgithub_repository_ruleset.this["main"], each adding onlymerge_queue. Stop on anything else: that is drift, and applying would change it. Until it is applied the queue does not exist; the workflow triggers are harmless before then. Done when a PR merges through the queue and All Clear runs on the merge_group ref.Note:
protect-main.yml'smerge_grouptrigger has nobranches: [main], so it also runs (and passes) ondevelop's queue. That is harmless.Not verified before merge: the Skill Security action's behaviour on a
merge_groupevent; it is only observable in the first queued run.Closes #794