#!/bin/bash # issue-edit.sh - Edit an issue on GitHub or Gitea # Usage: issue-edit.sh -i [-t ] [-b <body>] [-l <labels>] [-m <milestone>] set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/detect-platform.sh" # Parse arguments ISSUE_NUMBER="" TITLE="" BODY="" LABELS="" MILESTONE="" while [[ $# -gt 0 ]]; do case $1 in -i|--issue) ISSUE_NUMBER="$2" shift 2 ;; -t|--title) TITLE="$2" shift 2 ;; -b|--body) BODY="$2" shift 2 ;; -l|--labels) LABELS="$2" shift 2 ;; -m|--milestone) MILESTONE="$2" shift 2 ;; -h|--help) echo "Usage: issue-edit.sh -i <issue_number> [-t <title>] [-b <body>] [-l <labels>] [-m <milestone>]" echo "" echo "Options:" echo " -i, --issue Issue number (required)" echo " -t, --title New title" echo " -b, --body New body/description" echo " -l, --labels Labels (comma-separated, replaces existing)" echo " -m, --milestone Milestone name" echo " -h, --help Show this help" exit 0 ;; *) echo "Unknown option: $1" exit 1 ;; esac done if [[ -z "$ISSUE_NUMBER" ]]; then echo "Error: Issue number is required (-i)" exit 1 fi detect_platform if [[ "$PLATFORM" == "github" ]]; then CMD="gh issue edit $ISSUE_NUMBER" [[ -n "$TITLE" ]] && CMD="$CMD --title \"$TITLE\"" [[ -n "$BODY" ]] && CMD="$CMD --body \"$BODY\"" [[ -n "$LABELS" ]] && CMD="$CMD --add-label \"$LABELS\"" [[ -n "$MILESTONE" ]] && CMD="$CMD --milestone \"$MILESTONE\"" eval $CMD echo "Updated GitHub issue #$ISSUE_NUMBER" elif [[ "$PLATFORM" == "gitea" ]]; then CMD="tea issue edit $ISSUE_NUMBER" [[ -n "$TITLE" ]] && CMD="$CMD --title \"$TITLE\"" [[ -n "$BODY" ]] && CMD="$CMD --description \"$BODY\"" [[ -n "$LABELS" ]] && CMD="$CMD --add-labels \"$LABELS\"" [[ -n "$MILESTONE" ]] && CMD="$CMD --milestone \"$MILESTONE\"" eval $CMD echo "Updated Gitea issue #$ISSUE_NUMBER" else echo "Error: Unknown platform" exit 1 fi