#!/usr/bin/env bash # # Get one issue by number. Output: JSON (default) or plain text summary (--summary). # Usage: ./get-issue.sh [--summary] # set -euo pipefail GITEA_ISSUES_DIR="${GITEA_ISSUES_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}" # shellcheck source=lib.sh source "${GITEA_ISSUES_DIR}/lib.sh" require_jq || exit 1 if [[ $# -lt 1 ]]; then log_err "Usage: $0 [--summary]" exit 1 fi ISSUE_NUM="$1" SUMMARY=false [[ "${2:-}" == "--summary" ]] && SUMMARY=true RESPONSE="$(gitea_api_get "/repos/${GITEA_REPO_OWNER}/${GITEA_REPO_NAME}/issues/${ISSUE_NUM}")" if ! echo "$RESPONSE" | jq -e . &>/dev/null; then log_err "API error or invalid JSON (issue ${ISSUE_NUM}): ${RESPONSE:0:200}" exit 1 fi if [[ "$SUMMARY" == true ]]; then echo "--- Issue #${ISSUE_NUM} ---" echo "Title: $(echo "$RESPONSE" | jq -r '.title')" echo "State: $(echo "$RESPONSE" | jq -r '.state')" echo "Labels: $(echo "$RESPONSE" | jq -r '[.labels[].name] | join(", ")')" echo "Body:" echo "$RESPONSE" | jq -r '.body // "(empty)"' echo "---" else echo "$RESPONSE" fi