forgejo-mcp/scripts
Christoph Görn 42614b036b
ci: 🔒️ add cosign-keygen.sh producing SOPS-encrypted k8s Secret
scripts/cosign-keygen.sh generates a cosign keypair and emits a
SOPS-encrypted Kubernetes Secret manifest containing the private key
and password. Defenses:

- Keypair is generated inside /dev/shm (tmpfs) when available; falls
  back to /tmp with shred-on-exit. Trap fires on EXIT/INT/TERM/HUP.
- Password read with `read -rs` (no terminal echo). Minimum 12 chars.
  Unset immediately after the Secret YAML is built.
- The private key + password are SOPS-encrypted in place via
  --encrypted-regex; the public key remains plaintext (intended for
  commit alongside the encrypted Secret).
- Neither cosign nor sops output keys on success paths; `set -x` is
  never enabled.
- Refuses to overwrite an existing output file.

Companion changes to keep accidental secret leakage out of git:
- .gitignore: ignore secrets/* by default, allow only *.enc.yaml,
  *.enc.yml, and cosign.pub through.
- secrets/.gitkeep: anchor the directory so the gitignore rules apply
  to a real path.

Pairs with the conditional cosign sign step in .forgejo/workflows/release.yml.

Refs forgejo-mcp-51l.
2026-05-24 12:43:03 +02:00
..
AGENTS.md chore: 🔧 add Claude Code agent team infrastructure for multi-agent workflows 2026-05-24 08:06:44 +02:00
cosign-keygen.sh ci: 🔒️ add cosign-keygen.sh producing SOPS-encrypted k8s Secret 2026-05-24 12:43:03 +02:00
openspec-journal-precompact-hook.sh chore: 🔧 add Claude Code agent team infrastructure for multi-agent workflows 2026-05-24 08:06:44 +02:00
openspec-journal.py chore: 🔧 add Claude Code agent team infrastructure for multi-agent workflows 2026-05-24 08:06:44 +02:00