Skip to content

Commit de86066

Browse files
committed
Update to update of koppor/ticket-check-action@add-output
1 parent 7fede76 commit de86066

File tree

2 files changed

+53
-74
lines changed

2 files changed

+53
-74
lines changed

.github/workflows/on-pr-closed.yml

Lines changed: 28 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ on:
55
types: [ closed ]
66

77
jobs:
8-
unassign_issue:
9-
name: Mark issue as available
8+
determine_issue_number:
9+
name: Determine issue number
1010
runs-on: ubuntu-latest
1111
if: >
12-
github.event.action == 'closed' && !github.event.pull_request.merged && !(
12+
!(
1313
(github.actor == 'dependabot[bot]') ||
1414
(
1515
startsWith(github.event.pull_request.title, '[Bot] ') ||
@@ -20,7 +20,8 @@ jobs:
2020
)
2121
permissions:
2222
contents: read
23-
issues: write
23+
outputs:
24+
issue_number: ${{ steps.get_issue_number.outputs.issue_number }}
2425
steps:
2526
- name: echo PR data
2627
run: |
@@ -42,17 +43,28 @@ jobs:
4243
bodyRegexFlags: 'i'
4344
bodyURLRegex: 'http(s?):\/\/(github.com)(\/JabRef)(\/jabref)(\/issues)\/(?<ticketNumber>\d+)'
4445
outputOnly: true
46+
unassign_issue:
47+
name: Mark issue as available
48+
runs-on: ubuntu-latest
49+
needs: determine_issue_number
50+
if: >
51+
(needs.determine_issue_number.outputs.issue_number != '-1') &&
52+
(!github.event.pull_request.merged)
53+
permissions:
54+
contents: read
55+
issues: write
56+
steps:
4557
- uses: actions/checkout@v4
4658
- name: Remove assignee
4759
run: |
4860
# "brute force" remove assignee - it might happen that the contributor was unassinged, but the PR closed later; therefore we need " || true" to ignore any error
49-
gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-assignee ${{ github.event.pull_request.user.login }} || true
61+
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-assignee ${{ github.event.pull_request.user.login }} || true
5062
env:
5163
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5264
- name: Check assignees
5365
id: check_assignee
5466
run: |
55-
issue=$(gh issue view ${{ steps.get_issue_number.outputs.ticketNumber }} --json assignees)
67+
issue=$(gh issue view ${{ needs.determine_issue_number.outputs.issue_number }} --json assignees)
5668
count=$(echo "$issue" | jq '.assignees | length')
5769
if [ "$count" -gt 0 ]; then
5870
echo "assigned=yes" >> $GITHUB_OUTPUT
@@ -66,10 +78,10 @@ jobs:
6678
run: |
6779
set -e
6880
69-
gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-label "📍 Assigned"
70-
gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-label "🔔 reminder-sent"
71-
gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-label "📌 Pinned"
72-
gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --remove-label "FirstTimeCodeContribution"
81+
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-label "📍 Assigned"
82+
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-label "🔔 reminder-sent"
83+
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-label "📌 Pinned"
84+
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-label "FirstTimeCodeContribution"
7385
env:
7486
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7587
- name: Move issue to "Free to take" in "Good First Issues"
@@ -82,7 +94,7 @@ jobs:
8294
target-column: "Assigned"
8395
ignored-columns: ""
8496
default-column: "Free to take"
85-
issue-number: ${{ steps.get_issue_number.outputs.ticketNumber }}
97+
issue-number: ${{ needs.determine_issue_number.outputs.issue_number }}
8698
skip-if-not-in-project: true
8799
- name: Move issue to "Free to take" in "Candidates for University Projects"
88100
if: steps.check_assignee.outputs.assigned == 'no'
@@ -94,48 +106,23 @@ jobs:
94106
target-column: "Assigned"
95107
ignored-columns: ""
96108
default-column: "Free to take"
97-
issue-number: ${{ steps.get_issue_number.outputs.ticketNumber }}
109+
issue-number: ${{ needs.determine_issue_number.outputs.issue_number }}
98110
skip-if-not-in-project: true
99111
comment_on_resolved_issue:
100112
name: Comment on resolved issue
101113
runs-on: ubuntu-latest
114+
needs: determine_issue_number
102115
if: >
103-
github.event.action == 'closed' && github.event.pull_request.merged && !(
104-
(github.actor == 'dependabot[bot]') ||
105-
(
106-
startsWith(github.event.pull_request.title, '[Bot] ') ||
107-
startsWith(github.event.pull_request.title, 'Bump ') ||
108-
startsWith(github.event.pull_request.title, 'New Crowdin updates') ||
109-
startsWith(github.event.pull_request.title, 'Update Gradle Wrapper from')
110-
)
111-
)
116+
(needs.determine_issue_number.outputs.issue_number != '-1') &&
117+
(github.event.pull_request.merged)
112118
permissions:
113119
contents: read
114120
issues: write
115121
steps:
116-
- name: echo PR data
117-
run: |
118-
echo "PR Number: ${{ github.event.pull_request.number }}"
119-
echo "PR URL: ${{ github.event.pull_request.html_url }}"
120-
echo "PR Body"
121-
echo "${{ github.event.pull_request.body }}"
122-
- name: Determine issue number
123-
id: get_issue_number
124-
uses: koppor/ticket-check-action@add-output
125-
with:
126-
token: ${{ secrets.GITHUB_TOKEN }}
127-
ticketLink: 'https://github.com/JabRef/jabref/issues/%ticketNumber%'
128-
ticketPrefix: '#'
129-
titleRegex: '^#(?<ticketNumber>\d+)'
130-
branchRegex: '^(?<ticketNumber>\d+)'
131-
bodyRegex: '(?<action>fixes|closes|resolves)\s+#(?<ticketNumber>(?!12345\b)\d+)'
132-
bodyRegexFlags: 'i'
133-
bodyURLRegex: 'http(s?):\/\/(github.com)(\/JabRef)(\/jabref)(\/issues)\/(?<ticketNumber>\d+)'
134-
outputOnly: true
135122
- name: Comment on issue
136123
uses: thollander/actions-comment-pull-request@v3
137124
with:
138-
pr-number: ${{ steps.get_issue_number.outputs.ticketNumber }}
125+
pr-number: ${{ needs.determine_issue_number.outputs.issue_number }}
139126
message: |
140127
Closed by ${{ github.event.pull_request.html_url }}
141128

.github/workflows/on-pr-opened-updated.yml

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,20 @@ jobs:
99
determine_issue_number:
1010
name: Determine issue number
1111
runs-on: ubuntu-latest
12+
if: >
13+
!(
14+
(github.actor == 'dependabot[bot]') ||
15+
(
16+
startsWith(github.event.pull_request.title, '[Bot] ') ||
17+
startsWith(github.event.pull_request.title, 'Bump ') ||
18+
startsWith(github.event.pull_request.title, 'New Crowdin updates') ||
19+
startsWith(github.event.pull_request.title, 'Update Gradle Wrapper from')
20+
)
21+
)
1222
permissions:
13-
issues: write
23+
contents: read
24+
outputs:
25+
issue_number: ${{ steps.get_issue_number.outputs.issue_number }}
1426
steps:
1527
- name: echo PR data
1628
run: |
@@ -19,6 +31,7 @@ jobs:
1931
echo "PR Body"
2032
echo "${{ github.event.pull_request.body }}"
2133
- name: Determine issue number
34+
id: get_issue_number
2235
uses: koppor/ticket-check-action@add-output
2336
with:
2437
token: ${{ secrets.GITHUB_TOKEN }}
@@ -31,6 +44,11 @@ jobs:
3144
bodyRegexFlags: 'i'
3245
bodyURLRegex: 'http(s?):\/\/(github.com)(\/JabRef)(\/jabref)(\/issues)\/(?<ticketNumber>\d+)'
3346
outputOnly: true
47+
- name: Fail on no ticket number found
48+
if: steps.get_issue_number.outputs.issue_number == '-1'
49+
run: |
50+
echo "No valid ticket number found!"
51+
exit 1
3452
move_issue:
3553
name: Mark issue as in progress
3654
# after determine_issue_number to ensure that there is only one failure because of no ticket number
@@ -39,19 +57,6 @@ jobs:
3957
permissions:
4058
issues: write
4159
steps:
42-
- name: Determine issue number
43-
id: get_issue_number
44-
uses: koppor/ticket-check-action@add-output
45-
with:
46-
token: ${{ secrets.GITHUB_TOKEN }}
47-
ticketLink: 'https://github.com/:owner/:repo/issues/%ticketNumber%'
48-
ticketPrefix: '#'
49-
titleRegex: '^#(?<ticketNumber>\d+)'
50-
branchRegex: '^(?<ticketNumber>\d+)'
51-
bodyRegex: '(?<action>fixes|closes|resolves)\s+#(?<ticketNumber>(?!12345\b)\d+)'
52-
bodyRegexFlags: 'i'
53-
bodyURLRegex: 'http(s?):\/\/(github.com)(\/JabRef)(\/jabref)(\/issues)\/(?<ticketNumber>\d+)'
54-
outputOnly: true
5560
- name: Move issue to "In Progress" in "Good First Issues"
5661
uses: m7kvqbe1/github-action-move-issues/@add-issue-parameter
5762
with:
@@ -61,7 +66,7 @@ jobs:
6166
target-column: "In Progress"
6267
ignored-columns: ""
6368
default-column: "In Progress"
64-
issue-number: ${{ steps.get_issue_number.outputs.ticketNumber }}
69+
issue-number: ${{ needs.determine_issue_number.outputs.issue_number }}
6570
skip-if-not-in-project: true
6671
- name: Move issue to "In Progress" in "Candidates for University Projects"
6772
uses: m7kvqbe1/github-action-move-issues/@add-issue-parameter
@@ -72,7 +77,7 @@ jobs:
7277
target-column: "In Progress"
7378
ignored-columns: ""
7479
default-column: "In Progress"
75-
issue-number: ${{ steps.get_issue_number.outputs.ticketNumber }}
80+
issue-number: ${{ needs.determine_issue_number.outputs.issue_number }}
7681
skip-if-not-in-project: true
7782
ensure_assignment:
7883
name: Ensure that contributor is assigned (fails if not commented on issue)
@@ -82,19 +87,6 @@ jobs:
8287
permissions:
8388
issues: write
8489
steps:
85-
- name: Determine issue number
86-
id: get_issue_number
87-
uses: koppor/ticket-check-action@add-output
88-
with:
89-
token: ${{ secrets.GITHUB_TOKEN }}
90-
ticketLink: 'https://github.com/:owner/:repo/issues/%ticketNumber%'
91-
ticketPrefix: '#'
92-
titleRegex: '^#(?<ticketNumber>\d+)'
93-
branchRegex: '^(?<ticketNumber>\d+)'
94-
bodyRegex: '(?<action>fixes|closes|resolves)\s+#(?<ticketNumber>(?!12345\b)\d+)'
95-
bodyRegexFlags: 'i'
96-
bodyURLRegex: 'http(s?):\/\/(github.com)(\/JabRef)(\/jabref)(\/issues)\/(?<ticketNumber>\d+)'
97-
outputOnly: true
9890
- uses: actions/checkout@v4
9991
with:
10092
show-progress: 'false'
@@ -104,7 +96,7 @@ jobs:
10496
10597
# "gh issue edit" cannot be used - workaround found at https://github.com/cli/cli/issues/9620#issuecomment-2703135049
10698
107-
ASSIGNEES=$(gh api /repos/JabRef/jabref/issues/${{ steps.get_issue_number.outputs.ticketNumber }} --jq '[.assignees[].login]')
99+
ASSIGNEES=$(gh api /repos/JabRef/jabref/issues/${{ needs.determine_issue_number.outputs.issue_number }} --jq '[.assignees[].login]')
108100
109101
# Check if the user is already assigned
110102
if echo "$ASSIGNEES" | jq -e '. | index("${{ github.event.pull_request.user.login }}")' >/dev/null; then
@@ -117,13 +109,13 @@ jobs:
117109
UPDATED_ASSIGNEES=$(echo "$ASSIGNEES" | jq --arg new "${{ github.event.pull_request.user.login }}" '. + [$new]')
118110
119111
# Update issue with the new assignee list
120-
echo "Updating issue #${{ steps.get_issue_number.outputs.ticketNumber }} updated with assignees: $UPDATED_ASSIGNEES..."
121-
gh api -X PATCH /repos/JabRef/jabref/issues/${{ steps.get_issue_number.outputs.ticketNumber }} --input <(echo "{\"assignees\": $UPDATED_ASSIGNEES}")
112+
echo "Updating issue #${{ needs.determine_issue_number.outputs.issue_number }} updated with assignees: $UPDATED_ASSIGNEES..."
113+
gh api -X PATCH /repos/JabRef/jabref/issues/${{ needs.determine_issue_number.outputs.issue_number }} --input <(echo "{\"assignees\": $UPDATED_ASSIGNEES}")
122114
123115
env:
124116
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
125117
- name: Add label "📌 Pinned"
126-
run: gh issue edit ${{ steps.get_issue_number.outputs.ticketNumber }} --add-label "📌 Pinned"
118+
run: gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --add-label "📌 Pinned"
127119
env:
128120
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
129121
conflicts_with_target:

0 commit comments

Comments
 (0)