-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Check PR title for Conventional Commits syntax
- Loading branch information
1 parent
2d5e423
commit cd8da9c
Showing
2 changed files
with
121 additions
and
0 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
rules: | ||
# Body may be empty | ||
body-empty: | ||
level: ignore | ||
|
||
# Description must not be empty | ||
description-empty: | ||
level: error | ||
|
||
# Description must start with a capital letter and must not end with a period or space | ||
description-format: | ||
level: error | ||
format: ^[A-Z0-9].*[^. ]$ | ||
|
||
# Description should be <70 chars | ||
description-max-length: | ||
level: warning | ||
length: 70 | ||
|
||
# Scope is not allowed | ||
scope: | ||
level: error | ||
options: [] | ||
|
||
# Subject line should exist | ||
subject-empty: | ||
level: error | ||
|
||
# Type must be one of these options | ||
type: | ||
level: error | ||
options: | ||
- fix | ||
- feat | ||
- chore |
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,86 @@ | ||
name: PR title | ||
|
||
on: | ||
pull_request: | ||
types: [opened, synchronize, reopened, edited] | ||
|
||
jobs: | ||
title_cc_validation: | ||
name: Conventional commits validation | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
|
||
- name: Check PR title | ||
env: | ||
PR_TITLE: ${{ github.event.pull_request.title }} | ||
run: | | ||
# If this step fails, please expand this step for more information. | ||
# | ||
# You will need to revise this pull request's title to | ||
# match the "summary" (first) line of a Conventional Commit message. | ||
# This enables us to automatically generate a meaningful changelog. | ||
# | ||
# The summary line (and thus the PR title) must have this exact format | ||
# (including punctuation): | ||
# | ||
# type: description | ||
# | ||
# `type` describes the nature of changes you are making. This project | ||
# requires the type to be one of these exact names: | ||
# | ||
# * fix | ||
# * feat (will cause a minor version bump) | ||
# * chore (will be omitted from changelog) | ||
# | ||
# NOTE: Conventional Commits also defines a `(scope)` parameter | ||
# which can define a sub-area within the project where the change was | ||
# made. This project is configured to disallow the use of `scope`. | ||
# | ||
# `description` is a short human-readable summary of the changes being made. | ||
# | ||
# This project enforces a few rules over and above the Conventional | ||
# Commits definition of `description`: | ||
# | ||
# * The `description` must be non-empty. | ||
# * The `description` must start with a capital letter or number. | ||
# (Do not start `description` with a lower-case word.) | ||
# * The `description` must not end with a period. | ||
# | ||
# This project does not currently enforce the following items, but | ||
# we ask that you observe the following preferences in `description`: | ||
# | ||
# * The entire description should be written and capitalized as | ||
# an English-language sentence, except (as noted earlier) that | ||
# the trailing period must be omitted. | ||
# * Any acronyms such as JSON or YAML should be capitalized as per | ||
# commonusage in English-language sentences. | ||
# | ||
# After you edit the PR title, this task will run again and the | ||
# warning should go away if you have made acceptable changes. | ||
# | ||
# For more information on Conventional Commits, please see: | ||
# | ||
# https://www.conventionalcommits.org/en/v1.0.0/ | ||
# | ||
# ------------ (end of message) ------------ | ||
if echo "$PR_TITLE" | grep -E '^chore(\(.*\))?: release '; then | ||
echo "Exception / OK: chore release pattern" | ||
exit 0; | ||
fi | ||
echo "Installing commitlint-rs. Please wait 30-40 seconds ..." | ||
cargo install --quiet commitlint-rs | ||
set -e | ||
echo | ||
echo | ||
echo --- commitlint results for PR title \"$PR_TITLE\" --- | ||
echo | ||
echo "$PR_TITLE" | commitlint -g .commitlintrc.yml | ||
echo "✅ PR title matches all enforced rules." |