Skip to main content

GitHub Email Scanner for OSINT - Extract emails from repositories and user events

Project description

License GitHub stars

GitSniff

GitSniff is an MIT licensed OSINT tool designed to extract emails from metadata on GitHub accounts and repos. I built this because all the other similar tools were too limited or broke years ago.

Features

  • Find emails in github repo metadata.
  • Find emails from GitHub's user event feed
  • Outputs results as a table or JSON

Install

git clone https://github.com/Reginald-Gillespie/GitSniff
cd GitSniff
pip install -r requirements.txt

Usage

# Scan a user.
python GitSniff.py -u <username>

# Scan a single repo.
python GitSniff.py -r <repo>

# Show full help pages.
python GitSniff.py -h

GitSniff Scan Results

The email, reginaldgillespie@protonmail.com, is my email. The rest are the emails of other users found in my repositories because they contributed to them using their real emails.

Full Help Page

$ python .\GitSniff.py -h
usage: GitSniff.py [-h] (-u USERNAME | -r OWNER/REPO) [--no-repos] [--no-events] [-f] [--private] [--max-commits N] [--start-index N] [--max-repos N] [--max-events N] [-t TOKEN] [--token-file FILE] [-p URL] [-j]

GitSniff - GitHub Email Scanner for OSINT

options:
  -h, --help            Show this help message and exit

Target Selection (required):
  -u, --user USERNAME   Scan GitHub user or organization
  -r, --repo OWNER/REPO
                        Scan single repository

Scanning Methods:
  --no-repos            Disable repository cloning scan
  --no-events           Disable public event API scan

Repository Options:
  -f, --forks           Include forked repositories
  --private             Include private repositories (requires token)
  --max-commits N       Max commits per repository (default: 1000)
  --start-index N       Start repo scan from index N (default: 0)
  --max-repos N         Maximum repositories to scan

Event Options:
  --max-events N        Max public events to scan (default: 1000)

Connection & Output:
  -t, --token TOKEN     GitHub personal access token
  --token-file FILE     Path to token file (default: pat.env)
  -p, --proxy URL       HTTP/SOCKS proxy URL
  -j, --json            Output in JSON format

Examples:
  GitSniff.py -u username                     # Scan user's repositories and events
  GitSniff.py -u username --no-events         # Scan only repositories
  GitSniff.py -u username --no-repos          # Scan only public events
  GitSniff.py -r owner/repo                   # Scan specific repository
  GitSniff.py -u username -f --max-repos 5    # Include forks, limit to 5 repos
  GitSniff.py -u username --private -t TOKEN  # Include private repos with token


This project was inspired by similar, but more limited projects such as:

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

gitsniff-1.0.1.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

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

gitsniff-1.0.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file gitsniff-1.0.1.tar.gz.

File metadata

  • Download URL: gitsniff-1.0.1.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for gitsniff-1.0.1.tar.gz
Algorithm Hash digest
SHA256 14ef15b3b2f58a1734786f8140f28045fb3c9fd37f0a95b2f9ada38ddc0f2813
MD5 2976cea014219c2b08e853220afc64d1
BLAKE2b-256 8b33dbcbfe3eacc80af82ddac39b508885f08397d890f7caee0c8429e05c5f64

See more details on using hashes here.

File details

Details for the file gitsniff-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: gitsniff-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for gitsniff-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 927e34e090aed6386f56e4d4efd387c5a29e1f9af2b8cd700fc0f63230143db5
MD5 b067dc0ab6ba8a152311322f1ede2d2c
BLAKE2b-256 b3c5f9aaa3e26b4617680f7fb08707394c22c8fd53e167ee5736bf5e79630c8b

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