@@ -27,27 +27,57 @@ jobs:
2727 github.event.workflow_run.event == 'pull_request'
2828
2929 steps :
30- - name : Checkout for metadata
31- uses : actions/checkout@v4
32-
33- - name : Fetch Dependabot metadata
34- id : metadata
35- uses : dependabot/fetch-metadata@v2
30+ - name : Get PR number
31+ id : pr
32+ uses : actions/github-script@v7
3633 with :
37- github-token : " ${{ secrets.GITHUB_TOKEN }}"
34+ script : |
35+ const { data: pullRequests } = await github.rest.pulls.list({
36+ owner: context.repo.owner,
37+ repo: context.repo.repo,
38+ state: 'open',
39+ head: `${context.repo.owner}:${context.payload.workflow_run.head_branch}`
40+ });
41+
42+ if (pullRequests.length > 0) {
43+ const pr = pullRequests[0];
44+ core.setOutput('number', pr.number);
45+ core.setOutput('title', pr.title);
46+ core.setOutput('found', 'true');
47+
48+ // Check if it's a major update by looking at the PR title
49+ // Dependabot titles include version info like "from 1.0.0 to 2.0.0"
50+ const majorPattern = /from \d+\.\d+\.\d+ to (\d+)\./;
51+ const match = pr.title.match(majorPattern);
52+ if (match) {
53+ const fromMajor = pr.title.match(/from (\d+)\./);
54+ const toMajor = match[1];
55+ if (fromMajor && fromMajor[1] !== toMajor) {
56+ core.setOutput('is_major', 'true');
57+ } else {
58+ core.setOutput('is_major', 'false');
59+ }
60+ } else {
61+ core.setOutput('is_major', 'false');
62+ }
63+
64+ console.log(`Found PR #${pr.number}: ${pr.title}`);
65+ } else {
66+ core.setOutput('found', 'false');
67+ console.log('No matching PR found');
68+ }
3869
3970 - name : Auto-merge patch/minor updates
40- if : |
41- steps.metadata.outputs.update-type == 'version-update:semver-patch' ||
42- steps.metadata.outputs.update-type == 'version-update:semver-minor'
71+ if : steps.pr.outputs.found == 'true' && steps.pr.outputs.is_major != 'true'
4372 run : |
44- echo "Enabling auto-merge for ${{ steps.metadata.outputs.dependency-names }} (${{ steps.metadata.outputs.update-type }})"
45- gh pr merge --auto --merge "$HEAD_BRANCH"
73+ echo "Enabling auto-merge for PR #${{ steps.pr.outputs.number }}"
74+ echo "Title: ${{ steps.pr.outputs.title }}"
75+ gh pr merge --auto --merge ${{ steps.pr.outputs.number }} --repo ${{ github.repository }}
4676 env :
4777 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
48- HEAD_BRANCH : ${{ github.event.workflow_run.head_branch }}
4978
5079 - name : Skip major updates
51- if : steps.metadata .outputs.update-type == 'version-update:semver-major '
80+ if : steps.pr .outputs.found == 'true' && steps.pr.outputs.is_major == 'true '
5281 run : |
53- echo "Major version update for ${{ steps.metadata.outputs.dependency-names }} - review required"
82+ echo "⚠️ Major version update detected - manual review required"
83+ echo "PR #${{ steps.pr.outputs.number }}: ${{ steps.pr.outputs.title }}"
0 commit comments