mirror of
https://github.com/anthropics/claude-code.git
synced 2026-04-16 07:42:48 +00:00
Updates edit-issue-labels.sh and comment-on-duplicates.sh to read the
issue number from GITHUB_EVENT_PATH (the workflow event payload) instead
of accepting it as a CLI argument. Simplifies the call signature and
keeps the scripts aligned with the triggering issue.
Also updates the /triage-issue and /dedupe command docs to match.
🏠 Remote-Dev: homespace
85 lines
1.9 KiB
Bash
Executable File
85 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Edits labels on a GitHub issue.
|
|
# Usage: ./edit-issue-labels.sh --add-label bug --add-label needs-triage --remove-label untriaged
|
|
#
|
|
# The issue number is read from the workflow event payload.
|
|
#
|
|
|
|
set -euo pipefail
|
|
|
|
# Read from event payload so the issue number is bound to the triggering event.
|
|
# Falls back to workflow_dispatch inputs for manual runs.
|
|
ISSUE=$(jq -r '.issue.number // .inputs.issue_number // empty' "${GITHUB_EVENT_PATH:?GITHUB_EVENT_PATH not set}")
|
|
if ! [[ "$ISSUE" =~ ^[0-9]+$ ]]; then
|
|
echo "Error: no issue number in event payload" >&2
|
|
exit 1
|
|
fi
|
|
|
|
ADD_LABELS=()
|
|
REMOVE_LABELS=()
|
|
|
|
# Parse arguments
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--add-label)
|
|
ADD_LABELS+=("$2")
|
|
shift 2
|
|
;;
|
|
--remove-label)
|
|
REMOVE_LABELS+=("$2")
|
|
shift 2
|
|
;;
|
|
*)
|
|
echo "Error: unknown argument (only --add-label and --remove-label are accepted)" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ ${#ADD_LABELS[@]} -eq 0 && ${#REMOVE_LABELS[@]} -eq 0 ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
# Fetch valid labels from the repo
|
|
VALID_LABELS=$(gh label list --limit 500 --json name --jq '.[].name')
|
|
|
|
# Filter to only labels that exist in the repo
|
|
FILTERED_ADD=()
|
|
for label in "${ADD_LABELS[@]}"; do
|
|
if echo "$VALID_LABELS" | grep -qxF "$label"; then
|
|
FILTERED_ADD+=("$label")
|
|
fi
|
|
done
|
|
|
|
FILTERED_REMOVE=()
|
|
for label in "${REMOVE_LABELS[@]}"; do
|
|
if echo "$VALID_LABELS" | grep -qxF "$label"; then
|
|
FILTERED_REMOVE+=("$label")
|
|
fi
|
|
done
|
|
|
|
if [[ ${#FILTERED_ADD[@]} -eq 0 && ${#FILTERED_REMOVE[@]} -eq 0 ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Build gh command arguments
|
|
GH_ARGS=("issue" "edit" "$ISSUE")
|
|
|
|
for label in "${FILTERED_ADD[@]}"; do
|
|
GH_ARGS+=("--add-label" "$label")
|
|
done
|
|
|
|
for label in "${FILTERED_REMOVE[@]}"; do
|
|
GH_ARGS+=("--remove-label" "$label")
|
|
done
|
|
|
|
gh "${GH_ARGS[@]}"
|
|
|
|
if [[ ${#FILTERED_ADD[@]} -gt 0 ]]; then
|
|
echo "Added: ${FILTERED_ADD[*]}"
|
|
fi
|
|
if [[ ${#FILTERED_REMOVE[@]} -gt 0 ]]; then
|
|
echo "Removed: ${FILTERED_REMOVE[*]}"
|
|
fi
|