3737jobs :
3838 implement :
3939 runs-on : ubuntu-latest
40+ environment : jira-codex
4041 timeout-minutes : 60
41- environment : staging
4242 steps :
4343 - name : Checkout
4444 uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
9494 - name : Fetch Jira issue JSON
9595 id : issue
9696 env :
97- JIRA_BASE_URL : ${{ secrets .JIRA_BASE_URL }}
97+ JIRA_BASE_URL : ${{ vars .JIRA_BASE_URL }}
9898 JIRA_EMAIL : ${{ secrets.JIRA_EMAIL }}
9999 JIRA_API_TOKEN : ${{ secrets.JIRA_API_TOKEN }}
100100 JIRA_KEY : ${{ steps.jira.outputs.JIRA_KEY }}
@@ -117,11 +117,25 @@ jobs:
117117 esac
118118
119119 JIRA_BASE_URL="${JIRA_BASE_URL%/}"
120- ISSUE_URL="$JIRA_BASE_URL/rest/api/3/issue/$JIRA_KEY"
120+ case "$JIRA_BASE_URL" in
121+ */rest/api/3) API_BASE_URL="$JIRA_BASE_URL" ;;
122+ *) API_BASE_URL="$JIRA_BASE_URL/rest/api/3" ;;
123+ esac
124+ ISSUE_URL="$API_BASE_URL/issue/$JIRA_KEY"
121125
122- curl -fsS --retry 3 --retry-all-errors -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
126+ HTTP_CODE=$( curl -sS --retry 3 --retry-delay 2 -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
123127 -H "Accept: application/json" \
124- "$ISSUE_URL" > jira.json
128+ -o jira.json \
129+ -w "%{http_code}" \
130+ "$ISSUE_URL")
131+
132+ if [ "$HTTP_CODE" != "200" ]; then
133+ echo "Failed to fetch Jira issue. HTTP $HTTP_CODE"
134+ echo "Request URL: $ISSUE_URL"
135+ echo "Response body:"
136+ cat jira.json
137+ exit 1
138+ fi
125139
126140 SUMMARY=$(jq -r '.fields.summary // empty' jira.json)
127141 ISSUE_TYPE=$(jq -r '.fields.issuetype.name // empty' jira.json)
@@ -374,7 +388,7 @@ jobs:
374388
375389 - name : Comment back on Jira with PR link
376390 env :
377- JIRA_BASE_URL : ${{ secrets .JIRA_BASE_URL }}
391+ JIRA_BASE_URL : ${{ vars .JIRA_BASE_URL }}
378392 JIRA_EMAIL : ${{ secrets.JIRA_EMAIL }}
379393 JIRA_API_TOKEN : ${{ secrets.JIRA_API_TOKEN }}
380394 JIRA_KEY : ${{ steps.jira.outputs.JIRA_KEY }}
@@ -397,6 +411,10 @@ jobs:
397411 esac
398412
399413 JIRA_BASE_URL="${JIRA_BASE_URL%/}"
414+ case "$JIRA_BASE_URL" in
415+ */rest/api/3) API_BASE_URL="$JIRA_BASE_URL" ;;
416+ *) API_BASE_URL="$JIRA_BASE_URL/rest/api/3" ;;
417+ esac
400418
401419 if [ -z "$PR_URL" ] || [ "$PR_URL" = "null" ]; then
402420 echo "No PR URL found; skipping Jira comment."
@@ -419,9 +437,20 @@ jobs:
419437 }
420438 }')
421439
422- curl -fsS --retry 3 --retry-all-errors -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
440+ COMMENT_URL="$API_BASE_URL/issue/$JIRA_KEY/comment"
441+ HTTP_CODE=$(curl -sS --retry 3 --retry-delay 2 -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
423442 -H "Accept: application/json" \
424443 -H "Content-Type: application/json" \
425444 -X POST \
426445 --data "$payload" \
427- "$JIRA_BASE_URL/rest/api/3/issue/$JIRA_KEY/comment" > /dev/null
446+ -o jira_comment_response.json \
447+ -w "%{http_code}" \
448+ "$COMMENT_URL")
449+
450+ if [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "200" ]; then
451+ echo "Failed to post Jira comment. HTTP $HTTP_CODE"
452+ echo "Request URL: $COMMENT_URL"
453+ echo "Response body:"
454+ cat jira_comment_response.json
455+ exit 1
456+ fi
0 commit comments