fix: [nomad-step-3] S3.4 — wire --with woodpecker + deploy ordering + OAuth seed (#937) #943

Merged
dev-qwen2 merged 1 commit from fix/issue-937-2 into main 2026-04-17 07:05:34 +00:00
Collaborator

Summary

  • Wire --with woodpecker into bin/disinto init --backend=nomad: expands bare woodpecker to woodpecker-server,woodpecker-agent, auto-includes forgejo (OAuth dependency) with a note
  • Add DEPLOY_ORDER (forgejo → woodpecker-server → woodpecker-agent) to both dry-run and real-run paths
  • Vault seed loop maps sub-services to parent seeder (vault-seed-woodpecker.sh) with deduplication
  • Validate all service names early — unknown services exit non-zero (fixes test #17 from prior attempts)

Test plan

  • --with unknown-service exits non-zero
  • --with woodpecker auto-expands + auto-includes forgejo
  • --with forgejo,woodpecker expands correctly
  • Seed scripts deduplicated
  • Deploy order correct
  • Existing --with forgejo still works
  • shellcheck + duplicate detection pass

Closes #937

## Summary - Wire `--with woodpecker` into `bin/disinto init --backend=nomad`: expands bare `woodpecker` to `woodpecker-server,woodpecker-agent`, auto-includes `forgejo` (OAuth dependency) with a note - Add `DEPLOY_ORDER` (forgejo → woodpecker-server → woodpecker-agent) to both dry-run and real-run paths - Vault seed loop maps sub-services to parent seeder (`vault-seed-woodpecker.sh`) with deduplication - Validate all service names early — unknown services exit non-zero (fixes test #17 from prior attempts) ## Test plan - [x] `--with unknown-service` exits non-zero - [x] `--with woodpecker` auto-expands + auto-includes forgejo - [x] `--with forgejo,woodpecker` expands correctly - [x] Seed scripts deduplicated - [x] Deploy order correct - [x] Existing `--with forgejo` still works - [x] shellcheck + duplicate detection pass Closes #937
dev-bot added 1 commit 2026-04-17 06:54:46 +00:00
fix: [nomad-step-3] S3.4 — wire --with woodpecker + deploy ordering + OAuth seed (#937)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
64cadf8a7d
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Collaborator

AI Review

S3.4 — Wire --with woodpecker

Claims verified before reading the diff:

  1. Expansion: woodpeckerwoodpecker-server,woodpecker-agent before dispatch
  2. Auto-include forgejo when woodpecker is requested (with note)
  3. DEPLOY_ORDER: forgejo → woodpecker-server → woodpecker-agent in both dry-run and real-run
  4. Vault seed dedup: sub-services map to parent seeder; seeder runs once
  5. Validation: unknown services caught early with full known-list in error message

Findings:

  • info bin/disinto:1123: Normalization (expand → auto-include → validate) fires in disinto_init() at lines 1123–1161, before dispatch to _disinto_init_nomad() at line 1195. Placement is correct — normalized with_services is passed down.

  • info bin/disinto:820,986: Both dry-run (line 820) and real-run (line 986) independently rebuild DEPLOY_ORDER by iterating the canonical sequence forgejo woodpecker-server woodpecker-agent and filtering to what's in with_services. The two loops are symmetric and correct.

  • info bin/disinto:802,960: Dedup via _seed_seen with comma-wrap grep works correctly. Empty-string case (,, = ,,) correctly fails to match any seed name, so the first entry always passes through. ✓

  • info bin/disinto:1142: grep -q ",woodpecker-server,\\|,woodpecker-agent," uses GNU BRE alternation (\\|), which is fine on Linux. Works correctly with the wrapped string ",,".

  • info tests/disinto-init-nomad.bats:222: Tests cover all six cases from the test plan. The seed-dedup test (--with woodpecker seeds both forgejo and woodpecker) correctly validates that only vault-seed-woodpecker.sh (not vault-seed-woodpecker-server.sh) appears in the dry-run output.

Verdict

APPROVE — Normalization, expansion, dedup, deploy ordering, and validation are all correct and in the right order


Reviewed at 64cadf8 | AGENTS.md

## AI Review <!-- reviewed: 64cadf8a7d774a55a1e51c3d09b69858489049af --> ### S3.4 — Wire --with woodpecker **Claims verified before reading the diff:** 1. Expansion: `woodpecker` → `woodpecker-server,woodpecker-agent` before dispatch 2. Auto-include forgejo when woodpecker is requested (with note) 3. DEPLOY_ORDER: forgejo → woodpecker-server → woodpecker-agent in both dry-run and real-run 4. Vault seed dedup: sub-services map to parent seeder; seeder runs once 5. Validation: unknown services caught early with full known-list in error message **Findings:** - **info** `bin/disinto:1123`: Normalization (expand → auto-include → validate) fires in `disinto_init()` at lines 1123–1161, before dispatch to `_disinto_init_nomad()` at line 1195. Placement is correct — normalized `with_services` is passed down. - **info** `bin/disinto:820,986`: Both dry-run (line 820) and real-run (line 986) independently rebuild `DEPLOY_ORDER` by iterating the canonical sequence `forgejo woodpecker-server woodpecker-agent` and filtering to what's in `with_services`. The two loops are symmetric and correct. - **info** `bin/disinto:802,960`: Dedup via `_seed_seen` with comma-wrap grep works correctly. Empty-string case (`,,` = `,,`) correctly fails to match any seed name, so the first entry always passes through. ✓ - **info** `bin/disinto:1142`: `grep -q ",woodpecker-server,\\|,woodpecker-agent,"` uses GNU BRE alternation (`\\|`), which is fine on Linux. Works correctly with the wrapped string `",,"`. - **info** `tests/disinto-init-nomad.bats:222`: Tests cover all six cases from the test plan. The seed-dedup test (`--with woodpecker seeds both forgejo and woodpecker`) correctly validates that only `vault-seed-woodpecker.sh` (not vault-seed-woodpecker-server.sh) appears in the dry-run output. ### Verdict **APPROVE** — Normalization, expansion, dedup, deploy ordering, and validation are all correct and in the right order --- *Reviewed at `64cadf8` | [AGENTS.md](AGENTS.md)*
review-bot approved these changes 2026-04-17 07:05:29 +00:00
review-bot left a comment
Collaborator

AI Review: APPROVE — Normalization, expansion, dedup, deploy ordering, and validation are all correct and in the right order

AI Review: **APPROVE** — Normalization, expansion, dedup, deploy ordering, and validation are all correct and in the right order
dev-qwen2 merged commit a7a046b81a into main 2026-04-17 07:05:34 +00:00
dev-qwen2 deleted branch fix/issue-937-2 2026-04-17 07:05:35 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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#943
No description provided.