Skip to content

Fix for issue https://github.com/JabRef/jabref/issues/12810 #1

Fix for issue https://github.com/JabRef/jabref/issues/12810

Fix for issue https://github.com/JabRef/jabref/issues/12810 #1

Workflow file for this run

name: On PR closed
on:
pull_request_target:
types: [ closed ]
jobs:
determine_issue_number:
name: Determine issue number
runs-on: ubuntu-latest
if: >
!(
(github.actor == 'dependabot[bot]') ||
(
startsWith(github.event.pull_request.title, '[Bot] ') ||
startsWith(github.event.pull_request.title, 'Bump ') ||
startsWith(github.event.pull_request.title, 'New Crowdin updates') ||
startsWith(github.event.pull_request.title, 'Update Gradle Wrapper from')
)
)
permissions:
contents: read
outputs:
issue_number: ${{ steps.get_issue_number.outputs.ticketNumber }}
steps:
- name: echo PR data
run: |
echo "PR Number: ${{ github.event.pull_request.number }}"
echo "PR URL: ${{ github.event.pull_request.html_url }}"
cat <<EOF
PR Body:
${{ github.event.pull_request.body }}
EOF
- name: Determine issue number
id: get_issue_number
uses: koppor/ticket-check-action@add-output
with:
token: ${{ secrets.GITHUB_TOKEN }}
ticketLink: 'https://github.com/JabRef/jabref/issues/%ticketNumber%'
ticketPrefix: '#'
titleRegex: '^#(?<ticketNumber>\d+)'
branchRegex: '^(?<ticketNumber>\d+)'
# Matches GitHub's closes/fixes/resolves #{number}, but does not match our example `Closes #12345` in PULL_REQUEST_TEMPLATE
bodyRegex: '(?<action>fixes|closes|resolves)\s+(?:https?:\/\/github\.com\/JabRef\/jabref\/issues\/)?#?(?<ticketNumber>(?!12345\b)\d+)'
bodyRegexFlags: 'i'
outputOnly: true
- run: echo "${{ steps.get_issue_number.outputs.ticketNumber }}"
unassign_issue:
name: Mark issue as available
runs-on: ubuntu-latest
needs: determine_issue_number
if: >
(needs.determine_issue_number.outputs.issue_number != '-1') &&
(!github.event.pull_request.merged)
permissions:
contents: read
issues: write
steps:
- uses: actions/checkout@v4
- name: Remove assignee
run: |
# "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
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-assignee ${{ github.event.pull_request.user.login }} || true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check assignees
id: check_assignee
run: |
issue=$(gh issue view ${{ needs.determine_issue_number.outputs.issue_number }} --json assignees)
count=$(echo "$issue" | jq '.assignees | length')
if [ "$count" -gt 0 ]; then
echo "assigned=yes" >> $GITHUB_OUTPUT
else
echo "assigned=no" >> $GITHUB_OUTPUT
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Remove labels assigned, reminder-sent, pinned, and "FirstTimeCodeContribution"
if: steps.check_assignee.outputs.assigned == 'no'
run: |
set -e
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-label "📍 Assigned"
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-label "🔔 reminder-sent"
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-label "📌 Pinned"
gh issue edit ${{ needs.determine_issue_number.outputs.issue_number }} --remove-label "FirstTimeCodeContribution"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Move issue to "Free to take" in "Good First Issues"
if: steps.check_assignee.outputs.assigned == 'no'
uses: m7kvqbe1/github-action-move-issues/@add-issue-parameter
with:
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
project-url: "https://github.com/orgs/JabRef/projects/5"
target-labels: "📍 Assigned"
target-column: "Assigned"
ignored-columns: ""
default-column: "Free to take"
issue-number: ${{ needs.determine_issue_number.outputs.issue_number }}
skip-if-not-in-project: true
- name: Move issue to "Free to take" in "Candidates for University Projects"
if: steps.check_assignee.outputs.assigned == 'no'
uses: m7kvqbe1/github-action-move-issues/@add-issue-parameter
with:
github-token: ${{ secrets.GH_TOKEN_ACTION_MOVE_ISSUE }}
project-url: "https://github.com/orgs/JabRef/projects/3"
target-labels: "📍 Assigned"
target-column: "Assigned"
ignored-columns: ""
default-column: "Free to take"
issue-number: ${{ needs.determine_issue_number.outputs.issue_number }}
skip-if-not-in-project: true
comment_on_resolved_issue:
name: Comment on resolved issue
runs-on: ubuntu-latest
needs: determine_issue_number
if: >
(needs.determine_issue_number.outputs.issue_number != '-1') &&
(github.event.pull_request.merged)
permissions:
contents: read
issues: write
steps:
- name: Comment on issue
uses: thollander/actions-comment-pull-request@v3
with:
pr-number: ${{ needs.determine_issue_number.outputs.issue_number }}
message: |
Closed by ${{ github.event.pull_request.html_url }}
Please head to <https://builds.jabref.org/main> to try it out.
For any feedback, add a comment to the pull request at ${{ github.event.pull_request.html_url }}.