From e5dfc9cb276fa4542dac30e85d2767fcd33d5899 Mon Sep 17 00:00:00 2001 From: Will Hickey Date: Fri, 20 Oct 2023 11:01:52 -0500 Subject: [PATCH] Add check for CHANGELOG.md change when changelog label applied to PR (#33675) * Add check for CHANGELOG.md change when changelog label applied to PR * Update changelog --- .github/scripts/check-changelog.sh | 10 ++++++++++ .github/workflows/changelog-label.yml | 20 ++++++++++++++++++++ CHANGELOG.md | 1 + 3 files changed, 31 insertions(+) create mode 100755 .github/scripts/check-changelog.sh create mode 100644 .github/workflows/changelog-label.yml diff --git a/.github/scripts/check-changelog.sh b/.github/scripts/check-changelog.sh new file mode 100755 index 000000000..a310000d8 --- /dev/null +++ b/.github/scripts/check-changelog.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -uo pipefail + +CHANGELOG_FILE="CHANGELOG.md" +echo "Checking: git diff --exit-code origin/${BASE_REF} -- ${CHANGELOG_FILE}" + +if git diff --exit-code "origin/${BASE_REF}" -- "${CHANGELOG_FILE}"; then + >&2 echo "Error: this pull request requires an entry in $CHANGELOG_FILE, but no entry was found" + exit 1 +fi diff --git a/.github/workflows/changelog-label.yml b/.github/workflows/changelog-label.yml new file mode 100644 index 000000000..c63f7821c --- /dev/null +++ b/.github/workflows/changelog-label.yml @@ -0,0 +1,20 @@ +name: Require changelog entry + +on: + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] + +jobs: + check-changelog: + if: contains(github.event.pull_request.labels.*.name, 'changelog') + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Check if changes to CHANGELOG.md + shell: bash + env: + BASE_REF: ${{ github.event.pull_request.base.ref }} + run: .github/scripts/check-changelog.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bc3ceb4d..a99a5ffe0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ Release channels have their own copy of this changelog: ## [1.18.0] - Unreleased * Changes + * Added a github check to support `changelog` label * Upgrade Notes ## [1.17.0]