Skip to content

feat: WarpGrid Cloud Platform (beta launch) #25

feat: WarpGrid Cloud Platform (beta launch)

feat: WarpGrid Cloud Platform (beta launch) #25

name: Auto-close linked issues
on:
pull_request:
types: [closed]
jobs:
close-issues:
if: github.event.pull_request.merged == true
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
issues: write
steps:
- name: Close linked issues
uses: actions/github-script@v7
with:
script: |
const body = context.payload.pull_request.body || '';
const pattern = /(?:close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved)\s+#(\d+)/gi;
const issueNumbers = new Set();
let match;
while ((match = pattern.exec(body)) !== null) {
issueNumbers.add(parseInt(match[1], 10));
}
for (const issueNumber of issueNumbers) {
try {
await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issueNumber,
state: 'closed',
state_reason: 'completed'
});
core.info(`Closed issue #${issueNumber}`);
} catch (err) {
core.warning(`Failed to close issue #${issueNumber}: ${err.message}`);
}
}
if (issueNumbers.size === 0) {
core.info('No closing keywords found in PR body');
}