#!/bin/bash # pr-review.sh - Review a pull request on GitHub or Gitea # Usage: pr-review.sh -n -a [-c ] set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/detect-platform.sh" # Parse arguments PR_NUMBER="" ACTION="" COMMENT="" while [[ $# -gt 0 ]]; do case $1 in -n|--number) PR_NUMBER="$2" shift 2 ;; -a|--action) ACTION="$2" shift 2 ;; -c|--comment) COMMENT="$2" shift 2 ;; -h|--help) echo "Usage: pr-review.sh -n -a [-c ]" echo "" echo "Options:" echo " -n, --number PR number (required)" echo " -a, --action Review action: approve, request-changes, comment (required)" echo " -c, --comment Review comment (required for request-changes)" echo " -h, --help Show this help" exit 0 ;; *) echo "Unknown option: $1" exit 1 ;; esac done if [[ -z "$PR_NUMBER" ]]; then echo "Error: PR number is required (-n)" exit 1 fi if [[ -z "$ACTION" ]]; then echo "Error: Action is required (-a): approve, request-changes, comment" exit 1 fi detect_platform if [[ "$PLATFORM" == "github" ]]; then case $ACTION in approve) gh pr review "$PR_NUMBER" --approve ${COMMENT:+--body "$COMMENT"} echo "Approved GitHub PR #$PR_NUMBER" ;; request-changes) if [[ -z "$COMMENT" ]]; then echo "Error: Comment required for request-changes" exit 1 fi gh pr review "$PR_NUMBER" --request-changes --body "$COMMENT" echo "Requested changes on GitHub PR #$PR_NUMBER" ;; comment) if [[ -z "$COMMENT" ]]; then echo "Error: Comment required" exit 1 fi gh pr review "$PR_NUMBER" --comment --body "$COMMENT" echo "Added review comment to GitHub PR #$PR_NUMBER" ;; *) echo "Error: Unknown action: $ACTION" exit 1 ;; esac elif [[ "$PLATFORM" == "gitea" ]]; then case $ACTION in approve) tea pr approve "$PR_NUMBER" ${COMMENT:+--comment "$COMMENT"} echo "Approved Gitea PR #$PR_NUMBER" ;; request-changes) if [[ -z "$COMMENT" ]]; then echo "Error: Comment required for request-changes" exit 1 fi tea pr reject "$PR_NUMBER" --comment "$COMMENT" echo "Requested changes on Gitea PR #$PR_NUMBER" ;; comment) if [[ -z "$COMMENT" ]]; then echo "Error: Comment required" exit 1 fi tea pr comment "$PR_NUMBER" "$COMMENT" echo "Added comment to Gitea PR #$PR_NUMBER" ;; *) echo "Error: Unknown action: $ACTION" exit 1 ;; esac else echo "Error: Unknown platform" exit 1 fi