diff --git a/.github/workflows/pr-hygiene.yaml b/.github/workflows/pr-hygiene.yaml new file mode 100644 index 0000000..d747a26 --- /dev/null +++ b/.github/workflows/pr-hygiene.yaml @@ -0,0 +1,54 @@ +name: PR hygiene checks +on: + pull_request: + types: [assigned, opened, synchronize, reopened] + branches: + - main + merge_group: + types: [checks_requested] + +jobs: + check-pr-size: + name: Check PR size + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Download script + run: | + curl -sSLO \ + "https://raw.githubusercontent.com/dannywillems/toolbox/main/pr-hygiene/check-pr-size.sh" + chmod +x check-pr-size.sh + - name: Check PR size + run: > + ./check-pr-size.sh + "${{ github.event.pull_request.base.sha }}" + + check-commit-messages: + name: Check commit messages + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Download scripts + run: | + for script in check-title-length.sh \ + check-no-fixup.sh check-commit-body.sh; do + curl -sSLO \ + "https://raw.githubusercontent.com/dannywillems/toolbox/main/pr-hygiene/${script}" + chmod +x "${script}" + done + - name: Check title length + run: > + ./check-title-length.sh + "${{ github.event.pull_request.base.sha }}" + - name: Check no fixup/WIP commits + run: > + ./check-no-fixup.sh + "${{ github.event.pull_request.base.sha }}" + - name: Check commit body on large changes + run: > + ./check-commit-body.sh + "${{ github.event.pull_request.base.sha }}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c7c563..ea174ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ and this project adheres to ## [Unreleased] +### Infrastructure + +- CI: add PR hygiene checks using dannywillems/toolbox ([a4c3b19], [#69]) + ## [2.0.1] - 2026-03-17 ### Changed @@ -204,6 +208,7 @@ and this project adheres to +[a4c3b19]: https://github.com/LeakIX/l9format-python/commit/a4c3b19 [953d604]: https://github.com/LeakIX/l9format-python/commit/953d604 [72bf877]: https://github.com/LeakIX/l9format-python/commit/72bf877 [c9216ba]: https://github.com/LeakIX/l9format-python/commit/c9216ba @@ -307,4 +312,5 @@ and this project adheres to [#64]: https://github.com/LeakIX/l9format-python/pull/64 [#65]: https://github.com/LeakIX/l9format-python/pull/65 [#67]: https://github.com/LeakIX/l9format-python/pull/67 +[#69]: https://github.com/LeakIX/l9format-python/pull/69 [#43]: https://github.com/LeakIX/l9format-python/issues/43