infra/docs/runbooks
Viktor Barzin ffa1d6d5dc [woodpecker] Programmatic Forgejo repo registration
Earlier I claimed the OAuth Web UI flow was the only way to onboard
new Forgejo repos in Woodpecker. That's wrong.

Two parts to the actual workaround:
1. Woodpecker session JWTs are HS256 signed with the user's per-user
   `hash` column from the PG `users` table (NOT the global agent
   secret). Mint a session JWT for the Forgejo viktor user (id=2,
   forge_id=2), and you're authenticated as that user.
2. POST /api/repos?forge_remote_id=N as viktor → Woodpecker calls
   Forgejo with viktor's stored OAuth access_token to create the
   webhook + per-repo signing key. Works.

The 500 I saw earlier was from POST'ing as ViktorBarzin (GitHub
admin), whose user row has no Forgejo OAuth token — Woodpecker's
forge-API call fails for that user, surfacing as a 500.

scripts/woodpecker-register-forgejo-repo.sh wraps the whole flow:
extract hash from PG → mint JWT → activate repo. Verified against
viktor/{broker-sync,claude-agent-service,freedify,hmrc-sync} in
this session — all activated cleanly.

Also updated the runbook with the actual mechanism + the
WOODPECKER_FORGE_TIMEOUT=30s tip (the real root cause of the
'context deadline exceeded' failures, NOT the v3.14 upgrade).
2026-05-10 11:12:36 +00:00
..
beads-auto-dispatch.md
forgejo-registry-breakglass.md [ci] Phase 1: infra-ci dual-push + break-glass tarball 2026-05-07 23:29:33 +00:00
forgejo-registry-rebuild-image.md [docs] Forgejo registry image-rebuild runbook 2026-05-07 23:29:33 +00:00
forgejo-registry-setup.md [forgejo] Phase 0 of registry consolidation: prepare Forgejo OCI registry 2026-05-07 23:29:33 +00:00
mailserver-pfsense-haproxy.md
mailserver-proxy-protocol.md
nfs-prerequisites.md
pfsense-unbound.md
proxmox-host.md
r730-ram-upgrade-272gb.md
registry-rebuild-image.md
registry-vm.md [forgejo] Phases 3+4+5: cutover, decommission, docs sweep 2026-05-07 23:29:34 +00:00
restore-etcd.md
restore-full-cluster.md
restore-lvm-snapshot.md
restore-mysql.md
restore-postgresql.md
restore-pvc-from-backup.md
restore-vault.md
restore-vaultwarden.md
technitium-apply.md
vault-raft-leader-deadlock.md
woodpecker-onboard-forgejo-repo.md [woodpecker] Programmatic Forgejo repo registration 2026-05-10 11:12:36 +00:00