51 lines
1.5 KiB
Bash
Executable File
51 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Check for required tools
|
|
for tool in jq curl; do
|
|
if ! command -v $tool &>/dev/null; then
|
|
echo "Error: Required tool '$tool' is not installed." >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
if [[ -z "$GITHUB_TOKEN" ]]; then
|
|
echo "Error: GITHUB_TOKEN is not set in your environment." >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Get authenticated user
|
|
AUTH_USER=$(curl -s -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/user | jq -r '.login')
|
|
if [[ -z "$AUTH_USER" || "$AUTH_USER" == "null" ]]; then
|
|
echo "Error: Could not determine authenticated user. Check your GITHUB_TOKEN." >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "User: $AUTH_USER"
|
|
echo "|"
|
|
echo "|-- [User Repos]"
|
|
|
|
USER_REPOS=$(curl -s -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/user/repos?per_page=100&type=owner" | jq -r '.[] | " |-- \(.name) (https://github.com/\(.full_name))"')
|
|
if [[ -n "$USER_REPOS" ]]; then
|
|
echo "$USER_REPOS"
|
|
else
|
|
echo " |-- (No user-owned repos found)"
|
|
fi
|
|
|
|
echo "|"
|
|
echo "|-- [Organizations]"
|
|
|
|
ORGS=$(curl -s -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/user/orgs" | jq -r '.[].login')
|
|
if [[ -z "$ORGS" ]]; then
|
|
echo " |-- (No organizations found)"
|
|
exit 0
|
|
fi
|
|
|
|
for ORG in $ORGS; do
|
|
echo " |-- $ORG"
|
|
ORG_REPOS=$(curl -s -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/orgs/$ORG/repos?per_page=100" | jq -r '.[] | " |-- \(.name) (https://github.com/\(.full_name))"')
|
|
if [[ -n "$ORG_REPOS" ]]; then
|
|
echo "$ORG_REPOS"
|
|
else
|
|
echo " |-- (No repos found)"
|
|
fi
|
|
done |