{"id":13843981,"url":"https://github.com/giovanifss/Gitmails","last_synced_at":"2025-07-11T21:32:24.769Z","repository":{"id":77760151,"uuid":"129449979","full_name":"giovanifss/Gitmails","owner":"giovanifss","description":"An information gathering tool to collect git commit emails in version control host services","archived":true,"fork":false,"pushed_at":"2019-05-05T19:01:56.000Z","size":74,"stargazers_count":152,"open_issues_count":0,"forks_count":24,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-08-05T17:40:35.201Z","etag":null,"topics":["bitbucket","emails","git","github","gitlab","harvester","information-gathering","pentest-tool"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giovanifss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-04-13T20:26:40.000Z","updated_at":"2024-03-17T03:11:25.000Z","dependencies_parsed_at":"2023-03-09T23:30:31.502Z","dependency_job_id":null,"html_url":"https://github.com/giovanifss/Gitmails","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giovanifss%2FGitmails","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giovanifss%2FGitmails/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giovanifss%2FGitmails/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giovanifss%2FGitmails/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giovanifss","download_url":"https://codeload.github.com/giovanifss/Gitmails/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225763218,"owners_count":17520421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitbucket","emails","git","github","gitlab","harvester","information-gathering","pentest-tool"],"created_at":"2024-08-04T17:02:31.951Z","updated_at":"2024-11-21T16:30:21.590Z","avatar_url":"https://github.com/giovanifss.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://s9.postimg.cc/70vgwyp73/LOGO_PROPOSAL_FOR_GITMAILS_9b.png\"\u003e\u003c/p\u003e\n\n## Development - IMPORTANT\nThis Gitmails version is no longer maintained. Check out the [Gitmails Shell](https://github.com/giovanifss/Gitmails-sh)\nport if you want to use a version that is maintained and, hopefully, developed.\n\nIf you do not want to use the shell port and prefer the Python version, feel free to fork Gitmails and direct it to\nwhenever path you see fit.\n\n## Overview\nGitmails explores that git commits contains a name and an email configured by the author and that version control\nhost services are being used to store a lot of projects.\n\nWhat Gitmails does is:\n- Query the version control host services for information about an organization, team, group, user or single repository;\n- List all repositories (restricted by authentication) if not on single repository mode;\n- Clone the repository or query the version control host service for the commit history;\n- Analyze the commit history to identify unique authors. Authors are defined by a name and email par.\n\nWith these steps, Gitmails can collect all emails found in commit history for a specific target.\n\n## Usage\nFirst, you must choose the operation method: collect emails of organization, user or single repository. This can be\ndone by the options: `-u  --username`, `-o  --organization` or `-r  --repository`.\n\nAfter specifying the operation method, you must set the target. You should pass it right after the operation method:\n`python3 gitmails.py -u some_username`, `python3 gitmails.py -o some_org` or `python3 gitmails.py -r some_repo_url`.\n**NOTE**: gitlab usernames are case sensitive, keep that in mind when trying to collect emails there.\n\nWith this basic configuration, Gitmails will clone all repositories for the specified target (or clone the repository in\nthe url) and analyze its commit history. Then, it will print the high level information of the user or organization and\nfinally print, in a \"fancy_grid\" table (from tabulate), all the Name-Email pars found during analysis.\n\nUseful options:\n- `--raw`: Will print the results in pure text, no grids, just a comma separated values;\n- `-f | --file`: Will store the result in the specified file. The results will be in csv with no header format.\n- `--include-repositories`: Will make Gitmails print the result with information about in which repository the\nemail was found.\n- `-p | --path`: Specify the temporary path to clone the repositories.\n- `-e | --exclude`: Ignore specified repositories. Will compare the repository name, if it matches, will ignore\nthe repository and go to the next.\n- `--no-cleanup`: Will not remove the clonned repositories.\n- `--include-forks`: Will include forked repositories in the analysis (Only for github).\n- `--include-users`: If collecting an organization, will collect info about its public members (Only for github).\n- `--no-[gitlab|github|bitbucket]`: Will not collect information of the specified host service.\n- `--run-plugins`: Will execute plugins in the collected result.\n- `--api`: Will try to collect all the information only through API, without clonning repositories.\n**NOTE**: Accessing APIs without authentication will cause your IP to be throttled. Also, API only collection is usually\nslower than clonning the repositories.\n\n## Installation\nTo install Gitmails, you will have to execute the following steps:\n- `pip3 install -r requirements.txt`\n- Install pygit2 through your operating system package manager.\n\n#### Debian problems\nIf you are using Debian (maybe Ubuntu too), the libgit2 package do not work with Gitmails. To solve this, you will need\nto compile the libgit2 manually. The following steps should enough:\n```bash\nwget https://github.com/libgit2/libgit2/archive/v0.27.0.tar.gz \u0026\u0026 \\\n      tar xzf v0.27.0.tar.gz \u0026\u0026 \\\n      cd libgit2-0.27.0/ \u0026\u0026 \\\n      cmake . \u0026\u0026 \\\n      make \u0026\u0026 \\\n      sudo make install\nldconfig\npip3 install pygit2\n```\nOr execute the [debian install](debian-install.sh) script.\n\n## Docker\nYou can also use the docker version of the tool by issuing the following command:\n- `docker run -it giovanifss/gitmails --help`\n\nNote that if you want to write to a file, you will need to mount a docker volume:\n- `docker run -v /tmp/output:/opt -it giovanifss/gitmails -f /opt/result.txt`\n\n## Contributing\nThis project is no longer maintained. If you want to contribute check out [Gitmails Shell](https://github.com/giovanifss/Gitmails-sh).\n\n## Disclaimer\nThis tool collects data that can be useful for legal offensive security jobs. The authors of this\nproject disclaims any and all responsibility for any damages or losses caused by misuse or malicious use of this tool.\nCheck [LICENSE](LICENSE) for more details.\n","funding_links":[],"categories":["Python (1887)","Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiovanifss%2FGitmails","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiovanifss%2FGitmails","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiovanifss%2FGitmails/lists"}