
Ein Tool zur Informationssammlung zum Sammeln von Git-Commit-E-Mails in Versionsverwaltungs-Hostdiensten.

Diese Gitmails-Version wird nicht mehr gewartet. Schauen Sie sich den Gitmails Shell-Port an, wenn Sie eine Version verwenden möchten, die gewartet und hoffentlich weiterentwickelt wird.
Wenn Sie den Shell-Port nicht verwenden möchten und die Python-Version bevorzugen, können Sie Gitmails forken und es nach Ihren eigenen Vorstellungen weiterentwickeln.
Gitmails untersucht, dass Git-Commits einen Namen und eine E-Mail-Adresse enthalten, die vom Autor konfiguriert wurden, und dass Versionsverwaltungs-Hostdienste verwendet werden, um viele Projekte zu speichern.
Was Gitmails tut, ist:
Mit diesen Schritten kann Gitmails alle in der Commit-Historie eines bestimmten Ziels gefundenen E-Mails sammeln.
Zuerst müssen Sie die Betriebsart wählen: E-Mails einer Organisation, eines Benutzers oder eines einzelnen Repositorys sammeln. Dies kann mit den Optionen -u --username, -o --organization oder -r --repository erfolgen.
Nachdem Sie die Betriebsart festgelegt haben, müssen Sie das Ziel angeben. Sie sollten es direkt nach der Betriebsart übergeben: python3 gitmails.py -u some_username, python3 gitmails.py -o some_org oder python3 gitmails.py -r some_repo_url. HINWEIS: GitLab-Benutzernamen unterscheiden zwischen Groß- und Kleinschreibung, denken Sie daran, wenn Sie dort E-Mails sammeln möchten.
Mit dieser grundlegenden Konfiguration klont Gitmails alle Repositorys für das angegebene Ziel (oder klont das Repository unter der URL) und analysiert dessen Commit-Historie. Anschließend werden die übergeordneten Informationen des Benutzers oder der Organisation ausgegeben und schließlich alle während der Analyse gefundenen Name-E-Mail-Paare in einer "fancy_grid"-Tabelle (von tabulate) dargestellt.
Nützliche Optionen:
--raw: Gibt die Ergebnisse als reinen Text aus, ohne Raster, nur durch Kommas getrennte Werte;-f | --file: Speichert das Ergebnis in der angegebenen Datei. Die Ergebnisse werden als CSV ohne Kopfzeilenformat gespeichert.--include-repositories: Lässt Gitmails das Ergebnis mit Informationen darüber ausgeben, in welchem Repository die E-Mail gefunden wurde.-p | --path: Gibt den temporären Pfad zum Klonen der Repositorys an.-e | --exclude: Ignoriert bestimmte Repositorys. Vergleicht den Repository-Namen; bei Übereinstimmung wird das Repository ignoriert und mit dem nächsten fortgefahren.--no-cleanup: Entfernt die geklonten Repositorys nicht.--include-forks: Bezieht geforkte Repositorys in die Analyse ein (nur für GitHub).--include-users: Beim Sammeln einer Organisation werden Informationen über deren öffentliche Mitglieder gesammelt (nur für GitHub).--no-[gitlab|github|bitbucket]: Sammelt keine Informationen des angegebenen Hostdienstes.--run-plugins: Führt Plugins auf dem gesammelten Ergebnis aus.Um Gitmails zu installieren, müssen Sie die folgenden Schritte ausführen:
pip3 install -r requirements.txtWenn Sie Debian (vielleicht auch Ubuntu) verwenden, funktioniert das libgit2-Paket nicht mit Gitmails. Um dies zu lösen, müssen Sie libgit2 manuell kompilieren. Die folgenden Schritte sollten ausreichen:
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
Oder führen Sie das Skript debian install aus.
Sie können auch die Docker-Version des Tools verwenden, indem Sie den folgenden Befehl ausführen:
docker run -it giovanifss/gitmails --helpBeachten Sie, dass Sie ein Docker-Volume bereitstellen müssen, wenn Sie in eine Datei schreiben möchten:
docker run -v /tmp/output:/opt -it giovanifss/gitmails -f /opt/result.txtDieses Projekt wird nicht mehr gewartet. Wenn Sie mitwirken möchten, sehen Sie sich Gitmails Shell an.
Dieses Tool sammelt Daten, die für legale offensive Sicherheitsaufgaben nützlich sein können. Die Autoren dieses Projekts lehnen jegliche Verantwortung für Schäden oder Verluste ab, die durch Missbrauch oder böswillige Nutzung dieses Tools verursacht werden. Weitere Informationen finden Sie in der LIZENZ.
--api: Versucht, alle Informationen nur über die API zu sammeln, ohne Repositorys zu klonen.
HINWEIS: Der Zugriff auf APIs ohne Authentifizierung führt dazu, dass Ihre IP gedrosselt wird. Außerdem ist die reine API-Sammlung normalerweise langsamer als das Klonen der Repositorys.