Skip to content

Commit 732afc3

Browse files
committed
Merge branch '7.0.x'
2 parents d174b10 + ea6e7ab commit 732afc3

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

.github/workflows/defer-issues.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Defer Issues
2+
3+
on:
4+
workflow_dispatch:
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
defer-issues:
11+
name: Defer Issues
12+
runs-on: ubuntu-latest
13+
if: github.repository_owner == 'spring-projects'
14+
permissions:
15+
issues: write
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
19+
- name: Compute Version
20+
id: compute-version
21+
uses: spring-io/spring-release-actions/compute-version@0.0.3
22+
- name: Get Today's Release Version
23+
id: todays-release
24+
uses: spring-io/spring-release-actions/get-todays-release-version@0.0.3
25+
with:
26+
snapshot-version: ${{ steps.compute-version.outputs.version }}
27+
milestone-repository: ${{ github.repository }}
28+
milestone-token: ${{ secrets.GITHUB_TOKEN }}
29+
- name: Compute Next Version
30+
id: next-version
31+
uses: spring-io/spring-release-actions/compute-next-version@0.0.3
32+
with:
33+
version: ${{ steps.todays-release.outputs.release-version }}
34+
- name: Schedule Next Milestone
35+
uses: spring-io/spring-release-actions/schedule-milestone@0.0.3
36+
with:
37+
version: ${{ steps.next-version.outputs.version }}
38+
version-date: ${{ steps.next-version.outputs.version-date }}
39+
repository: ${{ github.repository }}
40+
token: ${{ secrets.GITHUB_TOKEN }}
41+
- name: Move Open Issues to Next Milestone
42+
env:
43+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44+
CURRENT_MILESTONE: ${{ steps.todays-release.outputs.release-version }}
45+
NEXT_MILESTONE: ${{ steps.next-version.outputs.version }}
46+
run: |
47+
current_milestone_number=$(gh api repos/${{ github.repository }}/milestones \
48+
--jq ".[] | select(.title == \"$CURRENT_MILESTONE\") | .number")
49+
if [ -z "$current_milestone_number" ]; then
50+
echo "No milestone found for $CURRENT_MILESTONE"
51+
exit 0
52+
fi
53+
next_milestone_number=$(gh api repos/${{ github.repository }}/milestones \
54+
--jq ".[] | select(.title == \"$NEXT_MILESTONE\") | .number")
55+
if [ -z "$next_milestone_number" ]; then
56+
echo "No milestone found for $NEXT_MILESTONE"
57+
exit 1
58+
fi
59+
echo "Moving open issues from milestone '$CURRENT_MILESTONE' (#$current_milestone_number) to '$NEXT_MILESTONE' (#$next_milestone_number)"
60+
page=1
61+
while true; do
62+
issues=$(gh api "repos/${{ github.repository }}/issues?milestone=$current_milestone_number&state=open&per_page=100&page=$page" \
63+
--jq '.[].number')
64+
if [ -z "$issues" ]; then
65+
break
66+
fi
67+
for issue in $issues; do
68+
echo "Moving issue/PR #$issue to milestone $NEXT_MILESTONE"
69+
gh api repos/${{ github.repository }}/issues/$issue \
70+
--method PATCH \
71+
--field milestone=$next_milestone_number \
72+
--silent
73+
done
74+
page=$((page + 1))
75+
done
76+
echo "Done."

0 commit comments

Comments
 (0)