Skip to content

feat: automated cert/CRL deployment to orphan dist branch with 21-day cadence#1

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/create-autodeployment-process
Draft

feat: automated cert/CRL deployment to orphan dist branch with 21-day cadence#1
Copilot wants to merge 3 commits intomainfrom
copilot/create-autodeployment-process

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 20, 2026

Clients referencing this repo as a Git submodule should only see certificate artifacts — not workflows, scripts, or source PEM files. This adds an automated pipeline that publishes only the OpenSSL hash-named files to a clean dist branch on push to main and on a 21-day cadence.

Changes

Repository reorganization

  • Moved 8a5a09f0.0certs/intermediate_ca.pem and e16db44c.0certs/root_ca.pem
  • certs/ holds source PEM files; hash-named outputs are generated at deploy time and gitignored

.github/workflows/deploy.yml

Pipeline behavior:

  1. Triggers on push to main and on a daily schedule
  2. Applies a cadence gate so scheduled publishing runs every 21 days (CRL_INTERVAL_DAYS=21)
  3. Clones cfms-dev/certtools and installs its cryptography dependency
  4. Validates every certs/*.pem using the cryptography library — fails fast on malformed input
  5. Generates a CRL for the intermediate CA only (root CA explicitly excluded) using INTERMEDIATE_CA_KEY_PEM
  6. Runs openssl rehash certs/ to produce <hash>.[0-9] (certs) and <hash>.r[0-9] (CRLs) symlinks
  7. Copies artifacts (symlinks resolved to real content) into a staging directory
  8. Force-pushes staging as a fresh orphan dist branch — no main history, no source files
# Force-push to dist as an orphan branch (no shared history with main)
git push origin HEAD:dist --force

Clients should pin their submodule to the dist branch.

.gitignore

Excludes openssl rehash-generated symlinks (certs/[0-9a-f]{8}.[0-9], certs/[0-9a-f]{8}.r[0-9]) from accidental staging on developer machines.

Warning

CRL generation requires the INTERMEDIATE_CA_KEY_PEM repository secret (PEM-encoded private key for certs/intermediate_ca.pem). If this secret is missing, the workflow fails by design.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Co-authored-by: Creeper19472 <38857196+Creeper19472@users.noreply.github.com>
Copilot AI changed the title [WIP] Add automated deployment process for CA certificate repository feat: automated cert deployment to orphan dist branch Mar 20, 2026
Copilot AI requested a review from Creeper19472 March 20, 2026 12:46
@Creeper19472
Copy link
Copy Markdown
Contributor

@copilot You should also generate CRL for needed certs (exclude root CA). Then you should run this process regularly, we stipulate that it should be run every 21 days.

@Creeper19472
Copy link
Copy Markdown
Contributor

@copilot You should also generate CRL for needed certs (exclude root CA). Then you should run this process regularly, we stipulate that it should be run every 21 days.

Co-authored-by: Creeper19472 <38857196+Creeper19472@users.noreply.github.com>
Copy link
Copy Markdown
Author

Copilot AI commented Mar 20, 2026

@copilot You should also generate CRL for needed certs (exclude root CA). Then you should run this process regularly, we stipulate that it should be run every 21 days.

Implemented in commit f0d2c58: the workflow now generates a CRL for the intermediate CA only (root CA explicitly excluded) and runs on a regular 21-day cadence via a scheduled trigger plus cadence gate.

@copilot You should also generate CRL for needed certs (exclude root CA). Then you should run this process regularly, we stipulate that it should be run every 21 days.

Implemented in commit f0d2c58: the workflow now generates a CRL for the intermediate CA only (root CA explicitly excluded) and runs on a regular 21-day cadence via a scheduled trigger plus cadence gate.

Copilot AI changed the title feat: automated cert deployment to orphan dist branch feat: automated cert/CRL deployment to orphan dist branch with 21-day cadence Mar 20, 2026
@cfms-dev cfms-dev deleted a comment from Copilot AI Mar 20, 2026
@cfms-dev cfms-dev deleted a comment from Copilot AI Mar 20, 2026
@cfms-dev cfms-dev deleted a comment from Copilot AI Mar 20, 2026
@cfms-dev cfms-dev deleted a comment from Copilot AI Mar 20, 2026
@cfms-dev cfms-dev deleted a comment from Copilot AI Mar 20, 2026
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.

2 participants