ops: manually merge PR #1104 — CI deadlock (Caddy /forge/ strip_prefix fix can't pass CI it fixes) #1154

Closed
opened 2026-04-21 18:57:40 +00:00 by gardener-bot · 0 comments
Collaborator

Situation

PR #1104 fixes lib/generators.sh to add uri strip_prefix /forge before reverse_proxy forgejo:3000 in the /forge/* Caddy handle block. This is required because Forgejo returns 404 for /forge/* paths without the prefix being stripped.

Circular dependency

CI cannot clone the repo to run this PR because:

  1. #1080 set FORGEJO__server__ROOT_URL=http://forgejo:3000/forge/
  2. Forgejo includes /forge/ in the clone_url in webhook payloads → Woodpecker uses http://token@forgejo:3000/forge/disinto-admin/disinto.git
  3. Caddy forwards /forge/... to Forgejo without strip_prefix → Forgejo router returns 404
  4. git clone exits 128
  5. CI has failed on 4 consecutive runs (pipelines 1592–1595)

Verified from actual CI log:

fatal: repository '***/forge/disinto-admin/disinto.git/' not found

What needs to happen

One of:

  • Option A (recommended): Admin merges PR #1104 manually, bypassing CI. The code change is verified correct — identical pattern to already-merged /staging/ strip (#1079). Once merged, the Caddy config regenerates and future PR clones work.
  • Option B: Operator applies uri strip_prefix /forge live to the edge Caddy config to break the deadlock, then pushes an empty commit to trigger CI retry.

Acceptance criteria

  • PR #1104 merged (manually or after CI passes post live-patch)
  • curl http://localhost/forge/ returns 200
  • CI clone succeeds for subsequent PRs

Affected files

  • lib/generators.sh — the fix
  • PR #1104 on this repo
## Situation PR #1104 fixes `lib/generators.sh` to add `uri strip_prefix /forge` before `reverse_proxy forgejo:3000` in the `/forge/*` Caddy handle block. This is required because Forgejo returns 404 for `/forge/*` paths without the prefix being stripped. ## Circular dependency CI cannot clone the repo to run this PR because: 1. `#1080` set `FORGEJO__server__ROOT_URL=http://forgejo:3000/forge/` 2. Forgejo includes `/forge/` in the `clone_url` in webhook payloads → Woodpecker uses `http://token@forgejo:3000/forge/disinto-admin/disinto.git` 3. Caddy forwards `/forge/...` to Forgejo **without** strip_prefix → Forgejo router returns 404 4. `git clone` exits 128 5. CI has failed on 4 consecutive runs (pipelines 1592–1595) Verified from actual CI log: ``` fatal: repository '***/forge/disinto-admin/disinto.git/' not found ``` ## What needs to happen One of: - **Option A (recommended):** Admin merges PR #1104 manually, bypassing CI. The code change is verified correct — identical pattern to already-merged `/staging/` strip (#1079). Once merged, the Caddy config regenerates and future PR clones work. - **Option B:** Operator applies `uri strip_prefix /forge` live to the edge Caddy config to break the deadlock, then pushes an empty commit to trigger CI retry. ## Acceptance criteria - [ ] PR #1104 merged (manually or after CI passes post live-patch) - [ ] `curl http://localhost/forge/` returns 200 - [ ] CI clone succeeds for subsequent PRs ## Affected files - `lib/generators.sh` — the fix - PR #1104 on this repo
gardener-bot added the
backlog
priority
labels 2026-04-21 18:57:40 +00:00
dev-qwen self-assigned this 2026-04-21 18:58:24 +00:00
dev-qwen added
in-progress
and removed
backlog
labels 2026-04-21 18:58:24 +00:00
dev-qwen removed their assignment 2026-04-21 19:09:59 +00:00
dev-qwen removed the
in-progress
label 2026-04-21 19:09:59 +00:00
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: disinto-admin/disinto#1154
No description provided.