forked from heavy-duty/ceremony
`git merge` of upstream `8c3a4d1` onto `dad99dd`, common ancestor `84bb1a4`. 18 hunks in 10 files; `lib/forge.sh`, `lib/forge-github.sh` and `lib/forge-forgejo.sh` conflict in none and come out byte-identical. The resolutions the issue decided: VERSION and both CEREMONY_SELF_REF carriers take upstream's numbers; `.github/labels.conf` and `drills/0.4.1.md` keep this forge's; CHANGELOG keeps both sides and names the upstream commit this tree carries. The part the hunks did not contain. Upstream's 0.5.0/0.6.0 work added whole functions to files this tree already owned, so `git merge` took its side without raising a conflict — and with them, EIGHT runtime `gh` call sites that #188 had removed. Seven are ported onto the shim: two reads and four comment writes in issueflow-reconcile, and labels-reconcile's HEAD_COMMIT_AT read. The eighth is `gh workflow run` in labels.yml, which a workflow cannot declare a client for and whose Forgejo equivalent this instance answers with 500 rather than a 4xx — named with its reason rather than ported on a guess. test/no-runtime-gh.test.sh makes the rule mechanical, because reviewing the diff could not: four reviewers reading it each found a different subset, and the contract suite stubs `gh`, so a reintroduced call site passes it. Three seams the resolution decides are silent when resolved wrongly, and each now has a case that fails on the wrong one: the merged record's `merged_at` third column (without it every sort key ties and the highest PR number comes back), the open gather's one-BODY-row-per-line feed (a whole decoded body as one record loses every declaration including the first), and the whole-board read whose COLLISION_FLAGS/WINDOW_FLAGS consumers auto-merged. The open gather carries CLOSING rows as well as BODY rows. `Refs` alone would drop every `Closes #N` link on the open side and reclaim a claim the PR was holding — the existing base64 round-trip case is red without it. actions/refs-not-closing declares CEREMONY_FORGE_CLIENT=gh: its only gather is GraphQL, which Forgejo does not serve at all. #199 ports it. test/run.sh: 28 test files, 0 failed. shellcheck and actionlint clean. Refs #198
24 lines
1 KiB
Bash
Executable file
24 lines
1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# The release doors' executable path (discussion #217; issue #237). The
|
|
# 0.5.0 record had to explain why lib/ruling.sh changed without changing a
|
|
# door. Keep this list executable so a doors-unchanged record measures the
|
|
# workflow and only the scripts it actually runs, while the test catches a
|
|
# new or removed dependency before a record can silently omit it.
|
|
#
|
|
# On this tree the doors also speak the forge shim: #191 ported lib/facts.sh
|
|
# and release.yml off `gh` so a Forgejo consumer can publish at all, which
|
|
# makes lib/forge.sh part of the doors' executable path here. The backends it
|
|
# loads (lib/forge-github.sh, lib/forge-forgejo.sh) are sourced through
|
|
# $FORGE_LIB_DIR at run time rather than by a literal `.` line, so the
|
|
# transitive scan cannot see them and listing them would read as a stale
|
|
# path; lib/forge.sh standing for the trio is the honest entry (#198).
|
|
set -euo pipefail
|
|
|
|
printf '%s\n' \
|
|
.github/workflows/release.yml \
|
|
bin/ \
|
|
lib/version.sh \
|
|
lib/decide.sh \
|
|
lib/facts.sh \
|
|
lib/changelog.sh \
|
|
lib/forge.sh
|