#!/bin/bash # issue-list.sh - List issues on Gitea or GitHub # Usage: issue-list.sh [-r owner/repo] [-s state] [-l label] [-m milestone] [-a assignee] set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/detect-platform.sh" # Default values STATE="open" LABEL="" MILESTONE="" ASSIGNEE="" LIMIT=100 REPO_OVERRIDE="" usage() { cat <&2 usage ;; esac done if [[ -n "$REPO_OVERRIDE" ]]; then REPO_INFO="$REPO_OVERRIDE" 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 issue list --repo "$REPO_INFO" --state "$STATE" --limit "$LIMIT") [[ -n "$LABEL" ]] && CMD+=(--label "$LABEL") [[ -n "$MILESTONE" ]] && CMD+=(--milestone "$MILESTONE") [[ -n "$ASSIGNEE" ]] && CMD+=(--assignee "$ASSIGNEE") "${CMD[@]}" ;; gitea) CMD=(tea issues list --repo "$REPO_INFO" --login "${GITEA_LOGIN:-mosaicstack}" --state "$STATE" --limit "$LIMIT") [[ -n "$LABEL" ]] && CMD+=(--labels "$LABEL") [[ -n "$MILESTONE" ]] && CMD+=(--milestones "$MILESTONE") # Note: tea may not support assignee filter directly in all versions. [[ -n "$ASSIGNEE" ]] && echo "Note: Assignee filtering may require manual review for Gitea" >&2 "${CMD[@]}" ;; *) echo "Error: Could not detect git platform" >&2 exit 1 ;; esac