Skip to content

ci: add protected production-ref recovery - #12

Merged
Codevena merged 4 commits into
mainfrom
ops/ci-gated-coolify-cutover
Aug 11, 2026
Merged

ci: add protected production-ref recovery#12
Codevena merged 4 commits into
mainfrom
ops/ci-gated-coolify-cutover

Conversation

@Codevena

Copy link
Copy Markdown
Owner

Problem and outcome

Adds a manual, non-deploying recovery path for the protected coolify-production ref before the CI-gated Coolify cutover proceeds. Recovery is available only while COOLIFY_CD_ENABLED is exactly false, validates the repository and current main SHA before reading App credentials, shares the deploy concurrency group, and never calls Coolify.

The dependency-free controller updates an existing ref non-force or creates it only after an exact HTTP 404, then verifies the final ref. A unique sentinel keeps an HTTP 404 distinct from a successful invalid JSON null payload.

Compatibility, security, and migrations

No A2A, MCP, API, database, or runtime migration changes. The workflow has no Coolify or Cloudflare credentials and mints a short-lived GitHub App token only after secretless validation. Native Coolify auto-deploy remains active and the new CD path remains disabled during this PR.

Verification

  • Regression test added or an explanation provided
  • Lint, typecheck, and relevant tests pass
  • Docs/release notes updated for public contract changes
  • No credentials, personal data, local paths, or agent-only instructions added

Commands and results:

pnpm lint                                      PASS
pnpm typecheck                                  PASS
pnpm test                                       PASS (40 files, 501 tests)
pnpm build                                      PASS (48/48 pages)
actionlint                                      PASS
git diff --cached --check                       PASS
recovery guard mutation checks                  PASS (9/9 killed)
independent reviews                             PASS / PASS

@Codevena
Codevena merged commit 3617400 into main Aug 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant