#!/bin/bash # pr-list.sh - List pull requests on Gitea or GitHub # Usage: pr-list.sh [-r owner/repo] [-s state] [-l label] [-a author] set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/detect-platform.sh" # Default values STATE="open" LABEL="" AUTHOR="" LIMIT=100 REPO_OVERRIDE="" usage() { cat <&2 usage ;; esac done if [[ -n "$REPO_OVERRIDE" ]]; then REPO_INFO="$REPO_OVERRIDE" # Explicit --repo is primarily for Gitea wrappers; if a git origin is present, # still honor GitHub detection for cross-platform behavior. PLATFORM=$(detect_platform 2>/dev/null || echo gitea) else PLATFORM=$(detect_platform) REPO_INFO=$(get_repo_info) fi if [[ -z "$REPO_INFO" || "$REPO_INFO" == error:* ]]; then echo "Error: Could not determine repository from git origin. Run from a repo or pass --repo." >&2 exit 1 fi case "$PLATFORM" in github) CMD=(gh pr list --repo "$REPO_INFO" --state "$STATE" --limit "$LIMIT") [[ -n "$LABEL" ]] && CMD+=(--label "$LABEL") [[ -n "$AUTHOR" ]] && CMD+=(--author "$AUTHOR") "${CMD[@]}" ;; gitea) CMD=(tea pr list --repo "$REPO_INFO" --state "$STATE" --limit "$LIMIT") # tea filtering may be limited if [[ -n "$LABEL" ]]; then echo "Note: Label filtering may require manual review for Gitea" >&2 fi if [[ -n "$AUTHOR" ]]; then echo "Note: Author filtering may require manual review for Gitea" >&2 fi "${CMD[@]}" ;; *) echo "Error: Could not detect git platform" >&2 exit 1 ;; esac