fix(web): validate repository SSH keys #332

Merged
simon merged 2 commits from fix/ct-automation-repository-key-errors into main 2026-05-31 18:14:35 +00:00
Owner

Summary\n- validate CT-Automation repository SCM private keys before invoking Git, including malformed OpenSSH blocks and encrypted PEM/OpenSSH keys\n- normalize repository private key and known_hosts line endings before testing/saving\n- replace raw Git/SSH repository-test failures with specific sanitized messages for key-load, access denied, host-key, DNS, network, and ref errors\n\n## Validation\n- node --experimental-strip-types --test apps/web/lib/automation/ct-automation-repository-step-core.test.mjs\n- pnpm --filter web type-check\n- pnpm run lint (passes with existing warnings)\n- DATABASE_URL=postgresql://dummy:dummy@localhost:5432/dummy BETTER_AUTH_SECRET=dummy-secret-for-ci-build-only-at-least-32 BETTER_AUTH_URL=http://localhost:3000 NEXT_PUBLIC_APP_URL=http://localhost:3000 pnpm --filter web run build\n\n## Notes\n- Full web unit suite was also run and still has unrelated pre-existing source-assertion failures tracked in #21, #283, #284, and #331.

## Summary\n- validate CT-Automation repository SCM private keys before invoking Git, including malformed OpenSSH blocks and encrypted PEM/OpenSSH keys\n- normalize repository private key and known_hosts line endings before testing/saving\n- replace raw Git/SSH repository-test failures with specific sanitized messages for key-load, access denied, host-key, DNS, network, and ref errors\n\n## Validation\n- node --experimental-strip-types --test apps/web/lib/automation/ct-automation-repository-step-core.test.mjs\n- pnpm --filter web type-check\n- pnpm run lint (passes with existing warnings)\n- DATABASE_URL=postgresql://dummy:dummy@localhost:5432/dummy BETTER_AUTH_SECRET=dummy-secret-for-ci-build-only-at-least-32 BETTER_AUTH_URL=http://localhost:3000 NEXT_PUBLIC_APP_URL=http://localhost:3000 pnpm --filter web run build\n\n## Notes\n- Full web unit suite was also run and still has unrelated pre-existing source-assertion failures tracked in #21, #283, #284, and #331.
simon force-pushed fix/ct-automation-repository-key-errors from a4b5f16bdc
Some checks failed
Conventional PR title / Conventional PR title (pull_request) Successful in 1s
PR Checks (Docker images) / Ansible API contract (pull_request) Successful in 6s
PR Checks (Docker images) / Detect Docker image changes (pull_request) Successful in 9s
PR Checks (Docker images) / Ingest Docker image (pull_request) Has been skipped
PR Checks (Docker images) / Ansible API Docker image (pull_request) Has been skipped
Secret Scan / gitleaks (pull_request) Failing after 27s
SAST / crypto-lint (no weak hashes / ciphers) (pull_request) Successful in 1m6s
SAST / semgrep (pull_request) Successful in 1m12s
SAST / gosec (ingest) (pull_request) Successful in 1m58s
SAST / trivy (config / IaC) (pull_request) Successful in 2m6s
PR Checks (Web) / Web (lint / type-check / build) (pull_request) Has been cancelled
PR Checks (Docker images) / Web Docker image (pull_request) Has been cancelled
SAST / gosec (agent) (pull_request) Has been cancelled
SAST / trivy (filesystem) (pull_request) Has been cancelled
to c157c5b499
Some checks failed
Conventional PR title / Conventional PR title (pull_request) Has been cancelled
PR Checks (Docker images) / Detect Docker image changes (pull_request) Has been cancelled
PR Checks (Docker images) / Ansible API contract (pull_request) Has been cancelled
PR Checks (Docker images) / Web Docker image (pull_request) Has been cancelled
PR Checks (Docker images) / Ingest Docker image (pull_request) Has been cancelled
PR Checks (Docker images) / Ansible API Docker image (pull_request) Has been cancelled
PR Checks (Web) / Web (lint / type-check / build) (pull_request) Has been cancelled
SAST / gosec (agent) (pull_request) Has been cancelled
SAST / gosec (ingest) (pull_request) Has been cancelled
SAST / semgrep (pull_request) Has been cancelled
SAST / trivy (filesystem) (pull_request) Has been cancelled
SAST / crypto-lint (no weak hashes / ciphers) (pull_request) Has been cancelled
SAST / trivy (config / IaC) (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
2026-05-31 18:00:56 +00:00
Compare
simon force-pushed fix/ct-automation-repository-key-errors from 5e1d6acf2c
Some checks failed
Conventional PR title / Conventional PR title (pull_request) Successful in 1s
PR Checks (Docker images) / Ansible API contract (pull_request) Successful in 6s
PR Checks (Docker images) / Detect Docker image changes (pull_request) Successful in 8s
PR Checks (Docker images) / Web Docker image (pull_request) Has been cancelled
PR Checks (Docker images) / Ingest Docker image (pull_request) Has been cancelled
PR Checks (Docker images) / Ansible API Docker image (pull_request) Has been cancelled
SAST / trivy (config / IaC) (pull_request) Has been cancelled
Secret Scan / gitleaks (pull_request) Has been cancelled
SAST / trivy (filesystem) (pull_request) Has been cancelled
SAST / semgrep (pull_request) Has been cancelled
SAST / gosec (ingest) (pull_request) Has been cancelled
SAST / crypto-lint (no weak hashes / ciphers) (pull_request) Has been cancelled
PR Checks (Web) / Web (lint / type-check / build) (pull_request) Has been cancelled
SAST / gosec (agent) (pull_request) Has been cancelled
to 1f535be287
All checks were successful
Conventional PR title / Conventional PR title (pull_request) Successful in 0s
PR Checks (Docker images) / Ansible API contract (pull_request) Successful in 6s
PR Checks (Docker images) / Detect Docker image changes (pull_request) Successful in 8s
Secret Scan / gitleaks (pull_request) Successful in 42s
PR Checks (Docker images) / Ingest Docker image (pull_request) Has been skipped
SAST / crypto-lint (no weak hashes / ciphers) (pull_request) Successful in 1m7s
PR Checks (Docker images) / Ansible API Docker image (pull_request) Has been skipped
SAST / semgrep (pull_request) Successful in 1m12s
SAST / gosec (agent) (pull_request) Successful in 1m56s
SAST / gosec (ingest) (pull_request) Successful in 2m0s
SAST / trivy (filesystem) (pull_request) Successful in 2m1s
SAST / trivy (config / IaC) (pull_request) Successful in 1m57s
PR Checks (Web) / Web (lint / type-check / build) (pull_request) Successful in 2m39s
PR Checks (Docker images) / Web Docker image (pull_request) Successful in 8m32s
2026-05-31 18:04:07 +00:00
Compare
simon merged commit 4ad1b9471a into main 2026-05-31 18:14:35 +00:00
simon deleted branch fix/ct-automation-repository-key-errors 2026-05-31 18:14:35 +00:00
Sign in to join this conversation.
No reviewers
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
carrtech/ct-ops!332
No description provided.