Comment staging URL on the open PR after deployment
Staging deployment / deploy (push) Successful in 22s
Staging deployment / teardown (push) Has been skipped
Django CI/CD / test (push) Successful in 2m20s
Django CI/CD / build-and-push (push) Successful in 1m52s

Looks up the open PR for the pushed branch via the Gitea API using the
workflow token and posts the staging URL once (skips if the same
comment already exists).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit was merged in pull request #96.
This commit is contained in:
2026-06-12 17:45:35 +02:00
parent de0c2eced0
commit f79ec7b454
+23
View File
@@ -44,6 +44,29 @@ jobs:
- name: Summary - name: Summary
run: echo "Deployed to https://${HOST}" >> "$GITHUB_STEP_SUMMARY" run: echo "Deployed to https://${HOST}" >> "$GITHUB_STEP_SUMMARY"
- name: Comment staging URL on PR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
auth="Authorization: token ${GITHUB_TOKEN}"
api="${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}"
pr=$(curl -fsS -H "$auth" "${api}/pulls?state=open&limit=50" \
| jq -r --arg branch "$BRANCH" '.[] | select(.head.ref == $branch) | .number' | head -n1)
if [ -z "$pr" ]; then
echo "No open PR for branch '${BRANCH}', skipping comment"
exit 0
fi
body="Staging deployment: https://${HOST}"
if curl -fsS -H "$auth" "${api}/issues/${pr}/comments" \
| jq -e --arg body "$body" 'any(.[]; .body == $body)' >/dev/null; then
echo "Staging URL already commented on PR #${pr}"
exit 0
fi
curl -fsS -X POST -H "$auth" -H 'Content-Type: application/json' \
-d "$(jq -n --arg body "$body" '{body: $body}')" \
"${api}/issues/${pr}/comments" >/dev/null
echo "Commented staging URL on PR #${pr}"
teardown: teardown:
if: github.event_name == 'delete' && github.event.ref_type == 'branch' if: github.event_name == 'delete' && github.event.ref_type == 'branch'
runs-on: ubuntu-latest runs-on: ubuntu-latest