bytelyst-devops-tools/delete_team_interactive.sh
2025-06-23 21:59:14 -07:00

61 lines
1.8 KiB
Bash

#!/bin/bash
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
YELLOW=$(tput setaf 3)
BLUE=$(tput setaf 4)
RESET=$(tput sgr0)
usage() {
echo "${BLUE}Usage:${RESET} $0 [--org <org>] [--team <team_slug>]"
echo " --org <org> GitHub organization/account (or will prompt)"
echo " --team <team_slug> Team slug (or will prompt)"
echo ""
echo "GITHUB_TOKEN must be set in your environment."
}
# Parse arguments
ORG=""
TEAM_SLUG=""
while [[ $# -gt 0 ]]; do
case $1 in
--org) ORG="$2"; shift 2;;
--team) TEAM_SLUG="$2"; shift 2;;
-h|--help) usage; exit 0;;
*) echo "${RED}Unknown argument: $1${RESET}"; usage; exit 1;;
esac
done
if [[ -z "$GITHUB_TOKEN" ]]; then
echo "${RED}❌ GITHUB_TOKEN is not set in your environment.${RESET}"
exit 1
fi
# Prompt for org if not provided
if [[ -z "$ORG" ]]; then
read -p "Enter GitHub organization/account: " ORG
fi
# Prompt for team slug if not provided
if [[ -z "$TEAM_SLUG" ]]; then
read -p "Enter team slug: " TEAM_SLUG
fi
read -p "Are you sure you want to delete team '$TEAM_SLUG' from org '$ORG'? (yes/no): " CONFIRM
if [[ "$CONFIRM" != "yes" ]]; then
echo "${YELLOW}Aborted by user.${RESET}"
exit 0
fi
echo "${BLUE}Attempting to delete team '$TEAM_SLUG' from organization '$ORG'...${RESET}"
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE \
-H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/orgs/$ORG/teams/$TEAM_SLUG")
if [[ "$RESPONSE" -eq 204 ]]; then
echo "${GREEN}✅ Successfully deleted team '$TEAM_SLUG' from '$ORG'.${RESET}"
elif [[ "$RESPONSE" -eq 404 ]]; then
echo "${YELLOW}⚠️ Team '$TEAM_SLUG' not found in organization '$ORG'.${RESET}"
else
echo "${RED}❌ Failed to delete team '$TEAM_SLUG' from '$ORG' (HTTP Status: $RESPONSE).${RESET}"
fi