From 78a61053b60802f3d733e072b5ef7dbba84e2c49 Mon Sep 17 00:00:00 2001 From: Maria Hutt Date: Wed, 1 May 2024 13:11:41 -0700 Subject: [PATCH] chore(pull-requests): enforce conventional commits (#29438) Issue number: N/A --------- ## What is the current behavior? Framework has a structure when it comes to PR titles. However, there aren't any reinforcements to it unless a reviewer checks it. ## What is the new behavior? - Added a GitHub action that will validate the PR title. It checks that there is a valid type, checks that it has a scope, and that the subject doesn't start with a uppercase character. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information Create a branch from this one to test it out. --- .github/workflows/conventional-commit.yml | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/conventional-commit.yml diff --git a/.github/workflows/conventional-commit.yml b/.github/workflows/conventional-commit.yml new file mode 100644 index 0000000000..b1ed2422bf --- /dev/null +++ b/.github/workflows/conventional-commit.yml @@ -0,0 +1,26 @@ +name: PR Conventional Commit Validation + +on: + pull_request: + types: [opened, synchronize, reopened, edited] + +jobs: + validate-pr-title: + runs-on: ubuntu-latest + steps: + - name: Validate PR title + uses: amannn/action-semantic-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + # Configure that a scope must always be provided. + requireScope: true + # Configure additional validation for the subject based on a regex. + # This example ensures the subject doesn't start with an uppercase character. + subjectPattern: ^(?![A-Z]).+$ + # If `subjectPattern` is configured, you can use this property to + # override the default error message that is shown when the pattern + # doesn't match. The variables `subject` and `title` can be used + # within the message. + subjectPatternError: | + The subject "{subject}" found in the pull request title "{title}" didn't match the configured pattern. Please ensure that the subject doesn't start with an uppercase character.