feat: patch series ordering and dependency validation #19
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Auto-close linked issues | |
| on: | |
| pull_request: | |
| types: [closed] | |
| jobs: | |
| close-issues: | |
| if: github.event.pull_request.merged == true | |
| runs-on: ubuntu-latest | |
| 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'); | |
| } |