30 lines
884 B
Bash
Executable File
30 lines
884 B
Bash
Executable File
#!/bin/bash
|
|
|
|
ACCOUNTS_FILE="accounts.json"
|
|
OUTPUT_DIR="github_repo_scanners/user_repos"
|
|
|
|
# Check if accounts.json exists
|
|
if [ ! -f "$ACCOUNTS_FILE" ]; then
|
|
echo "Error: $ACCOUNTS_FILE not found."
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
# Loop through each account in accounts.json
|
|
jq -c '.[]' "$ACCOUNTS_FILE" | while read -r account; do
|
|
USER=$(echo "$account" | jq -r '.user')
|
|
TOKEN=$(echo "$account" | jq -r '.token')
|
|
|
|
echo "Fetching repos for account: $USER"
|
|
|
|
# Get all repos the user has access to (owner, collaborator, org member)
|
|
# and format the output as a JSON array.
|
|
curl -s -H "Authorization: token $TOKEN" "https://api.github.com/user/repos?type=all&per_page=100" | \
|
|
jq -r '[.[] | .full_name]' > "${OUTPUT_DIR}/${USER}.json"
|
|
|
|
echo "Successfully created ${OUTPUT_DIR}/${USER}.json"
|
|
done
|
|
|
|
echo "All user repository lists have been created in '${OUTPUT_DIR}'."
|