Encouraging git hygine with commitlint
I added a GitHub Action that uses commitlint to my GitHub Actions Monorepo. The GitHub Action is based off of commitlint (commitlint GitHub) and has been added in an effort to encourage (enforce?) good git hygiene. Note: The original actions-ci
workflow was added in the v0.1.12
release.
The workflow originated from the CI setup GitHub Actions section of the commitlint guides. The example workflow needed to be updated in order to run, but it should be working now.
The default commitlint configuration:
Enforcing good git hygiene¶
Part of ensuring proper commit messages (and pull requests) will help with automating releases. For example, the semantic release tool can be used in a GitHub action, via this semantic-release-action.
Here are some other write-ups on the topic:
- https://www.vantage-ai.com/blog/how-to-enforce-good-pull-requests-on-github
- https://hugooodias.medium.com/the-anatomy-of-a-perfect-pull-request-567382bb6067
Resources¶
commitlint guide links:
Actions that can be used with commitlint
:
- https://github.com/webiny/action-conventional-commits
- https://github.com/wagoid/commitlint-github-action
- https://github.com/commitizen/conventional-commit-types
- https://github.com/amannn/action-semantic-pull-request
- (deprecated) https://github.com/squash-commit-app/squash-commit-app
- (deprecated) https://github.com/zeke/semantic-pull-requests
Examples with a semantic.yml
file within a GitHub repo:
- https://github.com/GoogleChrome/lighthouse-ci/blob/main/.github/semantic.yml
- https://github.com/minecrafthome/minecrafthome/blob/master/semantic.yml
- https://github.com/meltano/sdk/blob/main/.github/semantic.yml
- https://github.com/vectordotdev/vector/blob/master/.github/semantic.yml
Here are links to other resources:
- https://github.blog/changelog/2022-05-11-default-to-pr-titles-for-squash-merge-commit-messages/
- https://semantic-release.gitbook.io/semantic-release/recipes/ci-configurations/github-actions
- https://jamiewen00.medium.com/integrate-commitlint-to-your-repository-67d6524d0d24
- https://ajcwebdev.com/semantic-github/