Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 37 additions & 8 deletions .github/workflows/jira_codex_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ env:
jobs:
implement:
runs-on: ubuntu-latest
environment: jira-codex
timeout-minutes: 60
environment: staging
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
- name: Fetch Jira issue JSON
id: issue
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_BASE_URL: ${{ vars.JIRA_BASE_URL }}
JIRA_EMAIL: ${{ secrets.JIRA_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
JIRA_KEY: ${{ steps.jira.outputs.JIRA_KEY }}
Expand All @@ -117,11 +117,25 @@ jobs:
esac

JIRA_BASE_URL="${JIRA_BASE_URL%/}"
ISSUE_URL="$JIRA_BASE_URL/rest/api/3/issue/$JIRA_KEY"
case "$JIRA_BASE_URL" in
*/rest/api/3) API_BASE_URL="$JIRA_BASE_URL" ;;
*) API_BASE_URL="$JIRA_BASE_URL/rest/api/3" ;;
esac
ISSUE_URL="$API_BASE_URL/issue/$JIRA_KEY"

curl -fsS --retry 3 --retry-all-errors -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
HTTP_CODE=$(curl -sS --retry 3 --retry-delay 2 -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
-H "Accept: application/json" \
"$ISSUE_URL" > jira.json
-o jira.json \
-w "%{http_code}" \
"$ISSUE_URL")

if [ "$HTTP_CODE" != "200" ]; then
echo "Failed to fetch Jira issue. HTTP $HTTP_CODE"
echo "Request URL: $ISSUE_URL"
echo "Response body:"
cat jira.json
exit 1
fi

SUMMARY=$(jq -r '.fields.summary // empty' jira.json)
ISSUE_TYPE=$(jq -r '.fields.issuetype.name // empty' jira.json)
Expand Down Expand Up @@ -374,7 +388,7 @@ jobs:

- name: Comment back on Jira with PR link
env:
JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
JIRA_BASE_URL: ${{ vars.JIRA_BASE_URL }}
JIRA_EMAIL: ${{ secrets.JIRA_EMAIL }}
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
JIRA_KEY: ${{ steps.jira.outputs.JIRA_KEY }}
Expand All @@ -397,6 +411,10 @@ jobs:
esac

JIRA_BASE_URL="${JIRA_BASE_URL%/}"
case "$JIRA_BASE_URL" in
*/rest/api/3) API_BASE_URL="$JIRA_BASE_URL" ;;
*) API_BASE_URL="$JIRA_BASE_URL/rest/api/3" ;;
esac

if [ -z "$PR_URL" ] || [ "$PR_URL" = "null" ]; then
echo "No PR URL found; skipping Jira comment."
Expand All @@ -419,9 +437,20 @@ jobs:
}
}')

curl -fsS --retry 3 --retry-all-errors -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
COMMENT_URL="$API_BASE_URL/issue/$JIRA_KEY/comment"
HTTP_CODE=$(curl -sS --retry 3 --retry-delay 2 -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST \
--data "$payload" \
"$JIRA_BASE_URL/rest/api/3/issue/$JIRA_KEY/comment" > /dev/null
-o jira_comment_response.json \
-w "%{http_code}" \
"$COMMENT_URL")

if [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "200" ]; then
echo "Failed to post Jira comment. HTTP $HTTP_CODE"
echo "Request URL: $COMMENT_URL"
echo "Response body:"
cat jira_comment_response.json
exit 1
fi
Loading