ghcr-operations-checklist
GHCR Operations Checklist
This checklist is for the private aisopsflow-enterprise repository.
Repository settings
- repository visibility: private
- default branch protection enabled
- tag creation restricted to release operators
- GitHub Actions enabled
- GitHub Actions allowed to create and update packages
GitHub Actions permissions
Repository-level defaults:
- workflow permissions:
Read repository contents - allow GitHub Actions to create and approve pull requests: off unless explicitly needed
Workflow-level requirements in publish-images.yml:
contents: readpackages: write
Do not grant broader permissions unless a release workflow actually needs them.
GHCR package settings
Create and retain only these packages:
ghcr.io/<org>/aisopsflow-coreghcr.io/<org>/aisopsflow-runnerghcr.io/<org>/aisopsflow-consoleghcr.io/<org>/aisopsflow-core-commercialghcr.io/<org>/aisopsflow-runner-commercialghcr.io/<org>/aisopsflow-console-commercial
Package policy:
Public package policy:
- visibility: public
- package README should state that customer and user environments should pin by digest
- public package names and commercial package names must stay separate
Commercial package policy:
- visibility: private
- inheritance from repository permissions: enabled unless you have a strong reason to decouple it
- delete/restore package permission limited to release administrators
- do not expose commercial-only defaults in public package metadata
Secrets and auth
- prefer
GITHUB_TOKENfor package publish from GitHub Actions - do not use long-lived personal access tokens for routine image publish
- if customer pull access is needed, issue scoped credentials only for package read
- rotate any emergency manual credentials after use
Operator preflight
Before creating a release tag:
core/Dockerfilebuilds successfullyrunner/Dockerfilebuilds successfullyconsole/Dockerfilebuilds successfully when console is in scope- image changes match the intended component release
- release notes include the exact git commit and expected image tags
- customer-facing deployment docs reference digest pinning
Operator post-release checks
After workflow completion:
- both expected GHCR packages exist
- expected semver tag is present
- expected git sha tag is present
latestmoved only forrelease-v*or an explicit manual dispatch withpublish_latest=true- package visibility is still private
- package digest used by deployment manifests is recorded in the release notes
Customer delivery checks
- share image references by digest, not just by tag
- share minimal pull credentials if private pull is required
- do not expose the enterprise source repository
- direct plugin developers to the public SDK and catalog repositories