summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorcyqsimon <28627918+cyqsimon@users.noreply.github.com>2023-11-12 14:32:46 +0800
committerGitHub <noreply@github.com>2023-11-12 14:32:46 +0800
commit23827065c23f6e925071282f2cd8bfcd75fefc94 (patch)
tree558f37874df97f2771bf1644a1b72d169a34f909 /.github
parent16a6f9eec6079a08d31159e296f6009034bd533c (diff)
CI: ensure a changelog entry exists for each PR (#331)
* CI: ensure a changelog entry exists for each PR * Write CHANGELOG * Fix grep by adding `-P`
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/require-changelog-for-PRs.yml26
1 files changed, 26 insertions, 0 deletions
diff --git a/.github/workflows/require-changelog-for-PRs.yml b/.github/workflows/require-changelog-for-PRs.yml
new file mode 100644
index 0000000..264384a
--- /dev/null
+++ b/.github/workflows/require-changelog-for-PRs.yml
@@ -0,0 +1,26 @@
+name: Changelog
+
+on:
+ pull_request:
+
+jobs:
+ check-changelog:
+ name: Check for changelog entry
+ runs-on: ubuntu-latest
+ # allow dependabot PRs to have no changelog
+ if: github.actor != 'dependabot[bot]'
+ env:
+ PR_SUBMITTER: ${{ github.actor }}
+ PR_NUMBER: ${{ github.event.number }}
+ PR_BASE: ${{ github.base_ref }}
+ steps:
+ - uses: actions/checkout@v4
+ - name: Fetch PR base
+ run: git fetch --no-tags --prune --depth=1 origin
+ - name: Search for added line in changelog
+ run: |
+ ADDED=$(git diff -U0 "origin/${PR_BASE}" HEAD -- CHANGELOG.md | grep -P '^\+[^\+].+$')
+ echo "Added lines in CHANGELOG.md:"
+ echo "$ADDED"
+ echo "Grepping for PR info:"
+ grep -P "(#|pull/)${PR_NUMBER}\\b.*@${PR_SUBMITTER}\\b" <<< "$ADDED"