Skip to content

Commit 6fe3742

Browse files
mschmickingclaude
andcommitted
fix(ci): allow the scope release-please uses in its own PR title
release-please opens 'chore(main): release X.Y.Z'. The PR title check has an allowlist of scopes and 'main' was not on it, so that title failed. With conventional-commit now a required status check in the branch ruleset, the release PR would have been permanently unmergeable — a trap that only appears once enforcement is on. Adds 'main' with a comment saying why it is there, since it is a branch name rather than a component and looks out of place next to sync/auth/logs. Adds 'types' too, which was missed when that command landed. Removes docs/main-ruleset.json; the rule is configured and the checklist lists the settings inline. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 74758d7 commit 6fe3742

3 files changed

Lines changed: 10 additions & 45 deletions

File tree

.github/workflows/pr-title.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,24 @@ jobs:
3131
ci
3232
chore
3333
revert
34-
# Optional, but keep the vocabulary small so it stays meaningful.
34+
# Optional, but keep the vocabulary small so it stays meaningful. A scope is
35+
# not required, but any scope used must appear here.
36+
#
37+
# 'main' is not a component — it is the branch name release-please puts in its
38+
# own PR title ("chore(main): release 1.0.0"). Without it that title fails this
39+
# check, and once the check is required by the branch ruleset the release PR
40+
# becomes unmergeable.
3541
scopes: |
3642
sync
3743
auth
3844
watch
3945
logs
4046
json
47+
types
4148
cli
4249
deps
4350
docs
51+
main
4452
requireScope: false
4553
# Only the trailing full stop is rejected. A lower-case rule was tried and
4654
# removed: Dependabot capitalises some of its titles ("Bump x from 1 to 2")

docs/GOING-PUBLIC.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ These change how merges behave, and the release automation depends on them.
1616
> "Your rulesets won't be enforced on this private repository until you move to a GitHub
1717
> Team organization account". Reading it back over the API also 403s on the free plan.
1818
> So configure it whenever you like — it starts working the moment the repo is public.
19-
> `docs/main-ruleset.json` is a ready-to-import copy.
19+
> The settings are listed in step 5.
2020
2121
- [ ] **Settings → General → Pull Requests**
2222
- [ ] Enable **Allow squash merging**
@@ -125,8 +125,6 @@ Things that only start working once the repository is public:
125125
- [ ] **Branch protection** — now available, since the repository is public.
126126
**Settings → Rules → Rulesets → New branch ruleset**:
127127

128-
Import `docs/main-ruleset.json`, or set it by hand:
129-
130128
- Name: `main` (only a label; it appears in the "blocked by" message on a rejected push)
131129
- Enforcement status: **Active**
132130
- Target branches: **Include default branch**

docs/main-ruleset.json

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)