diff --git a/.github/workflows/require-issue-link.yml b/.github/workflows/require-issue-link.yml new file mode 100644 index 0000000..201a847 --- /dev/null +++ b/.github/workflows/require-issue-link.yml @@ -0,0 +1,21 @@ +name: Require Closing Keyword + +on: + pull_request: + branches: + - master + types: [opened, edited, synchronize, reopened] + +jobs: + check: + runs-on: ubuntu-latest + steps: + - name: Ensure PR closes an issue + uses: actions/github-script@v7 + with: + script: | + const body = context.payload.pull_request.body || ''; + const keywordPattern = /(close[sd]?|fix(e[sd])?|resolve[sd]?)\s+((#[0-9]+)|([\w.-]+\/[\w.-]+#\d+))/i; + if (!keywordPattern.test(body)) { + core.setFailed('Add a closing keyword like "Closes #123" to the PR description.'); + }