ceremony-ci-probe/test
cluade-reviewer-andresmgsl a968e13ca4 fix(forge): parity gaps in the forgejo verbs — upsert, timestamps, typos
@codex-reviewer-andresmgsl's three findings (#4743), all real.

1. forge_label_create is now an UPSERT, matching gh label create --force.
   bootstrap_labels creates every declared label on EVERY workflow_dispatch,
   so a plain POST onto an existing name aborted the bootstrap under set -e
   from the second dispatch onward. Resolves name -> id and PATCHes when it
   exists.

2. forge_pr_view carries createdAt/completedAt. checks_state groups repeated
   contexts and selects the newest by [.startedAt, .createdAt, .completedAt];
   mapping only {context,state} left the winner to incidental array order, so
   a stale re-run could outrank the live verdict. The combined status carries
   created_at and updated_at — measured.

3. forge_issue_edit refuses unknown flags and missing values. The github
   backend hands them to gh, which fails; dropping them here turned a
   mis-typed port site into a mutation that silently did not happen — this
   issue's own failure class, inside the fix for it.

Also settles @grok-reviewer-andresmgsl's note 3 (#4741): Forgejo Actions DO
land as commit statuses on this instance, so the rollup is not empty.
rig main carries four — "ci / check (push)" and siblings, state success,
each with created_at. statusCheckRollup therefore populates, and NONE is not
silently substituted for SUCCESS.

Each fix mutation-verified: dropping the timestamps, forcing POST-always, and
restoring the silent flag skip each red exactly their own cases. The
newest-verdict case drives the real checks_state, not a copy.

Refs #188
2026-08-02 19:22:28 +00:00
..
fixtures Merge pull request #29 from codex-bot-andresmgsl/build/4-changelog-section 2026-07-22 20:12:01 +01:00
changelog-armed.test.sh fix: the sentinel's one-line contract is checked on the file, not the $(cat) word 2026-07-25 13:29:02 +00:00
changelog-assemble.test.sh test: sentinel rows across the shape predicate, the armed guard, and the assembler 2026-07-25 13:12:30 +00:00
changelog-assembled.test.sh test: cover grouped anchored release replay 2026-07-24 16:17:02 +00:00
changelog-monotonic.test.sh test: changelog-monotonic contract suite — constructed git histories 2026-07-22 21:11:46 +00:00
changelog.test.sh fix: the sentinel's one-line contract is checked on the file, not the $(cat) word 2026-07-25 13:29:02 +00:00
closes_references.test.sh feat(forge): replace both gh api graphql sites with REST + a body parser 2026-08-02 18:41:03 +00:00
decide.test.sh feat: lib/decide.sh — the merge door's decision, pure and exhaustively tested 2026-07-22 18:59:29 +00:00
docs-sync.test.sh fix: refuse non-regular nodes everywhere; machine-verify the mirror README 2026-07-22 21:59:37 +00:00
drill-recorded.test.sh feat: actions/drill-recorded — a release carries its evidence 2026-07-22 21:28:06 +00:00
facts.test.sh test: root-commit fixtures — (none) base, D2 loud-death pin, e2e chain 2026-07-24 12:16:04 +00:00
forge-backends.test.sh fix(forge): parity gaps in the forgejo verbs — upsert, timestamps, typos 2026-08-02 19:22:28 +00:00
forge.test.sh test(forge): assert the distinguishing text, not a surviving substring 2026-08-02 19:16:48 +00:00
harness.sh ci: scaffold test and lint workspace 2026-07-22 16:56:25 +00:00
issueflow-reconcile.test.sh test(forge): cover the open-pull REST gather at main() granularity 2026-08-02 18:49:28 +00:00
labels-reconcile.test.sh feat(forge): refuse loudly when the client cannot speak the forge 2026-08-02 18:29:08 +00:00
labels-scope.test.sh fix(round): labeler.yml header tells the truth; labels-scope maps to scope:labels 2026-07-24 12:22:09 +00:00
labels-triggers.test.sh labels: keep edited/reopened on issues; correct 0.3.0 adoption prose (#199 round) 2026-07-28 19:04:27 +00:00
labels.test.sh labels: keep edited/reopened on issues; correct 0.3.0 adoption prose (#199 round) 2026-07-28 19:04:27 +00:00
release-chain.test.sh test: root-commit fixtures — (none) base, D2 loud-death pin, e2e chain 2026-07-24 12:16:04 +00:00
ruling.test.sh test: cover the shape check and the ladder's rungs 2026-07-23 15:49:31 +00:00
run.sh ci: scaffold test and lint workspace 2026-07-22 16:56:25 +00:00
runner-isolated.test.sh test(guards): runner-isolated fixture matrix — 12 spec rows plus the block-sequence cases (#58) 2026-07-23 12:03:55 +00:00
self-ref.test.sh feat: the reusable release workflow — both doors, one implementation 2026-07-22 19:55:39 +00:00
version.test.sh feat: lib/version.sh — one version abstraction, two backends 2026-07-22 18:19:50 +00:00