#!/usr/bin/env bash # Fetch Gitea PR data via API # Usage: gitea-pr.sh [view|diff|files|comments] # Requires: GITEA_TOKEN env var (set in .env.local) set -euo pipefail PR="${1:?Usage: gitea-pr.sh [view|diff|files|comments]}" CMD="${2:-view}" REMOTE=$(git remote get-url origin 2>/dev/null) REMOTE="${REMOTE%.git}" if [[ "$REMOTE" == git@* ]]; then HOST="${REMOTE#git@}"; HOST="${HOST%%:*}" REPO="${REMOTE#*:}" else tmp="${REMOTE#*://}"; HOST="${tmp%%/*}"; REPO="${tmp#*/}" fi API="https://${HOST}/api/v1/repos/${REPO}" AUTH="Authorization: token ${GITEA_TOKEN:-}" case "$CMD" in view) curl -sf -H "$AUTH" "${API}/pulls/${PR}" ;; diff) curl -sf -H "$AUTH" "${API}/pulls/${PR}.diff" ;; files) curl -sf -H "$AUTH" "${API}/pulls/${PR}/files" ;; comments) curl -sf -H "$AUTH" "${API}/issues/${PR}/comments" ;; *) echo "Unknown command: $CMD" >&2; exit 1 ;; esac