From a4c3b196b8268debb936faaf6a860fdf5a0ebf9a Mon Sep 17 00:00:00 2001 From: Danny Willems Date: Tue, 17 Mar 2026 14:04:24 +0100 Subject: [PATCH 1/2] CI: add PR hygiene checks using dannywillems/toolbox Add pr-hygiene workflow that downloads scripts from the toolbox repository: - check-pr-size.sh: warn at 300 lines, fail at 500 - check-title-length.sh: commit titles <= 80 chars - check-no-fixup.sh: no fixup/squash/WIP commits - check-commit-body.sh: body required for 20+ line changes Closes #77 --- .github/workflows/pr-hygiene.yaml | 54 +++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/pr-hygiene.yaml 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 }}" From b61d01a201a446b70542d6eee4464e926dd51849 Mon Sep 17 00:00:00 2001 From: Danny Willems Date: Tue, 17 Mar 2026 14:04:48 +0100 Subject: [PATCH 2/2] CHANGELOG: add PR hygiene checks --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) 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