#!/usr/bin/env bash # # List open issues for the configured Gitea repo. # Output: JSON array (default) or one line per issue "number|title|state" with --lines. # Usage: ./list-open-issues.sh [--lines] [--limit N] # 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 LINES=false LIMIT=50 while [[ $# -gt 0 ]]; do case "$1" in --lines) LINES=true; shift ;; --limit) LIMIT="$2"; shift 2 ;; *) log_err "Unknown option: $1"; exit 1 ;; esac done RESPONSE="$(gitea_api_get "/repos/${GITEA_REPO_OWNER}/${GITEA_REPO_NAME}/issues?state=open&page=1&limit=${LIMIT}")" if ! echo "$RESPONSE" | jq -e . &>/dev/null; then log_err "API error or invalid JSON: ${RESPONSE:0:200}" exit 1 fi if [[ "$LINES" == true ]]; then echo "$RESPONSE" | jq -r '.[] | "\(.number)|\(.title)|\(.state)"' else echo "$RESPONSE" fi