Skip to content

WIP LIBAAEC-33 Modify PR template body and create github actions to add Jira issue #9

WIP LIBAAEC-33 Modify PR template body and create github actions to add Jira issue

WIP LIBAAEC-33 Modify PR template body and create github actions to add Jira issue #9

name: Update Pull Request with Jira Issue Link
on:
pull_request:
types: [opened, edited]
jobs:
update-pr:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Extract Jira Issue from branch name
id: extract_branch
run: |
echo "Extracting Jira issue from branch name..."
branch_name=$(echo "${{ github.event.pull_request.head.ref }}" | grep -oEi 'LIBAAEC-[0-9]+')
if [ -z "$branch_name" ]; then
echo "No Jira issue found in branch name. Exiting."
exit 0
fi
jira_link="https://ucdts.atlassian.net/browse/$branch_name"
echo "Extracted Jira Issue: $branch_name"
echo "Generated Jira Link: $jira_link"
echo "branch_name=$branch_name" >> $GITHUB_OUTPUT
echo "jira_link=$jira_link" >> $GITHUB_OUTPUT
- name: Check if Jira link exists in PR body
id: check_jira_link
run: |
jira_link="${{ steps.extract_branch.outputs.jira_link }}"
echo "Checking if Jira link exists in the PR body..."
jira_link_present=$(echo "${{ github.event.pull_request.body || '' }}" | grep -c "$jira_link")
if [ "$jira_link_present" -eq 1 ]; then
echo "Jira link already exists in the PR body."
echo "skip_update=true" >> $GITHUB_OUTPUT
else
echo "Jira link does not exist in the PR body."
echo "skip_update=false" >> $GITHUB_OUTPUT
fi
- name: Prepend Jira link and update PR description
if: steps.check_jira_link.outputs.skip_update == 'false'
run: |
echo "Prepending Jira link to PR body..."
jira_link="Jira Issue: [${{ steps.extract_branch.outputs.branch_name }}](${{ steps.extract_branch.outputs.jira_link }})"
original_body="${{ github.event.pull_request.body || '' }}"
pr_body="$jira_link"$'\n\n'"$original_body"
pr_body_escaped=$(echo "$pr_body" | jq -Rs .)
echo "Sending updated PR body to GitHub..."
curl -s -X PATCH -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-d "{\"body\": $pr_body_escaped}" \
"https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}"
echo "PR body updated successfully."