forked from heavy-duty/rig
fix: align Ceremony actors with Forgejo
This commit is contained in:
parent
12803b2b97
commit
0362e5cf43
4 changed files with 38 additions and 4 deletions
4
.github/labels.conf
vendored
4
.github/labels.conf
vendored
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
3
changelog.d/116.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Ceremony recognizes the Forgejo review panel and triage actor (#116)
|
||||||
31
test/cli.sh
31
test/cli.sh
|
|
@ -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/" \
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue