From 03e78a97d17acca3c019d15c64779ff134fc4e2f Mon Sep 17 00:00:00 2001 From: jakeross Date: Fri, 13 Feb 2026 10:12:05 -0700 Subject: [PATCH 1/5] chore: update environment name in workflow and switch to vars for JIRA_BASE_URL --- .github/workflows/jira_codex_pr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/jira_codex_pr.yml b/.github/workflows/jira_codex_pr.yml index 51f4edd2..9743ab3d 100644 --- a/.github/workflows/jira_codex_pr.yml +++ b/.github/workflows/jira_codex_pr.yml @@ -38,7 +38,7 @@ jobs: implement: runs-on: ubuntu-latest timeout-minutes: 60 - environment: staging + environment: jira-codex steps: - name: Checkout uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 @@ -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 }} @@ -374,7 +374,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 }} From 3a5157feb1dbca5514ce318d7a0a7d23b357f0f9 Mon Sep 17 00:00:00 2001 From: jakeross Date: Fri, 13 Feb 2026 10:14:57 -0700 Subject: [PATCH 2/5] Handle Jira API base URL variants and 404 diagnostics --- .github/workflows/jira_codex_pr.yml | 39 +++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/.github/workflows/jira_codex_pr.yml b/.github/workflows/jira_codex_pr.yml index 9743ab3d..bc9d82ec 100644 --- a/.github/workflows/jira_codex_pr.yml +++ b/.github/workflows/jira_codex_pr.yml @@ -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) @@ -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." @@ -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 From 0c558e158630fc8d67f68db3c1a12c981e43c0fa Mon Sep 17 00:00:00 2001 From: jakeross Date: Fri, 13 Feb 2026 10:25:52 -0700 Subject: [PATCH 3/5] chore: update environment name in workflow and switch to vars for JIRA_BASE_URL --- .github/workflows/jira_codex_pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/jira_codex_pr.yml b/.github/workflows/jira_codex_pr.yml index bc9d82ec..a2d0c12d 100644 --- a/.github/workflows/jira_codex_pr.yml +++ b/.github/workflows/jira_codex_pr.yml @@ -37,8 +37,8 @@ env: jobs: implement: runs-on: ubuntu-latest - timeout-minutes: 60 environment: jira-codex + timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 From d9aa27236870ac542d63bdc5998a9d42463fb85c Mon Sep 17 00:00:00 2001 From: jakeross Date: Fri, 13 Feb 2026 10:30:31 -0700 Subject: [PATCH 4/5] chore: update environment name in workflow and switch to vars for JIRA_BASE_URL --- .github/workflows/jira_codex_pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/jira_codex_pr.yml b/.github/workflows/jira_codex_pr.yml index a2d0c12d..d40cc7d5 100644 --- a/.github/workflows/jira_codex_pr.yml +++ b/.github/workflows/jira_codex_pr.yml @@ -94,7 +94,7 @@ jobs: - name: Fetch Jira issue JSON id: issue env: - JIRA_BASE_URL: ${{ vars.JIRA_BASE_URL }} + JIRA_BASE_URL: "https://nmbgmr.atlassian.net" JIRA_EMAIL: ${{ secrets.JIRA_EMAIL }} JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} JIRA_KEY: ${{ steps.jira.outputs.JIRA_KEY }} @@ -388,7 +388,7 @@ jobs: - name: Comment back on Jira with PR link env: - JIRA_BASE_URL: ${{ vars.JIRA_BASE_URL }} + JIRA_BASE_URL: "https://nmbgmr.atlassian.net" JIRA_EMAIL: ${{ secrets.JIRA_EMAIL }} JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} JIRA_KEY: ${{ steps.jira.outputs.JIRA_KEY }} From 941e72279c7afa6d96c31ddf0a06369ee493a19b Mon Sep 17 00:00:00 2001 From: jakeross Date: Fri, 13 Feb 2026 10:33:17 -0700 Subject: [PATCH 5/5] chore: switch JIRA_BASE_URL to use workflow variables --- .github/workflows/jira_codex_pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/jira_codex_pr.yml b/.github/workflows/jira_codex_pr.yml index d40cc7d5..a2d0c12d 100644 --- a/.github/workflows/jira_codex_pr.yml +++ b/.github/workflows/jira_codex_pr.yml @@ -94,7 +94,7 @@ jobs: - name: Fetch Jira issue JSON id: issue env: - JIRA_BASE_URL: "https://nmbgmr.atlassian.net" + 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 }} @@ -388,7 +388,7 @@ jobs: - name: Comment back on Jira with PR link env: - JIRA_BASE_URL: "https://nmbgmr.atlassian.net" + 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 }}