forked from heavy-duty/ceremony
Term 3 of #188. Forgejo has no GraphQL API, so these two gathers could not be translated — there is no endpoint to translate them to. A real forgejo-runner job says so from the other side: GITHUB_GRAPHQL_URL arrives set to the empty string (probe task 278). MERGED_REF_PR_RECORDS was already a body parse; GraphQL was buying pagination, nothing semantic. OPEN_PR_ISSUES used GitHub's own parse of the closing keywords, so it becomes lib/closes_references.sh — a sibling of refs_references, sharing its LOCAL/CROSS classifier so rig#112 can still never be read as local #112 (#61). Both gathers now read /pulls, which /api/v3 and /api/v1 return in the same shape (measured on both). merged_at replaces GraphQL's states: MERGED. Bodies travel base64: jq's @tsv escapes a newline to a literal backslash-n, which a line parser reads as one line and loses every declaration after the first. The accepted delta, written down rather than rediscovered: GitHub also records closing links attached through the PR development sidebar, which live in no body. This family declares links in the body, so the delta is zero here. Refs #188
26 lines
1.2 KiB
Markdown
26 lines
1.2 KiB
Markdown
### Added
|
|
|
|
- `lib/forge.sh` — the forge selector: `forge_detect` names the forge from
|
|
the runner's own environment, `forge_client` names the client it needs, and
|
|
`forge_preflight` refuses loudly before any sweep when the two disagree
|
|
(#188).
|
|
- The reconcilers and `labels-scope` run that preflight first, so a
|
|
GitHub-shaped client on a Forgejo instance is a named refusal instead of a
|
|
sweep that reads nothing and reports success (#188).
|
|
- `lib/closes_references.sh` — the closing-keyword parser, sibling of
|
|
`refs_references`, so "which issues does this PR close" is answered from a
|
|
PR body rather than from GitHub's GraphQL API (#188).
|
|
|
|
### Changed
|
|
|
|
- `issueflow-reconcile` gathers open and merged PRs over REST instead of
|
|
`gh api graphql`. Forgejo serves no GraphQL at all, so the two queries were
|
|
replaced rather than translated; both forges return `number` and `body`
|
|
from `/pulls` in the same shape (#188).
|
|
|
|
### Fixed
|
|
|
|
- `labels-reconcile` and `labels-scope` no longer exit 0 on a Forgejo
|
|
consumer having read zero facts — measured on `heavy-duty/rig`, where the
|
|
sweep printed `reconciled.` over an empty PR list and scope reported "no
|
|
labeler.yml" for a file that exists (#188).
|