gitsniff


Namegitsniff JSON
Version 1.0.2 PyPI version JSON
download
home_pageNone
SummaryGitHub Email Scanner for OSINT - Extract emails from repositories and user events
upload_time2025-08-04 03:13:26
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords github osint email scanner reconnaissance git
VCS
bugtrack_url
requirements requests rich
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![License](https://img.shields.io/badge/license-MIT-green.svg)
![GitHub stars](https://img.shields.io/github/stars/Reginald-Gillespie/GitSniff.svg)

# 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
```bash
pip install gitsniff
```

## Usage
```bash
# Scan a user.
gitsniff -u <username>

# Scan a single repo.
gitsniff -r <repo>

# Show full help pages.
gitsniff -h
```

![GitSniff Scan Results](results.png)

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
```
$ gitsniff -h
usage: gitsniff [-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 -u username                     # Scan user's repositories and events
  gitsniff -u username --no-events         # Scan only repositories
  gitsniff -u username --no-repos          # Scan only public events
  gitsniff -r owner/repo                   # Scan specific repository
  gitsniff -u username -f --max-repos 5    # Include forks, limit to 5 repos
  gitsniff -u username --private -t TOKEN  # Include private repos with token
```


---
<br>

This project was inspired by similar, but more limited projects such as:
- [GONZOsint/gitrecon](https://github.com/GONZOsint/gitrecon) - scans event feeds for information.
- [chm0dx/gitSome](https://github.com/chm0dx/gitSome) - scans single repositories.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "gitsniff",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "WKoA <reginaldgillespie@protonmail.com>",
    "keywords": "github, osint, email, scanner, reconnaissance, git",
    "author": null,
    "author_email": "WKoA <reginaldgillespie@protonmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/eb/ed/eba9225165e03ce88e479d34bff4be01301083327e2805435494a1cfaa66/gitsniff-1.0.2.tar.gz",
    "platform": null,
    "description": "![License](https://img.shields.io/badge/license-MIT-green.svg)\n![GitHub stars](https://img.shields.io/github/stars/Reginald-Gillespie/GitSniff.svg)\n\n# GitSniff\nGitSniff is an MIT licensed OSINT tool designed to extract emails from metadata on GitHub accounts and repos. \nI built this because all the other similar tools were too limited or broke years ago.\n\n\n## Features\n- Find emails in github repo metadata.\n- Find emails from GitHub's user event feed\n- Outputs results as a table or JSON\n\n## Install\n```bash\npip install gitsniff\n```\n\n## Usage\n```bash\n# Scan a user.\ngitsniff -u <username>\n\n# Scan a single repo.\ngitsniff -r <repo>\n\n# Show full help pages.\ngitsniff -h\n```\n\n![GitSniff Scan Results](results.png)\n\nThe 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.\n\n\n### Full Help Page\n```\n$ gitsniff -h\nusage: gitsniff [-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]\n\nGitSniff - GitHub Email Scanner for OSINT\n\noptions:\n  -h, --help            Show this help message and exit\n\nTarget Selection (required):\n  -u, --user USERNAME   Scan GitHub user or organization\n  -r, --repo OWNER/REPO\n                        Scan single repository\n\nScanning Methods:\n  --no-repos            Disable repository cloning scan\n  --no-events           Disable public event API scan\n\nRepository Options:\n  -f, --forks           Include forked repositories\n  --private             Include private repositories (requires token)\n  --max-commits N       Max commits per repository (default: 1000)\n  --start-index N       Start repo scan from index N (default: 0)\n  --max-repos N         Maximum repositories to scan\n\nEvent Options:\n  --max-events N        Max public events to scan (default: 1000)\n\nConnection & Output:\n  -t, --token TOKEN     GitHub personal access token\n  --token-file FILE     Path to token file (default: pat.env)\n  -p, --proxy URL       HTTP/SOCKS proxy URL\n  -j, --json            Output in JSON format\n\nExamples:\n  gitsniff -u username                     # Scan user's repositories and events\n  gitsniff -u username --no-events         # Scan only repositories\n  gitsniff -u username --no-repos          # Scan only public events\n  gitsniff -r owner/repo                   # Scan specific repository\n  gitsniff -u username -f --max-repos 5    # Include forks, limit to 5 repos\n  gitsniff -u username --private -t TOKEN  # Include private repos with token\n```\n\n\n---\n<br>\n\nThis project was inspired by similar, but more limited projects such as:\n- [GONZOsint/gitrecon](https://github.com/GONZOsint/gitrecon) - scans event feeds for information.\n- [chm0dx/gitSome](https://github.com/chm0dx/gitSome) - scans single repositories.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "GitHub Email Scanner for OSINT - Extract emails from repositories and user events",
    "version": "1.0.2",
    "project_urls": {
        "Bug Tracker": "https://github.com/Reginald-Gillespie/GitSniff/issues",
        "Documentation": "https://github.com/Reginald-Gillespie/GitSniff#readme",
        "Homepage": "https://github.com/Reginald-Gillespie/GitSniff",
        "Repository": "https://github.com/Reginald-Gillespie/GitSniff"
    },
    "split_keywords": [
        "github",
        " osint",
        " email",
        " scanner",
        " reconnaissance",
        " git"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e0a7aa1d58d1f2b45bdf63b5b2d5e3857f084f057e424ab7ed5967070a1e532e",
                "md5": "7fc06e671224a28b2841bd58e1d56855",
                "sha256": "2be7bdcf55896b8616748a8265dc6c7143875e6b6753ac1beaf016784d835f16"
            },
            "downloads": -1,
            "filename": "gitsniff-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7fc06e671224a28b2841bd58e1d56855",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 10733,
            "upload_time": "2025-08-04T03:13:26",
            "upload_time_iso_8601": "2025-08-04T03:13:26.162223Z",
            "url": "https://files.pythonhosted.org/packages/e0/a7/aa1d58d1f2b45bdf63b5b2d5e3857f084f057e424ab7ed5967070a1e532e/gitsniff-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ebedeba9225165e03ce88e479d34bff4be01301083327e2805435494a1cfaa66",
                "md5": "7732073771b7cd35845e46e392358255",
                "sha256": "4af998a5481a64721f4ec16680dbe91e029ce677042853ac8a8e41ceb02e94bf"
            },
            "downloads": -1,
            "filename": "gitsniff-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "7732073771b7cd35845e46e392358255",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 12047,
            "upload_time": "2025-08-04T03:13:26",
            "upload_time_iso_8601": "2025-08-04T03:13:26.998387Z",
            "url": "https://files.pythonhosted.org/packages/eb/ed/eba9225165e03ce88e479d34bff4be01301083327e2805435494a1cfaa66/gitsniff-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-04 03:13:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Reginald-Gillespie",
    "github_project": "GitSniff",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "requests",
            "specs": []
        },
        {
            "name": "rich",
            "specs": []
        }
    ],
    "lcname": "gitsniff"
}
        
Elapsed time: 1.16992s