Skip to main content

Powerful Python tool for in-depth GitHub analysis, designed for multiple platforms and still in development.

Project description

EXC-Analyzer

EXC-Analyzer is a professional command-line tool for advanced GitHub repository and user analysis, security auditing, and secret scanning. Designed for penetration testers, security researchers, and open-source maintainers, EXC-Analyzer provides deep insights into repository health, contributor activity, and potential security risks.


Table of Contents


Features

  • Repository Analysis: Extracts repository metadata, statistics, language usage, and contributor breakdown.
  • User Analysis: Profiles GitHub users, including activity, top repositories, and contribution patterns.
  • Secret Scanning: Detects API keys, tokens, and sensitive data in recent commits and files.
  • File History: Displays granular commit history for any file in a repository.
  • Contributor Impact: Quantifies individual contributor impact based on code changes.
  • Security Scoring: Evaluates repository security posture (branch protection, code scanning, etc.).
  • Workflow & Content Auditing: Audits repository documentation, policies, and CI/CD workflows for best practices.
  • API Key Security: Stores GitHub tokens securely with strict file permissions.

Installation

kali-linux

On Kali Linux / Debian / Ubuntu

Recommended (Global) Installation: Install globally using pipx:

python3 -m pip install pipx
python3 -m pipx ensurepath
pipx install exc-analyzer

Alternative (Local/Virtual Environment) Installation:

If you prefer to install only in your current directory (not globally), use a Python virtual environment:

python3 -m venv env
source env/bin/activate
pip install exc-analyzer

windows-10

On Windows

pip install exc-analyzer

mac-logo

On macOS

brew install python3
pip3 install exc-analyzer

icons8-pypi-48

To browse the PYPI page and access detailed information:

PyPI Project Page


Quick Start

  1. Obtain a GitHub Personal Access Token (instructions).

    Note: To avoid issues during analysis, ensure you grant all available permissions to the token. Insufficient permissions may cause errors or incomplete results.

  2. Initialize your API key:
    exc key
    
  3. Run your first analysis:
    exc analysis owner/repo
    

Command Overview

Command Purpose
key Manage GitHub API token
analysis <owner/repo> Analyze repository statistics and health
user-a <username> Analyze a GitHub user's profile
scan-secrets <owner/repo> Scan recent commits for secrets
file-history <owner/repo> <file> Show commit history for a file
dork-scan <query> Search public code for sensitive patterns
advanced-secrets <owner/repo> Deep scan for secrets in files and commits
security-score <owner/repo> Evaluate repository security posture
commit-anomaly <owner/repo> Detect suspicious commit/PR activity
user-anomaly <username> Detect unusual user activity
content-audit <owner/repo> Audit repo docs, policies, and content
actions-audit <owner/repo> Audit GitHub Actions/CI workflows

Detailed Command Reference

1. API Key Management

  • Set or update your GitHub API key:
    exc key
    
  • Reset (delete) your API key:
    exc key --reset
    
  • Storage:
    • Linux: ~/.exc/apikey.sec (permissions: 0600)
    • Windows: %USERPROFILE%\.exc\apikey.sec

2. Repository Analysis

  • Analyze repository health, stats, and contributors:
    exc analysis owner/repo
    
    • Shows description, stars, forks, languages, top committers, contributors, issues, and PRs.

3. User Analysis

  • Profile a GitHub user:
    exc user-a username
    
    • Displays user info, activity, and top repositories.

4. Secret Scanning

  • Scan recent commits for secrets:
    exc scan-secrets owner/repo -l 20
    
    • Detects AWS keys, GitHub tokens, SSH keys, and generic API keys in the last N commits.
  • Deep scan for secrets in files and commits:
    exc advanced-secrets owner/repo -l 30
    
    • Scans all files and recent commits for a wide range of secret patterns.

5. File History

  • Show commit history for a specific file:
    exc file-history owner/repo path/to/file.py
    
    • Lists commit messages, authors, dates, and links for the file.

6. Dork Scan

  • Search public GitHub code for sensitive patterns:
    exc dork-scan "dork query"
    
    • Supports advanced queries, file extension and filename filters.

7. Contributor Impact

  • Estimate contributor impact:
    exc contrib-impact owner/repo
    
    • Ranks contributors by code additions/deletions.

8. Security Scoring

  • Evaluate repository security posture:
    exc security-score owner/repo
    
    • Checks for branch protection, code scanning, dependabot, security.md, and more.

9. Commit/PR Anomaly Detection

  • Detect suspicious commit/PR activity:
    exc commit-anomaly owner/repo
    
    • Flags risky commit messages and patterns.

10. User Anomaly Detection

  • Detect unusual user activity:
    exc user-anomaly username
    
    • Highlights abnormal event timing or frequency.

11. Content & Workflow Auditing

  • Audit repository documentation and policies:
    exc content-audit owner/repo
    
    • Checks for LICENSE, SECURITY.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, and README quality.
  • Audit GitHub Actions/CI workflows:
    exc actions-audit owner/repo
    
    • Reviews workflow files for security risks and best practices.

API Key Management

  • Your GitHub token is required for all API operations.
  • The token is stored securely and never transmitted except to GitHub.
  • If you lose or wish to rotate your token, use exc key --reset.

Troubleshooting

  • API Rate Limits: If you hit GitHub API rate limits, wait and retry later. Use a personal access token with sufficient permissions.
  • Missing Output or Slow Results: Large repositories or high API usage may cause delays. Try reducing the number of results or commit range.
  • Color Output Issues: If you do not see colored output, ensure your terminal supports ANSI colors (e.g., use modern terminals on Windows or Linux).
  • Permission Errors: Ensure you have write access to your home directory for API key storage.

Disclaimer

This tool is intended for professional security auditing, research, and authorized analysis only. Unauthorized use on systems or repositories you do not own or have explicit permission to analyze is strictly prohibited. The author assumes no liability for misuse or damage caused by this tool.


License

See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exc_analyzer-1.1.8.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exc_analyzer-1.1.8-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file exc_analyzer-1.1.8.tar.gz.

File metadata

  • Download URL: exc_analyzer-1.1.8.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for exc_analyzer-1.1.8.tar.gz
Algorithm Hash digest
SHA256 b00be04adc23d2a84df931729fec02fb0613df475ac141c88bcbfaff65b2e80b
MD5 3bfdfc5a5671e8f3ff184be36364d303
BLAKE2b-256 02a7579673b9167334b1d9a43f6f5a566adcd33b42d237dbc1f58c0c24aa8600

See more details on using hashes here.

File details

Details for the file exc_analyzer-1.1.8-py3-none-any.whl.

File metadata

  • Download URL: exc_analyzer-1.1.8-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for exc_analyzer-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 56875b95734c6ee56a165c643247d4d1c61b18708e11b576a7603196717fde9c
MD5 66c45011d45d100cb5dce96e6dfc3a90
BLAKE2b-256 f723f3a2b0a4c0c27e287221f7d9b9d56c726811ada8f910d82a730cd307329f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page