[Infra] Pin squash-only merges with PR-title messages in bootstrap - #39
Conversation
The bootstrap script now patches the repository merge policy before
upserting rulesets: squash is the only allowed merge method, and squash
commits take the pull request's title ("title (#N)") and description,
for direct merges and the merge queue alike. Without the explicit
PATCH, GitHub's default commit-message settings leave queue-built
squash commits titled "Merge pull request #N".
Ported from the tex-core copy (nouprax/tex-core#20). markdown-core
carries the bootstrap script only as the embedded copy in
docs/repository-setup-template.md, so the block lands there.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 59e8000a07
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
PR performance and binary-size diff
Baseline: exact PR base Performance
Binary size
Size deltas are deterministic for identical build inputs. Performance deltas compare separate hosted runners and should be treated as directional evidence, not a pass/fail threshold. |
…estly. The live "main quality gates" ruleset carries a merge queue (SQUASH, ALLGREEN) and a repository-admin bypass that the embedded bootstrap recipe knew nothing about — a re-run would have stripped both. The recipe now reproduces them behind MERGE_QUEUE / MAIN_ADMIN_BYPASS variables defaulting to the live shape. The merge-policy wording no longer presents the squash title/message settings as enforcement: they are repository defaults a direct merge can edit, applied mechanically only by merge-queue commits. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Extended in 00abd2f: the embedded recipe now carries the live merge queue (SQUASH/ALLGREEN) and the repository-admin bypass behind MERGE_QUEUE/MAIN_ADMIN_BYPASS variables (a re-run previously would have stripped both), and the merge-policy wording now describes the squash title/message settings as repository defaults (applied mechanically by queue commits, editable on direct merges) per the review on the tex-core twin PR. The live repository settings were switched to squash-only with PR-title/description defaults via the same call. |
Summary
bootstrap-repository.shnow pins the merge policy: squash-only (allow_merge_commit=false,allow_rebase_merge=false) withsquash_merge_commit_title=PR_TITLE+squash_merge_commit_message=PR_BODY, so both direct merges and merge-queue commits land astitle (#N)+ PR description. ThePATCHsits between the default-branch validation and the ruleset upserts, matching the tex-core placement, and the re-run stays idempotent.scripts/bootstrap-repository.shand its template's embedded copy; markdown-core carries the script only as the embedded copy indocs/repository-setup-template.md, so this PR touches that one spot.Verification
shellcheckclean on the extracted embedded script;audit:repositoryandaudit:cigreen.🤖 Generated with Claude Code