From c61c14709fb8be56267fdfcdfd4054876164cc0d Mon Sep 17 00:00:00 2001 From: sebthom Date: Wed, 12 Feb 2025 22:16:16 +0100 Subject: [PATCH] ci: add PR title validation --- .github/labeler.yml | 15 ++++++++ .github/workflows/build.yml | 1 + .github/workflows/codeql-analysis.yml | 1 + .github/workflows/validate-pr-title.yml | 47 +++++++++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/validate-pr-title.yml diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000..1b54706 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,15 @@ +# see https://github.com/srvaroa/labeler +version: 1 +issues: False +labels: +- label: "bug" + title: "^fix(\\(.*\\))?:.*" +- label: "dependencies" + title: "^deps(\\(.*\\))?:.*" +- label: "documentation" + title: "^docs(\\(.*\\))?:.*" +- label: "enhancement" + title: "^(enh|feat)(\\(.*\\))?:.*" +- label: "work-in-progress" + title: "^WIP:.*" + mergeable: false diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d545a5c..17beab6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,6 +24,7 @@ on: - '.github/workflows/codeql-analysis.yml' - '.github/workflows/stale.yml' - '.github/workflows/update-python-deps.yml' + - '.github/workflows/validate-pr.yml' pull_request: paths-ignore: - '**/*.md' diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 6f9e0f1..38c36ee 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -17,6 +17,7 @@ on: - '.github/workflows/build.yml' - '.github/workflows/stale.yml' - '.github/workflows/update-python-deps.yml' + - '.github/workflows/validate-pr.yml' pull_request: paths-ignore: - '**/*.md' diff --git a/.github/workflows/validate-pr-title.yml b/.github/workflows/validate-pr-title.yml new file mode 100644 index 0000000..e413876 --- /dev/null +++ b/.github/workflows/validate-pr-title.yml @@ -0,0 +1,47 @@ +# https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions +name: "Validate PR Title" + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + - reopened + +jobs: + build: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - name: "Validate semantic PR title" + uses: amannn/action-semantic-pull-request@v5 # https://github.com/amannn/action-semantic-pull-request + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + # https://mazer.dev/en/git/best-practices/git-semantic-commits/ + # https://github.com/commitizen/conventional-commit-types/blob/master/index.json + types: | + build + ci + chore + docs + fix + enh + feat + refact + revert + perf + style + test + scopes: | + deps + i18n + requireScope: false + + - name: "Label PR" + uses: srvaroa/labeler@v1.13.0 # https://github.com/srvaroa/labeler + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"