ci: adr check fails in CI because the linked-issue check needs forge auth #491

Closed
opened 2026-09-15 21:06:31 +00:00 by hexajon · 1 comment
Owner

What happens

Every ci / gate run since 2026-09-14 fails on the adr-check step:

✗ adr-check
  Error: cannot resolve the repository for issue tracking (pass --offline to skip): not configured - run 'madtea auth login' or set MADTEA_URL and MADTEA_TOKEN: madtea.token not configured: not configured
GATE: FAIL (cheap checks)

bba01b38 moved the records from docs/adr/ to docs/decisions/. The same go run ./cmd/madtea adr check step now runs the MADR checks, and one of them reads the records' linked issues on the forge. The CI job has no madtea auth, so the step fails before any request. The comment above the step in scripts/gate.sh still says "Local-only, no credentials needed", which was true only for the legacy tree.

Run 195 (6bb57261) was the last green gate. Run 199 (bba01b38) was the first failure.

Decision

  • CI runs only the checks on the record files. A CI result must depend only on the commit, and issue state on the forge changes without a commit.
  • The full check, including the linked issues, runs in the local gate with my own forge auth.
  • The flag that skips the forge part is renamed from adr check --offline to adr check --skip-remote-issues (MCP skip_remote_issues). CI is not offline; it only skips the remote part. The check's --offline has not shipped in a release, so the rename breaks no user. adr new --offline keeps its name.
  • The shipped tool never runs this repo's own checks. finish does not run a repo's gate.

Acceptance

  • adr check --skip-remote-issues and MCP skip_remote_issues=true run only the file checks. --offline is gone from adr check.
  • scripts/gate.sh passes --skip-remote-issues when CI runs it, and its comment says what runs where.
  • ci / gate is green again on main.
  • An ADR records the decision.
## What happens Every `ci / gate` run since 2026-09-14 fails on the `adr-check` step: ``` ✗ adr-check Error: cannot resolve the repository for issue tracking (pass --offline to skip): not configured - run 'madtea auth login' or set MADTEA_URL and MADTEA_TOKEN: madtea.token not configured: not configured GATE: FAIL (cheap checks) ``` bba01b38 moved the records from `docs/adr/` to `docs/decisions/`. The same `go run ./cmd/madtea adr check` step now runs the MADR checks, and one of them reads the records' linked issues on the forge. The CI job has no madtea auth, so the step fails before any request. The comment above the step in `scripts/gate.sh` still says "Local-only, no credentials needed", which was true only for the legacy tree. Run 195 (6bb57261) was the last green gate. Run 199 (bba01b38) was the first failure. ## Decision - CI runs only the checks on the record files. A CI result must depend only on the commit, and issue state on the forge changes without a commit. - The full check, including the linked issues, runs in the local gate with my own forge auth. - The flag that skips the forge part is renamed from `adr check --offline` to `adr check --skip-remote-issues` (MCP `skip_remote_issues`). CI is not offline; it only skips the remote part. The check's `--offline` has not shipped in a release, so the rename breaks no user. `adr new --offline` keeps its name. - The shipped tool never runs this repo's own checks. `finish` does not run a repo's gate. ## Acceptance - `adr check --skip-remote-issues` and MCP `skip_remote_issues=true` run only the file checks. `--offline` is gone from `adr check`. - `scripts/gate.sh` passes `--skip-remote-issues` when CI runs it, and its comment says what runs where. - `ci / gate` is green again on `main`. - An ADR records the decision.
Author
Owner

Fixed in PR #503, merge commit 05eb2ac9.

  • adr check --offline is now adr check --skip-remote-issues (MCP skip_remote_issues): internal/cmd/adr/adr.go, internal/mcp/tools_adr.go, internal/service/adr/adr.go.
  • scripts/gate.sh gained --skip-remote-issues, and .forgejo/workflows/ci.yml runs gate.sh --no-conformance --skip-remote-issues.
  • The decision is recorded in ADR 0036 (docs/decisions/0036-ci-checks-only-the-adr-record-files.md).

Verified before merge: a full local ./scripts/gate.sh passes all 18 steps, with adr-check reading the linked issues. ./scripts/gate.sh --fast --skip-remote-issues, the path CI takes, passes.

Fixed in PR #503, merge commit 05eb2ac9. - `adr check --offline` is now `adr check --skip-remote-issues` (MCP `skip_remote_issues`): `internal/cmd/adr/adr.go`, `internal/mcp/tools_adr.go`, `internal/service/adr/adr.go`. - `scripts/gate.sh` gained `--skip-remote-issues`, and `.forgejo/workflows/ci.yml` runs `gate.sh --no-conformance --skip-remote-issues`. - The decision is recorded in ADR 0036 (`docs/decisions/0036-ci-checks-only-the-adr-record-files.md`). Verified before merge: a full local `./scripts/gate.sh` passes all 18 steps, with adr-check reading the linked issues. `./scripts/gate.sh --fast --skip-remote-issues`, the path CI takes, passes.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea#491
No description provided.