#!/usr/bin/env bash # Inspect a PR for review. # # scripts/review.sh 7 diff # scripts/review.sh 7 --meta title, author, size, mergeability, CI state # scripts/review.sh --list open PRs set -euo pipefail cd "$(dirname "$0")/.." . scripts/lib/gitea.sh gitea_require_token || exit 1 if [ "${1:-}" = "--list" ]; then gitea_api GET "pulls?state=open&limit=30" \ | jq -r '.[] | "#\(.number) \(.title) [\(.head.ref)] by \(.user.login)"' exit 0 fi PR="${1:-}" [ -n "$PR" ] || { echo "usage: scripts/review.sh [--meta] | --list" >&2; exit 1; } if [ "${2:-}" = "--meta" ]; then gitea_api GET "pulls/$PR" | jq '{number, title, user: .user.login, head: .head.ref, base: .base.ref, draft, mergeable, additions, deletions, changed_files}' echo "--- CI ---" SHA="$(gitea_api GET "pulls/$PR" | jq -r '.head.sha')" gitea_api GET "commits/$SHA/status" \ | jq '{state, checks: [.statuses[]? | {context, state}]}' else gitea_api GET "pulls/$PR.diff" fi