|
1 | | -# This workflow will comment the PR with the JIRA issue summary |
2 | | -# if a JIRA issue number is detected in the branch name or title |
3 | | - |
4 | 1 | name: Add JIRA issue summary |
5 | 2 |
|
6 | 3 | on: |
7 | 4 | pull_request_target: |
8 | 5 | types: [opened] |
9 | 6 |
|
10 | 7 | jobs: |
11 | | - add_jira_summary: |
12 | | - runs-on: ubuntu-latest |
13 | | - |
14 | | - steps: |
15 | | - - name: Find JIRA issue key |
16 | | - id: find_jira_key |
17 | | - env: |
18 | | - HEAD_REF: ${{ github.head_ref}} |
19 | | - PR_TITLE: ${{ github.event.pull_request.title }} |
20 | | - run: > |
21 | | - echo $HEAD_REF $PR_TITLE |
22 | | - | echo "issue_key=$( |
23 | | - grep -osi "\b\(GA\|GEOPY\|DEVOPS\)[ #-]*[0-9]\+" |
24 | | - | head -n1 |
25 | | - | sed -E "s/([A-Z]+)[-# ]*([0-9]+)/\1-\2/i" |
26 | | - | tr [:lower:] [:upper:] |
27 | | - )" |
28 | | - >> $GITHUB_OUTPUT |
29 | | - - name: Get JIRA summary |
30 | | - id: get_jira_summary |
31 | | - if: ${{ steps.find_jira_key.outputs.issue_key }} |
32 | | - env: |
33 | | - JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} |
34 | | - JIRA_BASIC_AUTH: ${{ secrets.JIRA_BASIC_AUTH }} |
35 | | - run: > |
36 | | - curl -sS -X GET |
37 | | - -H "Authorization: Basic $JIRA_BASIC_AUTH" |
38 | | - -H "Content-Type: application/json" |
39 | | - "$JIRA_BASE_URL/rest/api/2/issue/${{ steps.find_jira_key.outputs.issue_key }}" |
40 | | - | echo "summary=$(jq -r '.fields.summary // empty')" >> $GITHUB_OUTPUT |
41 | | - - name: Extract PR title |
42 | | - id: get_pr_title |
43 | | - env: |
44 | | - PR_TITLE: ${{ github.event.pull_request.title }} |
45 | | - run: | |
46 | | - echo "text=$(echo $PR_TITLE | sed -E "s/^\s*[?[A-Z]+[-# ]*[0-9]+]?[-: ]*(.*)/\1/i")" >> $GITHUB_OUTPUT |
47 | | - - name: Add comment |
48 | | - if: ${{ steps.find_jira_key.outputs.issue_key }} |
49 | | - env: |
50 | | - ISSUE_SUMMARY: ${{ steps.get_jira_summary.outputs.summary }} |
51 | | - TITLE_TEXT: ${{ steps.get_pr_title.outputs.text }} |
52 | | - PR_BODY: ${{ github.event.pull_request.body }} |
53 | | - run: > |
54 | | - jq |
55 | | - --arg ISSUE_ID "${{ steps.find_jira_key.outputs.issue_key }}" |
56 | | - --arg ISSUE_SUMMARY "$(cat <<< $ISSUE_SUMMARY)" |
57 | | - --arg TITLE_TEXT "$(cat <<< ${TITLE_TEXT:-$ISSUE_SUMMARY})" |
58 | | - --arg PR_BODY "$(cat <<< $PR_BODY)" |
59 | | - -c '{"title": ($ISSUE_ID + ": " + $TITLE_TEXT), "body": ("**" + $ISSUE_ID + " - " + $ISSUE_SUMMARY + "**\n" + $PR_BODY)}' <<< {} |
60 | | - | curl -sS -X POST -d @- |
61 | | - -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" |
62 | | - -H "Content-Type: application/json" |
63 | | - "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/pulls/${{ github.event.pull_request.number }}" |
64 | | - > /dev/null |
| 8 | + call-workflow-add-jira-issue-summary: |
| 9 | + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-jira-pr_add_jira_summary.yml@main |
| 10 | + secrets: inherit |
0 commit comments