Some checks failed
CI / test (pull_request) Has been cancelled
CI / release-exercise (pull_request) Has been cancelled
CI / self-guards (pull_request) Has been cancelled
CI / action-exercise (pull_request) Has been cancelled
CI / docs-sync-exercise (pull_request) Has been cancelled
labels / labels (pull_request) Has been cancelled
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
1.2 KiB
1.2 KiB
Added
lib/forge.sh— the forge selector:forge_detectnames the forge from the runner's own environment,forge_clientnames the client it needs, andforge_preflightrefuses loudly before any sweep when the two disagree (#188).- The reconcilers and
labels-scoperun 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 ofrefs_references, so "which issues does this PR close" is answered from a PR body rather than from GitHub's GraphQL API (#188).
Changed
issueflow-reconcilegathers open and merged PRs over REST instead ofgh api graphql. Forgejo serves no GraphQL at all, so the two queries were replaced rather than translated; both forges returnnumberandbodyfrom/pullsin the same shape (#188).
Fixed
labels-reconcileandlabels-scopeno longer exit 0 on a Forgejo consumer having read zero facts — measured onheavy-duty/rig, where the sweep printedreconciled.over an empty PR list and scope reported "no labeler.yml" for a file that exists (#188).