Skip to content

Sample api rework

Sample api rework #249

name: Enforce linking issues
on:
pull_request_target:
types: [opened, edited, labeled]
workflow_call:
defaults:
run:
shell: bash
jobs:
main:
name: Enforce referencing a closing issue
runs-on: ubuntu-latest
steps:
- name: Count closing issue references
id: has-closing-issue
uses: actions/github-script@v7
with:
result-encoding: string
script: |
const query = `query ($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
closingIssuesReferences(first: 100) {
totalCount
}
}
}
}`;
const reply = await github.graphql(query, {
owner: context.repo.owner,
name: context.repo.repo,
number: context.payload.pull_request.number
});
return reply
.repository
.pullRequest
.closingIssuesReferences
.totalCount > 0;
- if: ${{ steps.has-closing-issue.outputs.result != 'true' }}
name: Suggest that the contributor link an issue
uses: actions/github-script@v7
with:
github-token: ${{ secrets.BOT_TOKEN_WORKFLOW }}
script: |
const login = "${{ github.event.pull_request.user.login }}";
const syntaxUrl = "https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue";
const message = `@${login} If this pull request contains a bugfix or a new feature, then please consider using \`Closes #ISSUE-NUMBER\` [syntax](${syntaxUrl}) to link it to an issue.`
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: message,
});