Skip to content

Commit

Permalink
ci: Enforce conventional commit format in PR title (#398)
Browse files Browse the repository at this point in the history
Closes #66
  • Loading branch information
augustebaum authored Oct 1, 2024
1 parent 475cda0 commit 7f9d5a8
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
35 changes: 35 additions & 0 deletions .github/workflows/lint-pr-title.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Lint PR title

on:
pull_request:
types: [opened, reopened, edited]

permissions:
pull-requests: read

jobs:
lint-pr-title:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install commitlint
run: |
npm install @commitlint/config-conventional@19.5.0
npm install commitlint@19.2.0
- name: Generate config file
# Here we define our custom rules for commitlint
# Reference of all rules: https://commitlint.js.org/reference/rules.html
run: |
tee -a .commitlintrc.yml << END
extends: ["@commitlint/config-conventional"]
rules:
"subject-case": [2, "always", ["sentence-case"]]
END
- name: Lint PR title
# Use an environment variable to avoid a security vulnerability
# https://stackoverflow.com/a/76679447
env:
PR_TITLE: ${{ github.event.pull_request.title }}
run: echo $PR_TITLE | npx commitlint --verbose
8 changes: 8 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,14 @@ Then, you can access the local build via:
open doc/_build/html/index.html
```

### PR format

We use the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format, and we automatically check that the PR title fits this format.
In particular, commits are "sentence case", meaning "fix: Fix issue" passes, while "fix: fix issue" doesn't.
Our custom set of rules is in [commitlint.config.js](./commitlint.config.js).

Generally the description of a commit should start with a verb in the imperative voice, so that it would properly complete the sentence: "When applied, this commit will [...]".

## Help for common issues

### `make build-frontend` doesn't work!
Expand Down

0 comments on commit 7f9d5a8

Please sign in to comment.