All Projects β†’ giovanifss β†’ Gitmails

giovanifss / Gitmails

Licence: mit
An information gathering tool to collect git commit emails in version control host services

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Gitmails

gitcolombo
🧬 Extract and analyze contributors info from git repos
Stars: ✭ 55 (-61.27%)
Mutual labels:  gitlab, bitbucket, emails
Eyes
πŸ‘€ πŸ–₯️ Golang rewrite of eyes.sh. Let's you perform domain/IP address information gathering. Wasn't it esr who said "With enough eyeballs, all your IP info are belong to us?" πŸ” πŸ•΅οΈ
Stars: ✭ 38 (-73.24%)
Mutual labels:  pentest-tool, information-gathering
Trackdown
TrackDown - Issue Tracking with plain Markdown. If you are missing the "git clone" for your tickets from github.com or bitbucket.org, then this is for you. A lightweight Ticketing System for distributed and unconnected small Teams.
Stars: ✭ 10 (-92.96%)
Mutual labels:  gitlab, bitbucket
Notes
Some public notes
Stars: ✭ 1,248 (+778.87%)
Mutual labels:  gitlab, bitbucket
Git Touch
An open-source app for GitHub, GitLab, Bitbucket, Gitea, and Gitee(码云), built with Flutter
Stars: ✭ 663 (+366.9%)
Mutual labels:  gitlab, bitbucket
Scala Steward
πŸ€– A bot that helps you keep your Scala projects up-to-date
Stars: ✭ 812 (+471.83%)
Mutual labels:  gitlab, bitbucket
Export Pull Requests
Export pull requests and/or issues to a CSV file. Supports GitHub, GitLab, and Bitbucket
Stars: ✭ 68 (-52.11%)
Mutual labels:  gitlab, bitbucket
Renovate
Universal dependency update tool that fits into your workflows.
Stars: ✭ 6,700 (+4618.31%)
Mutual labels:  gitlab, bitbucket
Git History Browser Extension
Agrega un botΓ³n a la interfΓ‘z de archivos de github para ver su historial / Add a button to the github file interface to see its history
Stars: ✭ 87 (-38.73%)
Mutual labels:  gitlab, bitbucket
Gittar
🎸 Download and/or Extract git repositories (GitHub, GitLab, BitBucket). Cross-platform and Offline-first!
Stars: ✭ 87 (-38.73%)
Mutual labels:  gitlab, bitbucket
Eyes.sh
Let's you perform domain/IP information gathering... in BASH! Wasn't it esr who said "With enough eyeballs, all your IP info are belong to us?"
Stars: ✭ 89 (-37.32%)
Mutual labels:  pentest-tool, information-gathering
Webhooks
🎣 Webhook receiver for GitHub, Bitbucket, GitLab, Gogs
Stars: ✭ 601 (+323.24%)
Mutual labels:  gitlab, bitbucket
Holehe
holehe allows you to check if the mail is used on different sites like twitter, instagram and will retrieve information on sites with the forgotten password function.
Stars: ✭ 568 (+300%)
Mutual labels:  emails, information-gathering
Git Repo
Git-Repo: CLI utility to manage git services from your workspace
Stars: ✭ 818 (+476.06%)
Mutual labels:  gitlab, bitbucket
Theharvester
E-mails, subdomains and names Harvester - OSINT
Stars: ✭ 6,175 (+4248.59%)
Mutual labels:  emails, information-gathering
Scm Backup
Makes offline backups of your cloud hosted source code repositories
Stars: ✭ 38 (-73.24%)
Mutual labels:  gitlab, bitbucket
Gitlink
A Jetbrains plugin that opens a local file under Git version control in its remote host using the default browser.
Stars: ✭ 101 (-28.87%)
Mutual labels:  gitlab, bitbucket
Git Deploy
Php Script for Auto-Pull in server (Using WebHook from GitLab, GitHub and Bitbucket)
Stars: ✭ 495 (+248.59%)
Mutual labels:  gitlab, bitbucket
Vssue
πŸ“« A Vue-powered Issue-based Comment Plugin
Stars: ✭ 496 (+249.3%)
Mutual labels:  gitlab, bitbucket
Git Copy History
Copy commit history from another repository
Stars: ✭ 84 (-40.85%)
Mutual labels:  gitlab, bitbucket

Development - IMPORTANT

This Gitmails version is no longer maintained. Check out the Gitmails Shell port if you want to use a version that is maintained and, hopefully, developed.

If you do not want to use the shell port and prefer the Python version, feel free to fork Gitmails and direct it to whenever path you see fit.

Overview

Gitmails explores that git commits contains a name and an email configured by the author and that version control host services are being used to store a lot of projects.

What Gitmails does is:

  • Query the version control host services for information about an organization, team, group, user or single repository;
  • List all repositories (restricted by authentication) if not on single repository mode;
  • Clone the repository or query the version control host service for the commit history;
  • Analyze the commit history to identify unique authors. Authors are defined by a name and email par.

With these steps, Gitmails can collect all emails found in commit history for a specific target.

Usage

First, you must choose the operation method: collect emails of organization, user or single repository. This can be done by the options: -u --username, -o --organization or -r --repository.

After specifying the operation method, you must set the target. You should pass it right after the operation method: python3 gitmails.py -u some_username, python3 gitmails.py -o some_org or python3 gitmails.py -r some_repo_url. NOTE: gitlab usernames are case sensitive, keep that in mind when trying to collect emails there.

With this basic configuration, Gitmails will clone all repositories for the specified target (or clone the repository in the url) and analyze its commit history. Then, it will print the high level information of the user or organization and finally print, in a "fancy_grid" table (from tabulate), all the Name-Email pars found during analysis.

Useful options:

  • --raw: Will print the results in pure text, no grids, just a comma separated values;
  • -f | --file: Will store the result in the specified file. The results will be in csv with no header format.
  • --include-repositories: Will make Gitmails print the result with information about in which repository the email was found.
  • -p | --path: Specify the temporary path to clone the repositories.
  • -e | --exclude: Ignore specified repositories. Will compare the repository name, if it matches, will ignore the repository and go to the next.
  • --no-cleanup: Will not remove the clonned repositories.
  • --include-forks: Will include forked repositories in the analysis (Only for github).
  • --include-users: If collecting an organization, will collect info about its public members (Only for github).
  • --no-[gitlab|github|bitbucket]: Will not collect information of the specified host service.
  • --run-plugins: Will execute plugins in the collected result.
  • --api: Will try to collect all the information only through API, without clonning repositories. NOTE: Accessing APIs without authentication will cause your IP to be throttled. Also, API only collection is usually slower than clonning the repositories.

Installation

To install Gitmails, you will have to execute the following steps:

  • pip3 install -r requirements.txt
  • Install pygit2 through your operating system package manager.

Debian problems

If you are using Debian (maybe Ubuntu too), the libgit2 package do not work with Gitmails. To solve this, you will need to compile the libgit2 manually. The following steps should enough:

wget https://github.com/libgit2/libgit2/archive/v0.27.0.tar.gz && \
      tar xzf v0.27.0.tar.gz && \
      cd libgit2-0.27.0/ && \
      cmake . && \
      make && \
      sudo make install
ldconfig
pip3 install pygit2

Or execute the debian install script.

Docker

You can also use the docker version of the tool by issuing the following command:

  • docker run -it giovanifss/gitmails --help

Note that if you want to write to a file, you will need to mount a docker volume:

  • docker run -v /tmp/output:/opt -it giovanifss/gitmails -f /opt/result.txt

Contributing

This project is no longer maintained. If you want to contribute check out Gitmails Shell.

Disclaimer

This tool collects data that can be useful for legal offensive security jobs. The authors of this project disclaims any and all responsibility for any damages or losses caused by misuse or malicious use of this tool. Check LICENSE for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].