File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ name : dependabot-automerge
2+
3+ on :
4+ workflow_run :
5+ workflows : ["build"]
6+ types : [completed]
7+
8+ permissions :
9+ contents : write
10+ pull-requests : write
11+
12+ jobs :
13+ automerge :
14+ if : github.event.workflow_run.conclusion == 'success'
15+ runs-on : ubuntu-latest
16+
17+ steps :
18+ - name : Merge Dependabot PR if eligible
19+ uses : actions/github-script@v7
20+ with :
21+ script : |
22+ const prs = context.payload.workflow_run.pull_requests;
23+ if (!prs || prs.length === 0) {
24+ core.info('No pull requests associated with this workflow_run.');
25+ return;
26+ }
27+
28+ const prNumber = prs[0].number;
29+ const { owner, repo } = context.repo;
30+ const { data: pr } = await github.rest.pulls.get({ owner, repo, pull_number: prNumber });
31+
32+ const author = pr.user?.login || '';
33+ if (author !== 'dependabot[bot]' && author !== 'dependabot') {
34+ core.info(`PR #${prNumber} is not from Dependabot (${author}).`);
35+ return;
36+ }
37+
38+ if (pr.mergeable_state !== 'clean') {
39+ core.info(`PR #${prNumber} is not mergeable yet (state: ${pr.mergeable_state}).`);
40+ return;
41+ }
42+
43+ await github.rest.pulls.merge({
44+ owner,
45+ repo,
46+ pull_number: prNumber,
47+ merge_method: 'merge'
48+ });
49+
50+ core.info(`Merged Dependabot PR #${prNumber}.`);
You can’t perform that action at this time.
0 commit comments