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