fix: more robustness clean up but still broken
This commit is contained in:
parent
3917d5cce1
commit
e0e1dca5d6
@ -54,7 +54,7 @@ for REPO in $REPO_LIST; do
|
|||||||
for USER in "${NON_WHITELISTED_COLLABS[@]}"; do
|
for USER in "${NON_WHITELISTED_COLLABS[@]}"; do
|
||||||
read -p "Do you want to remove collaborator '$USER' from '$REPO'? (yes/no): " CONFIRM
|
read -p "Do you want to remove collaborator '$USER' from '$REPO'? (yes/no): " CONFIRM
|
||||||
if [[ "$CONFIRM" == "yes" ]]; then
|
if [[ "$CONFIRM" == "yes" ]]; then
|
||||||
# Attempt to remove collaborator from repository
|
# Attempt to remove as a direct repository collaborator
|
||||||
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE -H "Authorization: token $GITHUB_TOKEN" \
|
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE -H "Authorization: token $GITHUB_TOKEN" \
|
||||||
"https://api.github.com/repos/$REPO_OWNER/$REPO/collaborators/$USER")
|
"https://api.github.com/repos/$REPO_OWNER/$REPO/collaborators/$USER")
|
||||||
|
|
||||||
@ -63,11 +63,11 @@ for REPO in $REPO_LIST; do
|
|||||||
else
|
else
|
||||||
echo "⚠️ Failed to remove $USER from repository $REPO (HTTP Status: $RESPONSE). Checking if they are an org member..."
|
echo "⚠️ Failed to remove $USER from repository $REPO (HTTP Status: $RESPONSE). Checking if they are an org member..."
|
||||||
|
|
||||||
# If collaborator removal failed, check if they are an organization member
|
# Check if the user is an organization member
|
||||||
ORG_MEMBER_RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token $GITHUB_TOKEN" \
|
ORG_MEMBER_STATUS=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token $GITHUB_TOKEN" \
|
||||||
"https://api.github.com/orgs/$GITHUB_ORG/memberships/$USER")
|
"https://api.github.com/orgs/$GITHUB_ORG/memberships/$USER")
|
||||||
|
|
||||||
if [[ "$ORG_MEMBER_RESPONSE" -eq 200 ]]; then
|
if [[ "$ORG_MEMBER_STATUS" -eq 200 ]]; then
|
||||||
read -p "❗ $USER is an organization member. Remove them from org '$GITHUB_ORG'? (yes/no): " CONFIRM_ORG
|
read -p "❗ $USER is an organization member. Remove them from org '$GITHUB_ORG'? (yes/no): " CONFIRM_ORG
|
||||||
if [[ "$CONFIRM_ORG" == "yes" ]]; then
|
if [[ "$CONFIRM_ORG" == "yes" ]]; then
|
||||||
ORG_REMOVE_RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE -H "Authorization: token $GITHUB_TOKEN" \
|
ORG_REMOVE_RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE -H "Authorization: token $GITHUB_TOKEN" \
|
||||||
@ -76,13 +76,27 @@ for REPO in $REPO_LIST; do
|
|||||||
if [[ "$ORG_REMOVE_RESPONSE" -eq 204 ]]; then
|
if [[ "$ORG_REMOVE_RESPONSE" -eq 204 ]]; then
|
||||||
echo "✅ Successfully removed $USER from organization '$GITHUB_ORG'."
|
echo "✅ Successfully removed $USER from organization '$GITHUB_ORG'."
|
||||||
else
|
else
|
||||||
echo "❌ Failed to remove $USER from the organization (HTTP Status: $ORG_REMOVE_RESPONSE)."
|
echo "❌ Failed to remove $USER from the organization (HTTP Status: $ORG_REMOVE_RESPONSE). Checking if they are in a team..."
|
||||||
|
|
||||||
|
# If removal from org fails, check if the user is in a team
|
||||||
|
TEAMS=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
|
||||||
|
"https://api.github.com/orgs/$GITHUB_ORG/teams" | jq -r '.[].slug')
|
||||||
|
|
||||||
|
for TEAM in $TEAMS; do
|
||||||
|
TEAM_REMOVE_RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE -H "Authorization: token $GITHUB_TOKEN" \
|
||||||
|
"https://api.github.com/orgs/$GITHUB_ORG/teams/$TEAM/memberships/$USER")
|
||||||
|
|
||||||
|
if [[ "$TEAM_REMOVE_RESPONSE" -eq 204 ]]; then
|
||||||
|
echo "✅ Successfully removed $USER from team '$TEAM'."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "🚫 Skipped removal of $USER from organization."
|
echo "🚫 Skipped removal of $USER from organization."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "❌ $USER is neither a direct collaborator nor an organization member. No action taken."
|
echo "❌ $USER is neither a direct collaborator, nor an organization member, nor a team member. No action taken."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user