bytelyst-devops-tools/github_access_scripts/README.md
2026-05-05 01:18:10 +00:00

3.5 KiB

GitHub Access Scripts

This directory contains scripts to check user access to GitHub repositories.

Setup

  1. Create accounts.json: Before running the scripts, create a local accounts.json file in the repo root from the provided template:

    cp accounts.example.json accounts.json
    

    Then fill it with the GitHub usernames and personal access tokens you want to use for scanning.

  2. Permissions: The personal access tokens require the repo scope to read repository information and collaborator lists.

Security Warning: Storing personal access tokens in a plaintext file is a security risk. Keep accounts.json local only and never commit it. The repo now provides accounts.example.json as the shareable template.

Usage

Make sure the scripts are executable before running them:

chmod +x github_access_scripts/check_repo_access.sh
chmod +x github_access_scripts/list_user_repos.sh

check_repo_access.sh

This script checks if a specific user has collaborator access to a single, specified repository.

Command:

./github_access_scripts/check_repo_access.sh <GITHUB_USER_NAME> <REPO_FULL_NAME>

Example:

./github_access_scripts/check_repo_access.sh DARKenergem saravanakumardb/vv-note-mcp-agent-intern-naman

list_user_repos.sh

This script attempts to list all repositories a given user has access to, by scanning through the repositories of the accounts listed in accounts.json.

Note: This script has limitations. It only checks for access on repositories that the authenticated users (from accounts.json) are members of. It may not find all repositories a user has access to if they have access to repos outside of those organizations/users. For checking access to a specific repository, check_repo_access.sh is more reliable.

Command:

./github_access_scripts/list_user_repos.sh <GITHUB_USER_NAME>

GitHub Repository Scanners

This directory (github_repo_scanners) contains scripts for more advanced repository scanning and data extraction.

create_user_repo_lists.sh

This script scans all accounts in accounts.json and creates a JSON file for each user containing a list of repositories they have access to.

Output files are written under github_repo_scanners/user_repos/.

Command:

./github_repo_scanners/create_user_repo_lists.sh <path_to_accounts.json>

Example:

./github_repo_scanners/create_user_repo_lists.sh accounts.json

create_contributor_repo_lists.sh

This script scans all accounts in accounts.json, finds all contributors to their repositories, and creates a JSON file for each contributor listing the repositories they have contributed to.

The wrapper run_contributor_json_creation.sh writes those files under github_repo_scanners/contributor_repos/.

Command:

./github_repo_scanners/create_contributor_repo_lists.sh <path_to_accounts.json>

Example:

./github_repo_scanners/create_contributor_repo_lists.sh accounts.json

Note on File Visibility: In some environments, tools like list_directory or read_file within certain CLI agents might experience caching or synchronization issues, leading to files not appearing immediately after creation, even if the underlying shell commands confirm their existence. If you encounter such issues, direct shell commands (ls, cat) might provide more accurate results.

Example:

./github_access_scripts/list_user_repos.sh DARKenergem