fetching-github-user-data

majiayu000's avatarfrom majiayu000

Fetch comprehensive GitHub user data including profile, repositories, contributions, pull requests, issues, and statistics. Use when the user asks to fetch, download, or analyze GitHub user data.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 5, 2026

When & Why to Use This Skill

This Claude skill automates the extraction of comprehensive GitHub user data, including profiles, repository details, contribution history, and language statistics. It streamlines the process of analyzing developer activity and technical expertise by providing structured, ready-to-use data for recruitment, research, or personal archiving, significantly reducing the manual effort required to navigate the GitHub API.

Use Cases

  • Technical Recruitment & Vetting: Evaluate candidate expertise by analyzing their programming language distribution, repository quality, and open-source contribution patterns.
  • Open Source Research: Study developer behavior, track emerging programming trends, and analyze community influence across the GitHub ecosystem for market or academic purposes.
  • Personal Portfolio Archiving: Automatically back up personal GitHub profile data, including gists and starred repositories, to track long-term progress and generate activity reports.
  • Engineering Benchmarking: Compare contribution metrics and activity levels across different developers or teams to gain insights into project engagement and collaboration styles.
namefetching-github-user-data
descriptionFetch comprehensive GitHub user data including profile, repositories, contributions, pull requests, issues, and statistics. Use when the user asks to fetch, download, or analyze GitHub user data.

Fetching GitHub User Data

Fetch comprehensive data about any GitHub user through the GitHub API, including profile information, repositories, contributions, social connections, and detailed statistics.

Quick start

Basic usage (without token)

Fetch public data for any GitHub user:

python scripts/fetch.py \
  --username "torvalds" \
  --output "./github_data"

Use a GitHub Personal Access Token to access more data and higher rate limits:

python scripts/fetch.py \
  --username "torvalds" \
  --token "ghp_YOUR_TOKEN_HERE" \
  --output "./github_data"

Or use environment variable:

export GITHUB_TOKEN="ghp_YOUR_TOKEN_HERE"
python scripts/fetch.py --username "torvalds"

What data is fetched

Basic data

  • ✅ User profile (name, bio, location, email, etc.)
  • ✅ All public repositories with details
  • ✅ Gists
  • ✅ Starred repositories

Social data

  • ✅ Followers
  • ✅ Following
  • ✅ Organizations
  • ✅ Subscribed repositories

Activity data

  • ✅ Public events (last 30 days)
  • ✅ Pull requests created
  • ✅ Issues created

Statistics (computed)

  • ✅ Programming language distribution
  • ✅ Repository statistics (total stars, forks)
  • ✅ Contribution calendar (requires token)

Output structure

Data is organized in a clean directory structure:

github_data/
└── {username}/
    ├── profile.json                    # User basic info
    ├── repositories/
    │   ├── list.json                   # Repository summary
    │   └── details/{repo}.json         # Each repository details
    ├── gists/
    │   ├── list.json
    │   └── details/{gist_id}.json
    ├── starred/repositories.json
    ├── social/
    │   ├── followers.json
    │   └── following.json
    ├── organizations.json
    ├── events/public_events.json
    ├── subscriptions.json
    ├── contributions/calendar.json     # Requires token
    ├── pull_requests/created.json
    ├── issues/created.json
    ├── statistics/
    │   ├── languages.json              # Language distribution
    │   └── repositories.json           # Repo stats
    └── metadata.json                   # Fetch metadata

Configuration

Getting a GitHub Personal Access Token

  1. Go to GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
  2. Click "Generate new token (classic)"
  3. Select scopes: read:user, repo (for private repos if needed)
  4. Copy the token and use it with --token or set as GITHUB_TOKEN environment variable

Why use a token?

  • Higher rate limits: 5,000 requests/hour vs 60 without token
  • Contribution calendar: Only available with authentication
  • More complete data: Access to some endpoints requires authentication

Advanced usage

Specify custom output directory

python scripts/fetch.py \
  --username "octocat" \
  --output "./my_custom_folder"

Using GitHub CLI token

If you have GitHub CLI (gh) installed and authenticated:

# The script will automatically detect gh CLI authentication
python scripts/fetch.py --username "username"

Use cases

Evaluating engineer capabilities

The fetched data provides comprehensive insights for evaluating:

  • Technical breadth: Programming language distribution
  • Project experience: Repository count and quality
  • Open source contribution: PRs, issues, starred repos
  • Community influence: Followers, stars, forks
  • Coding activity: Contribution calendar (with token)
  • Collaboration: PRs and issues created

Research and analysis

  • Analyze GitHub user behavior patterns
  • Study programming language trends
  • Track developer activity over time
  • Build developer profiles for recruitment

Personal archival

  • Backup your GitHub profile data
  • Track your own progress over time
  • Generate portfolio data

Examples

Example 1: Fetch data for Linux creator

python scripts/fetch.py \
  --username "torvalds" \
  --output "./linux_creator_data"

Example 2: Analyze your own data with token

export GITHUB_TOKEN="ghp_YOUR_TOKEN"
python scripts/fetch.py \
  --username "yourusername" \
  --output "./my_github_data"

Example 3: Batch fetch multiple users

for user in "torvalds" "gvanrossum" "dhh"; do
  python scripts/fetch.py --username "$user" --output "./github_users"
done

Error handling

The script handles common errors gracefully:

  • Rate limit exceeded: Shows clear error message
  • User not found: Reports invalid username
  • Network errors: Retries with exponential backoff
  • Missing token: Continues with public data only
  • API errors: Logs errors but continues fetching other data

Statistics summary

After fetching, the script displays:

  • Total API requests made
  • Data items fetched for each category
  • Total stars and forks
  • Programming languages detected
  • Any errors encountered

Performance

  • Typical fetch time: 30-120 seconds (depending on user data volume)
  • API requests: 15-50 requests (varies by user)
  • Storage: 1-50 MB per user (depending on repo count)

Limitations

  • Public events limited to last 300 events (30 days)
  • Contribution calendar requires Personal Access Token
  • Repository statistics limited for repos with 10,000+ commits
  • Search results limited to 100 items per query

Troubleshooting

"Rate limit exceeded"

Solution: Use a Personal Access Token for higher limits

"GraphQL request failed"

Solution: Ensure you have a valid Personal Access Token for contribution calendar

"No data fetched"

Solution: Check username spelling and network connection

See also