diff --git a/.github/workflows/pr-semantics.yaml b/.github/workflows/pr-semantics.yaml new file mode 100644 index 000000000..bf06c5692 --- /dev/null +++ b/.github/workflows/pr-semantics.yaml @@ -0,0 +1,78 @@ +# feat: (new feature for the user, not a new feature for build script) +# fix: (bug fix for the user, not a fix to a build script) +# build: (changes that affect the build system or external dependencies) +# chore: (updating grunt tasks etc; no production code change) +# ci: (updates to CI configuration files and scripts; no production code change) +# docs: (changes to the documentation) +# perf: (a code change that improves performance) +# refactor: (refactoring production code, eg. renaming a variable) +# style: (formatting, missing semi colons, etc; no production code change) +# test: (adding missing tests, refactoring tests; no production code change) +# revert: (reverting a previous commit) + +# Example: +# test(runner): Add test for the runner +# ^ ^ ^ +# | | |__ Subject +# | |_______ Scope +# |____________ Type + +name: Semantic PR Validation +on: + pull_request: + types: + - opened + - edited + - synchronize +defaults: + run: + shell: bash +jobs: + validate: + runs-on: ubuntu-latest + steps: + - name: Validate Pull Request + uses: amannn/action-semantic-pull-request@e9fabac35e210fea40ca5b14c0da95a099eff26f + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + # Configure which types are allowed. + # Default: https://github.com/commitizen/conventional-commit-types + types: | + feat + fix + build + chore + ci + docs + perf + refactor + revert + style + test + revert + # Configure which scopes are allowed. + scopes: | + api + config + client + config + data + test + utils + docs + release + testdata + ignoreLabels: | + bot + ignore-semantic-pull-request + # Configure that a scope must always be provided. + requireScope: false + # When using "Squash and merge" on a PR with only one commit, GitHub + # will suggest using that commit message instead of the PR title for the + # merge commit, and it's easy to commit this by mistake. Enable this option + # to also validate the commit message for one commit PRs. + validateSingleCommit: true + # Related to `validateSingleCommit` you can opt-in to validate that the PR + # title matches a single commit to avoid confusion. + validateSingleCommitMatchesPrTitle: true \ No newline at end of file