fix: align Ceremony actors with Forgejo

This commit is contained in:
codex-reviewer-andresmgsl 2026-07-30 17:49:39 +00:00
parent 12803b2b97
commit 0362e5cf43
4 changed files with 38 additions and 4 deletions

4
.github/labels.conf vendored
View file

@ -1,5 +1,5 @@
panel=claude-bot-andresmgsl codex-bot-andresmgsl grok-bot-andresmgsl kimi-bot-andresmgsl panel=cluade-reviewer-andresmgsl codex-reviewer-andresmgsl grok-reviewer-andresmgsl kimi-reviewer-andresmgsl
triage-actors=dan-claude-bot triage-actors=cluade-reviewer-andresmgsl
scope:bootstrap|C5DEF5|bootstrap — hardening a pristine server into a node scope:bootstrap|C5DEF5|bootstrap — hardening a pristine server into a node
scope:users|C5DEF5|users-* — class model, apply/status, close-root scope:users|C5DEF5|users-* — class model, apply/status, close-root
scope:runner|C5DEF5|runner-* / forgejo-runner-* — CI runner lifecycle, either forge scope:runner|C5DEF5|runner-* / forgejo-runner-* — CI runner lifecycle, either forge

View file

@ -16,8 +16,8 @@ genuinely rig's.
1. **Fork and branch.** Contributors work from forks; upstream branches are 1. **Fork and branch.** Contributors work from forks; upstream branches are
for maintainers. Title the PR conventionally (`feat:`, `fix:`, `docs:`). for maintainers. Title the PR conventionally (`feat:`, `fix:`, `docs:`).
2. **The review panel** (`.github/labels.conf`'s `panel=` line): 2. **The review panel** (`.github/labels.conf`'s `panel=` line):
`claude-bot-andresmgsl`, `codex-bot-andresmgsl`, `grok-bot-andresmgsl`, `cluade-reviewer-andresmgsl`, `codex-reviewer-andresmgsl`,
`kimi-bot-andresmgsl` — `grok-reviewer-andresmgsl`, `kimi-reviewer-andresmgsl` —
the required verdicts for a PR are the panel minus its author. The the required verdicts for a PR are the panel minus its author. The
maintainer (`danmt`) takes the last word and merges. maintainer (`danmt`) takes the last word and merges.
3. **Checks must be green**: `shellcheck`, `bash test/cli.sh` and 3. **Checks must be green**: `shellcheck`, `bash test/cli.sh` and

3
changelog.d/116.md Normal file
View file

@ -0,0 +1,3 @@
### Fixed
- Ceremony recognizes the Forgejo review panel and triage actor (#116)

View file

@ -3664,6 +3664,37 @@ check "release.yml: the caller was not absolutised (docs-sync would go red)" 0 "
check "labels.yml: the caller was not absolutised either" 0 "count=0" \ check "labels.yml: the caller was not absolutised either" 0 "count=0" \
wf_count labels.yml '^[[:space:]]*uses:[[:space:]]*https://.*ceremony/\.github/workflows/' wf_count labels.yml '^[[:space:]]*uses:[[:space:]]*https://.*ceremony/\.github/workflows/'
# The reconciler reads the machine roster from labels.conf while contributors
# read the prose roster. A Forgejo migration that updates only one side makes
# the required-verdict set differ depending on who is reading it.
configured_panel() {
sed -n 's/^panel=//p' "$ROOT/.github/labels.conf"
}
documented_panel() {
# shellcheck disable=SC2016 # backticks are literal Markdown delimiters
sed -n '/^2\. \*\*The review panel\*\*/,/required verdicts/p' "$ROOT/CONTRIBUTING.md" \
| grep -oE '`[^`]+-reviewer-andresmgsl`' \
| tr -d '`' \
| paste -sd ' ' -
}
panel_is_forgejo_roster() {
[ "$(configured_panel)" = \
"cluade-reviewer-andresmgsl codex-reviewer-andresmgsl grok-reviewer-andresmgsl kimi-reviewer-andresmgsl" ]
}
panel_rosters_match() {
[ "$(documented_panel)" = "$(configured_panel)" ]
}
triage_actor_is_forgejo_claude() {
[ "$(sed -n 's/^triage-actors=//p' "$ROOT/.github/labels.conf")" = \
"cluade-reviewer-andresmgsl" ]
}
check "labels: panel names exactly the four Forgejo reviewer accounts" 0 "" \
panel_is_forgejo_roster
check "labels: CONTRIBUTING panel matches labels.conf exactly" 0 "" \
panel_rosters_match
check "labels: Forgejo triage actor is exactly the existing claude account" 0 "" \
triage_actor_is_forgejo_claude
# One tag governs all eight references — the pin may be bumped, never split. # One tag governs all eight references — the pin may be bumped, never split.
ceremony_tags() { ceremony_tags() {
grep -rhoE 'heavy-duty/ceremony/[^@]+@[^[:space:]]+' "$ROOT/.github/workflows/" \ grep -rhoE 'heavy-duty/ceremony/[^@]+@[^[:space:]]+' "$ROOT/.github/workflows/" \