...
1name: Milestone
2
3on:
4 pull_request_target:
5 types: [closed]
6 branches:
7 - main
8
9jobs:
10 milestone:
11 runs-on: ubuntu-latest
12
13 permissions:
14 actions: none
15 checks: none
16 contents: read
17 deployments: none
18 issues: write
19 packages: none
20 pull-requests: write
21 repository-projects: none
22 security-events: none
23 statuses: none
24
25 steps:
26 - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
27 with:
28 script: |
29 if (!context.payload.pull_request.merged) {
30 console.log('PR was not merged, skipping.');
31 return;
32 }
33 if (!!context.payload.pull_request.milestone) {
34 console.log('PR has existing milestone, skipping.');
35 return;
36 }
37 milestones = await github.rest.issues.listMilestones({
38 owner: context.repo.owner,
39 repo: context.repo.repo,
40 state: 'open',
41 sort: 'due_on',
42 direction: 'asc'
43 })
44 if (milestones.data.length === 0) {
45 console.log('There are no milestones, skipping.');
46 return;
47 }
48 await github.rest.issues.update({
49 owner: context.repo.owner,
50 repo: context.repo.repo,
51 issue_number: context.payload.pull_request.number,
52 milestone: milestones.data[0].number
53 });
View as plain text