From 7e51923b5c3b7b4f3550f0255d0e06ab0c3b0111 Mon Sep 17 00:00:00 2001 From: Radhika Gupta Date: Wed, 5 Aug 2026 14:20:20 -0700 Subject: [PATCH 1/2] Add changelog CI check --- .github/workflows/pr-validation.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index ef8f77c6..979f0a8f 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -8,6 +8,32 @@ permissions: contents: read jobs: + changelog: + name: CHANGELOG updated + runs-on: ubuntu-latest + if: >- + github.event_name == 'pull_request' && + !contains(github.event.pull_request.labels.*.name, 'skip-changelog') + + steps: + - name: Check out repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Verify CHANGELOG.md was updated + env: + BASE_SHA: ${{ github.event.pull_request.base.sha }} + HEAD_SHA: ${{ github.event.pull_request.head.sha }} + run: | + if git diff --name-only "$BASE_SHA" "$HEAD_SHA" | grep -qx 'CHANGELOG.md'; then + echo "CHANGELOG.md was updated." + else + echo "::error::CHANGELOG.md was not updated in this PR." + echo "Add an entry to CHANGELOG.md, or apply the 'skip-changelog' label if this change does not warrant one." + exit 1 + fi + quality: name: Black, Pylint, and Mypy runs-on: ubuntu-latest From 95367a20effca844876ad11939bd0bb104aa4b0d Mon Sep 17 00:00:00 2001 From: Radhika Gupta Date: Wed, 5 Aug 2026 14:40:26 -0700 Subject: [PATCH 2/2] Address feedback --- .github/workflows/pr-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 979f0a8f..c8a84948 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -26,7 +26,7 @@ jobs: BASE_SHA: ${{ github.event.pull_request.base.sha }} HEAD_SHA: ${{ github.event.pull_request.head.sha }} run: | - if git diff --name-only "$BASE_SHA" "$HEAD_SHA" | grep -qx 'CHANGELOG.md'; then + if git diff --name-only "$BASE_SHA...$HEAD_SHA" | grep -qx 'CHANGELOG.md'; then echo "CHANGELOG.md was updated." else echo "::error::CHANGELOG.md was not updated in this PR."