From 1319437388f4e8ca546bb3c3548da44a475e4342 Mon Sep 17 00:00:00 2001 From: cyqsimon <28627918+cyqsimon@users.noreply.github.com> Date: Fri, 1 Mar 2024 17:42:39 +0800 Subject: CI: use GitHub API to exempt dependabot from changelog requirement (#378) * CI: use GitHub API to exempt dependabot from changelog requirement * Write changelog --- .github/workflows/require-changelog-for-PRs.yml | 26 +++++++++++++++---------- CHANGELOG.md | 1 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.github/workflows/require-changelog-for-PRs.yml b/.github/workflows/require-changelog-for-PRs.yml index be20431..0f126cf 100644 --- a/.github/workflows/require-changelog-for-PRs.yml +++ b/.github/workflows/require-changelog-for-PRs.yml @@ -4,28 +4,34 @@ on: pull_request: jobs: + get-submitter: + name: Get the username of the PR submitter + runs-on: ubuntu-latest + outputs: + submitter: ${{ steps.get-submitter.outputs.submitter }} + steps: + # cannot use `github.actor`: the triggering commit may be authored by a maintainer + - name: Get PR submitter + id: get-submitter + run: curl -sSfL https://api.github.com/repos/imsnif/bandwhich/pulls/${PR_NUMBER} | jq -r '"submitter=" + .user.login' | tee -a $GITHUB_OUTPUT + check-changelog: name: Check for changelog entry - runs-on: ubuntu-latest - # allow dependabot PRs to have no changelog - if: github.actor != 'dependabot[bot]' + needs: get-submitter env: PR_NUMBER: ${{ github.event.number }} + PR_SUBMITTER: ${{ needs.get-submitter.outputs.submitter }} PR_BASE: ${{ github.base_ref }} + runs-on: ubuntu-latest + # allow dependabot PRs to have no changelog + if: ${{ needs.get-submitter.outputs.submitter != 'dependabot[bot]' }} steps: - uses: actions/checkout@v4 - name: Fetch PR base run: git fetch --no-tags --prune --depth=1 origin - # cannot use `github.actor`: the triggering commit may be authored by a maintainer - - name: Get PR submitter - id: get-submitter - run: curl -sSfL https://api.github.com/repos/imsnif/bandwhich/pulls/${PR_NUMBER} | jq -r '"submitter=" + .user.login' | tee -a $GITHUB_OUTPUT - - name: Search for added line in changelog - env: - PR_SUBMITTER: ${{ steps.get-submitter.outputs.submitter }} run: | ADDED=$(git diff -U0 "origin/${PR_BASE}" HEAD -- CHANGELOG.md | grep -P '^\+[^\+].+$') echo "Added lines in CHANGELOG.md:" diff --git a/CHANGELOG.md b/CHANGELOG.md index cb4a04b..f8a59cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## Fixed * Remove redundant imports #377 - @cyqsimon +* CI: use GitHub API to exempt dependabot from changelog requirement #378 - @cyqsimon ## Added * CI: include generated assets in release archive #359 - @cyqsimon -- cgit v1.2.3