Skip to main content

gitsint allows you to check everything from a github user.

Project description

🔍 Gitsint OSINT — Extract usernames, names, emails & secrets from GitHub

🕵️‍♂️ Feel free to open issues, submit PRs, or suggest modules! Contributions are very welcome.

📧 For any professional / personal inquiries or collaborations, reach out to me at: 📧 Contact: Zerostats via GitHub Discussions or 43150869+Zerostats@users.noreply.github.com

PyPI PyPI - Week PyPI - Downloads PyPI - License Try it on telegram

Telegram bot

For a quick demo, you can try the bot on telegram.

Here are the commands you can use with the bot:

Telegram bot commands

Atm the bot is down, will be fixed.

  • help - Display help message
  • register $TOKEN - Register your GitHub token
  • gitsint $USERNAME - Search for a GitHub user

⚠️ To prevent abuse, the bot is rate-limited to 1 request per minute.
⭐ You can use your own token and star this repo to bypass this limitation.

Here’s an updated version of your 📃 Summary section that includes the new --gitleaks capability and reflects the current state of your tool:


🚀 Why Use Gitsint?

  • 🕵️ Audit your own or others' public GitHub footprint
  • 🔐 Find exposed secrets in commits and repos
  • 🧩 Map email addresses to usernames
  • 📊 Use in OSINT, red teaming, or compliance workflows

📃 Summary

Efficiently extract usernames, names, emails, and even secrets from a GitHub account.

Gitsint is a GitHub OSINT tool that automates the process of extracting public and private data from GitHub profiles, repositories, and commits.

🔍 Features

  • 🧠 Retrieves data from profiles, repositories, and commit history
  • 🔒 Scans cloned repositories with Gitleaks to uncover secrets, tokens, emails, and credentials
  • 🦻 Does not alert the target (read-only, non-intrusive)
  • ⚙️ Supports CLI and library usage
  • 📦 Exports results as CSV or JSON
  • 🔁 Can clone and scan all user/org repositories (public/private/forked)
  • 🧪 Compatible with Python 3.10+
  • 💻 Cross-platform: works on Linux, macOS, and Windows

🛠️ Installation

🐍 With PyPI

pip3 install gitsint

🚀 With Github

git clone https://github.com/zerostats/gitsint.git
cd gitsint/
pip install -e .

🐳 With Docker

docker build . -t my-gitsint-image
docker run my-gitsint-image gitsint username

Quick Start

Gitsint can be run from the CLI and rapidly embedded within existing python applications.

Help

usage: gitsint [-h] [--size SIZE] [--token TOKEN [TOKEN ...]] [--fork] [--private]
               [--only-used] [--no-color] [--no-clear] [-C] [-J] [-T TIMEOUT]
               [--cli] [--clean] [--output OUTPUT] [--version] [--debug]
               [--check-update] [--gitleaks]
               USERNAME [USERNAME ...]

positional arguments:
  USERNAME              Target Username

options:
  -h, --help            Show this help message and exit
  --size SIZE           Set max repo size in KB (default: 50000)
  --token TOKEN [TOKEN ...]
                        API token (required for private or org access)
  --fork                Include forked repositories
  --private             Include private repositories
  --only-used           Display only the platforms used by the target
  --no-color            Disable colored terminal output
  --no-clear            Prevent terminal clearing before display
  -C, --csv             Save results to CSV
  -J, --json            Save results to JSON
  -T, --timeout TIMEOUT Set max timeout (default: 10 seconds)
  --cli                 Output raw JSON result to console
  --clean               Clean and reset previous result set
  --output OUTPUT       Set custom output folder (default: ./output)
  --version             Show version and exit
  --debug               Enable debug logging
  --check-update        Check for latest version on PyPI and auto-update
  --gitleaks            Run https://github.com/gitleaks/gitleaks to detect secrets in all cloned repositories

📚 CLI Example

# Basic public scan
gitsint exemple

# Scan including forks
gitsint exemple --fork

# Limit by max repo size (in KB)
gitsint exemple --size 5000

# Use GitHub token (required for --private)
gitsint exemple --token $TOKEN

# Scan own private repos
gitsint yourname --token $TOKEN --private

# Save output to a specific folder
gitsint exemple --output ./my-results

# Export to JSON + CSV
gitsint exemple --csv --json

# Run Gitleaks scan on all cloned repos
gitsint exemple --token $TOKEN --private --gitleaks

# Check for Gitsint updates
gitsint exemple --check-update

📈 Python Example

Gitsint can be imported as a module to run targeted scans in your own scripts:

import trio
import httpx

from gitsint.modules.profile.friends import friends


async def main():
    username = "exemple"
    out = []
    client = httpx.AsyncClient()

    await friends({'login':username}, client, out, [])

    print(out)

    await client.aclose()

trio.run(main)

Module Output

For each module, data is returned in a standard dictionary with the following json-equivalent format :

{
  "name": "module_name",
  "rateLimit": false,
  "exists": true,
  "data": "[{...}]",
  "others": null
}
  • name : The name of the module ( friends, profile, repository.. )
  • rateLitmit : Lets you know if you've been rate-limited.
  • exists : If an account exists for the email on that service.
  • data : The data returned by the module.
  • others : Any extra info.

Rate limited? Use a token.

🧪 Development

Want to contribute or test modules locally? Here's how to get started.

🔧 Poetry-based Setup (Recommended)

# Clone the repository
git clone https://github.com/zerostats/gitsint.git
cd gitsint

# Install poetry if you haven't
curl -sSL https://install.python-poetry.org | python3 -

# Install dependencies
poetry install

# Activate the virtual environment
poetry shell

# Run the CLI
poetry run gitsint username

🔍 Useful Dev Commands

poetry run black gitsint/         # Format code
poetry run isort gitsint/         # Sort imports

💡 Dev Notes

  • Modules live in gitsint/modules/ and are fully async
  • Use out.append({...}) to return module results
  • Optional flags (--token, --gitleaks, etc.) are available in the args object

TODO

[ ] - Add confidence

Thank you to :

📝 License

GNU General Public License v3.0

Built for educational purposes only.

Modules

Name Method Frequent Rate Limit
friends bs4
profile api
repository api

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

gitsint-0.3.6.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

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

gitsint-0.3.6-py3-none-any.whl (28.9 kB view details)

Uploaded Python 3

File details

Details for the file gitsint-0.3.6.tar.gz.

File metadata

  • Download URL: gitsint-0.3.6.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.10.17 Linux/6.11.0-1012-azure

File hashes

Hashes for gitsint-0.3.6.tar.gz
Algorithm Hash digest
SHA256 c9cfc593ee14965466643f512f3ea8e5eb7adf2faa2a90f61d81f4dc5b5d10a1
MD5 bf746c787f90eae990e5f50dcfde6df5
BLAKE2b-256 15128ca9d71b2deae030525fc5fc28b3c60f5d5ce204e66746c3ce85b20112e7

See more details on using hashes here.

File details

Details for the file gitsint-0.3.6-py3-none-any.whl.

File metadata

  • Download URL: gitsint-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 28.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.10.17 Linux/6.11.0-1012-azure

File hashes

Hashes for gitsint-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8b9b7e6dc6c09ae23c9e29f4774eb5e3d2c13af87cce7bc9bbd878e7aaf7bea2
MD5 bc646b83122633fa1447801809462818
BLAKE2b-256 3fa7333f5075e0dc47bfbd269f52e4fc795260af55d18f624cef3b252cc3ee53

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