Skip to content

Upgrade pyxform to 4.3.1 #110

Upgrade pyxform to 4.3.1

Upgrade pyxform to 4.3.1 #110

Workflow file for this run

name: Close Issues on PR Merge to Next
on:
pull_request:
types:
- closed
jobs:
close_issues:
if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'next'
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: read
steps:
- name: Parse and close linked issues
uses: actions/github-script@v7
with:
script: |
const body = context.payload.pull_request.body || "";
const closedIssues = new Set();
const issueRegex = /(Close|Closes|Closed|Fix|Fixes|Fixed|Resolve|Resolves|Resolved)\s*:?\s+(?:(?:https:\/\/)?github.com\/getodk\/central\/issues\/|getodk\/central#|#)(\d+)/gi;
let match;
while ((match = issueRegex.exec(body)) !== null) {
const issueNumber = Number(match[2]);
if (!closedIssues.has(issueNumber)) {
closedIssues.add(issueNumber);
try {
await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issueNumber,
state: 'closed'
});
console.log(`Closed issue #${issueNumber}`);
} catch (e) {
console.error(e);
console.error(`Could not automatically close issue #${issueNumber}. Skipping issue.`);
}
}
}
if (closedIssues.size === 0) {
console.log("No issues found to close.");
}