-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CI: Make BuggieBot reply to pull requests that fail the commit linter
This should help reduce the repeating "Please check the contributing guide" replies from reviewers.
- Loading branch information
1 parent
873eb47
commit fd68e60
Showing
2 changed files
with
55 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
name: Commit linter | ||
|
||
on: [pull_request_target] | ||
|
||
jobs: | ||
lint_commits: | ||
runs-on: ubuntu-20.04 | ||
if: always() && github.repository == 'SerenityOS/serenity' | ||
|
||
steps: | ||
- name: Get PR Commits | ||
id: 'get-pr-commits' | ||
uses: IdanHo/get-pr-commits@d94b66d146a31ef91e54a2597dee4fb523157232 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Check linebreaks | ||
if: ${{ success() || failure() }} | ||
uses: tim-actions/commit-message-checker-with-regex@v0.3.1 | ||
with: | ||
commits: ${{ steps.get-pr-commits.outputs.commits }} | ||
pattern: '^[^\r]*$' | ||
error: 'Commit message contains CRLF line breaks (only unix-style LF linebreaks are allowed)' | ||
|
||
- name: Check Line Length | ||
uses: tim-actions/commit-message-checker-with-regex@v0.3.1 | ||
with: | ||
commits: ${{ steps.get-pr-commits.outputs.commits }} | ||
pattern: '^.{0,72}(\n.{0,72})*$' | ||
error: 'Commit message lines are too long (maximum allowed is 72 characters)' | ||
|
||
- name: Check subsystem | ||
if: ${{ success() || failure() }} | ||
uses: tim-actions/commit-message-checker-with-regex@v0.3.1 | ||
with: | ||
commits: ${{ steps.get-pr-commits.outputs.commits }} | ||
pattern: '^\S.*?: .+' | ||
error: 'Missing category in commit title (if this is a fix up of a previous commit, it should be squashed)' | ||
|
||
- name: Check title | ||
if: ${{ success() || failure() }} | ||
uses: tim-actions/commit-message-checker-with-regex@v0.3.1 | ||
with: | ||
commits: ${{ steps.get-pr-commits.outputs.commits }} | ||
pattern: '^.+[^.\n](\n.*)*$' | ||
error: 'Commit title ends in a period' | ||
|
||
- name: Comment on PR | ||
if: ${{ failure() }} | ||
uses: unsplash/comment-on-pr@85a56be792d927ac4bfa2f4326607d38e80e6e60 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.BUGGIEBOT }} | ||
with: | ||
msg: "One or more of the commits in this PR do not match the [code submission policy](https://github.com/SerenityOS/serenity/blob/master/CONTRIBUTING.md#code-submission-policy), please check the `lint_commits` CI job for more details." |