64 lines
2.2 KiB
Markdown
64 lines
2.2 KiB
Markdown
# GitHub Access Scripts
|
|
|
|
This directory contains scripts to check user access to GitHub repositories.
|
|
|
|
## Setup
|
|
|
|
1. **Create `accounts.json`:** Before running the scripts, you need to create an `accounts.json` file in the root of this project. This file should contain an array of GitHub accounts, each with a username and a personal access token (PAT).
|
|
|
|
*Example `accounts.json`:*
|
|
```json
|
|
[
|
|
{
|
|
"user": "your_github_username",
|
|
"token": "your_personal_access_token"
|
|
},
|
|
{
|
|
"user": "another_github_username",
|
|
"token": "another_personal_access_token"
|
|
}
|
|
]
|
|
```
|
|
|
|
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. If this file is ever exposed, your accounts could be compromised. For better security, consider using environment variables or a dedicated secrets management tool to handle these credentials.
|
|
|
|
## Usage
|
|
|
|
Make sure the scripts are executable before running them:
|
|
```bash
|
|
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:**
|
|
```bash
|
|
./github_access_scripts/check_repo_access.sh <GITHUB_USER_NAME> <REPO_FULL_NAME>
|
|
```
|
|
|
|
**Example:**
|
|
```bash
|
|
./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:**
|
|
```bash
|
|
./github_access_scripts/list_user_repos.sh <GITHUB_USER_NAME>
|
|
```
|
|
|
|
**Example:**
|
|
```bash
|
|
./github_access_scripts/list_user_repos.sh DARKenergem
|
|
```
|