devopsguy/infra-commits - Codeberg.org
This website requires JavaScript.
devopsguy/infra-commits
Watch
Star
Fork
You've already forked infra-commits
Code
Issues
Pull requests
Activity
No description
1 commit
1 branch
0 tags
40 KiB
main
Find a file
HTTPS
Download ZIP<br>Download TAR.GZ<br>Download BUNDLE
Open with VS Code
Open with VSCodium
Open with Intellij IDEA
Octavian Helm
cd75b4cc37
feat: initial commit
2026-07-04 21:49:55 +02:00
spec
feat: initial commit
2026-07-04 21:49:55 +02:00
LICENSE
feat: initial commit
2026-07-04 21:49:55 +02:00
LICENSE-CODE
feat: initial commit
2026-07-04 21:49:55 +02:00
README.md
feat: initial commit
2026-07-04 21:49:55 +02:00
README.md
Infra Commits
A commit message specification for infrastructure-as-code repositories: Terraform and OpenTofu, Pulumi, CloudFormation, Ansible, Kubernetes manifests, Helm, Kustomize, Crossplane, and GitOps configuration repos generally.
Infra Commits is built on top of Conventional Commits 1.0.0. It keeps the header/body/footer format, feat/fix, scopes, and RFC 2119 language largely as-is, and adds what infrastructure work needs that application-code commit conventions don't cover: blast radius, destructive operations, drift, state mutation, environment targeting, and audit-trail footers for change-management processes.
If you're not sure whether you need this or plain Conventional Commits, the short version: use Conventional Commits for application code, use Infra Commits for the repos that provision and manage your infrastructure.
Status
This specification is a draft (0.1.0) , open for review and feedback. The format, types, and footers described here may still change before a 1.0.0 release.
A final version of this specification is planned to be released three months from the publication of the draft (0.1.0) version.
Reading the specification
The specification lives in spec/infra-commits.draft.md. It covers, in order: the message format, the full list of commit types, scope conventions, footer definitions, the distinction between breaking changes and destructive changes, the normative RFC 2119 rule list, guidance on versioning, and a short FAQ.
The canonical, most current version is published at infra.commits.at. Copies of this document elsewhere should be assumed to lag behind that address.
Why this exists
Application libraries release versions that consumers choose to adopt. A lot of infrastructure work doesn't look like that at all: GitOps controllers reconcile continuously, terraform apply often runs straight off a merge to main, and there's frequently no version number anyone is opting into. On top of that, infrastructure carries risks that Conventional Commits has no vocabulary for: a resource being destroyed or replaced, configuration drifting out of band and needing reconciliation, state operations that require careful apply ordering, and change-management requirements that expect a ticket, an approver, and a rollback plan to be traceable from the commit itself.
The full rationale is in the specification's own introduction.
License
The specification text in this repository is licensed under CC BY 4.0, see LICENSE. It's a derivative work based on Conventional Commits 1.0.0 (CC BY 3.0), with attribution and disclosure of changes as required by that license.
Anything added to this repository that qualifies as source code or tooling rather than specification text will be licensed separately under MIT, see LICENSE-CODE.
Contributing
This is an early draft. Feedback, issues, and pull requests proposing changes to the wording, types, or footers are welcome. If you're proposing a new type or footer, it helps to include a real-world example of the commit it would apply to and the problem it solves that the existing vocabulary doesn't.