diff --git a/.github/workflows/issues-dependency-check.yml b/.github/workflows/issues-dependency-check.yml new file mode 100644 index 0000000..ba13f16 --- /dev/null +++ b/.github/workflows/issues-dependency-check.yml @@ -0,0 +1,43 @@ +name: Issues Dependency Check +on: + pull_request: + types: [opened, synchronize, reopened, edited] + pull_request_review: + types: [submitted, edited, dismissed] +jobs: + check-dependencies: + runs-on: ubuntu-latest + steps: + - name: Check for unresolved dependencies + uses: actions/github-script@v7 + with: + script: | + // Updated regex to match multiple issue numbers + const issueRegex = /depends on #(\\d+(?:\\s+#\\d+)*)/ig; + + async function run() { + let match; + let blockingIssues = []; + + // Find issues mentioned in the description + while ((match = issueRegex.exec(context.payload.body)) !== null) { + const issues = match[1].split(/\\s+#/); + for (const issueNumber of issues) { + const { data: issue } = await github.rest.issues.get({ + owner: adamamer20, + repo: mesa_frames, + issue_number: parseInt(issueNumber), + }); + + if (issue.state === 'open') { + blockingIssues.push(issueNumber); + } + } + } + + if (blockingIssues.length > 0) { + core.setFailed(`Cannot merge PR because these issues are not resolved: #${blockingIssues.join(', #')}`); + } + } + + run().catch(error => core.setFailed(error.message)); \ No newline at end of file