forked from heavy-duty/ceremony
@codex-reviewer-andresmgsl's two scope items, applied before the first review round rather than after. 1. THE GUARD IS COMMENT-AWARE, WITH CONTROLS. It already stripped comments — it has to, because the #188 warning that explains why has("pull_request") is wrong contains the string. Without controls that was an untested property, and the pressure it creates is real: a raw grep would push a builder into deleting the very warning that prevents recurrence. Two fixtures now prove it: the explanatory comment is allowed, an executable jq filter is rejected. 2. ALL THREE SITES ARE DRIVEN BY BEHAVIOUR. The pin makes any revert red, but a pin proves a string is absent, not that each replacement means the intended thing: BOARD_RECORDS the forgejo-shaped board is not read as empty release_bodies an open `release` issue whose gate holds an open member makes a claimable NON-member draw a window flag — empty carriers, no flag, so the row discriminates the site instead of merely reaching it reconcile_issue_pass the scalar payload: key-present-null is an issue, object-valued is a PR, key-absent is still an issue The release_bodies row did NOT discriminate on its first write — it asserted an issue number that BOARD_RECORDS also produces, so reverting the site left it green. Caught by mutating each site separately rather than trusting the suite total. Mutation, per site: BOARD_RECORDS 3 red, release_bodies 2 red, reconcile_issue_pass 2 red. test/run.sh 28/28; issueflow 510/510; shellcheck 0.10.0 clean. Refs #210
27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
### Fixed
|
|
|
|
- `issueflow-reconcile` sees this forge's issues again. The board gather used
|
|
`has("pull_request")`, and every Forgejo entry carries that key — so it
|
|
selected zero rows on every sweep while printing `reconciled.` (#210).
|
|
|
|
- Three sites take `.pull_request == null`, the discriminator the file's own
|
|
comment already specified and that one of its four call sites already used
|
|
(#210).
|
|
|
|
- `post-merge` transitions can fire again: they could not, because the sweep
|
|
saw no issues to transition (#210).
|
|
|
|
### Added
|
|
|
|
- A gather-level case drives the real board read against a Forgejo-shaped
|
|
fixture — every entry carrying the key. The existing discriminator cases
|
|
assert `jq` expressions in isolation and passed throughout this regression
|
|
(#210).
|
|
|
|
- A source pin forbids `has("pull_request")` on this surface, because the rule
|
|
was stated in a comment and violated forty lines below it. It strips comments,
|
|
so the #188 warning that explains the trap is allowed to stay (#210).
|
|
|
|
- All three sites are covered behaviourally, not only by the pin: the board
|
|
gather, the release-body gather through an observable window flag, and the
|
|
per-issue payload check (#210).
|