
Un outil de collecte d'informations pour recueillir les e-mails de commit git dans les services d'hébergement de contrôle de version.

Cette version de Gitmails n'est plus maintenue. Consultez le port Gitmails Shell si vous souhaitez utiliser une version maintenue et, espérons-le, développée.
Si vous ne souhaitez pas utiliser le port shell et préférez la version Python, n'hésitez pas à forker Gitmails et à l'orienter vers la voie que vous jugerez appropriée.
Gitmails exploite le fait que les commits git contiennent un nom et un email configurés par l'auteur et que les services d'hébergement de contrôle de version sont utilisés pour stocker de nombreux projets.
Ce que fait Gitmails c'est :
Avec ces étapes, Gitmails peut collecter tous les emails trouvés dans l'historique des commits pour une cible spécifique.
Tout d'abord, vous devez choisir la méthode d'opération : collecter les emails d'une organisation, d'un utilisateur ou d'un seul dépôt. Cela peut être fait avec les options : -u --username, -o --organization ou -r --repository.
Après avoir spécifié la méthode d'opération, vous devez définir la cible. Vous devez la passer juste après la méthode d'opération : python3 gitmails.py -u some_username, python3 gitmails.py -o some_org ou python3 gitmails.py -r some_repo_url.
NOTE : les noms d'utilisateur GitLab sont sensibles à la casse, gardez cela à l'esprit lorsque vous essayez de collecter des emails là-bas.
Avec cette configuration de base, Gitmails clonera tous les dépôts pour la cible spécifiée (ou clonera le dépôt à partir de l'URL) et analysera son historique de commits. Ensuite, il affichera les informations de haut niveau de l'utilisateur ou de l'organisation et enfin, affichera, dans un tableau "fancy_grid" (de tabulate), toutes les paires Nom-Email trouvées lors de l'analyse.
Options utiles :
--raw : Affichera les résultats en texte pur, sans grilles, juste des valeurs séparées par des virgules ;-f | --file : Stockera le résultat dans le fichier spécifié. Les résultats seront en CSV sans en-tête.--include-repositories : Fera en sorte que Gitmails affiche le résultat avec des informations sur le dépôt dans lequel l'email a été trouvé.-p | --path : Spécifie le chemin temporaire pour cloner les dépôts.-e | --exclude : Ignore les dépôts spécifiés. Comparera le nom du dépôt, s'il correspond, ignorera le dépôt et passera au suivant.--no-cleanup : Ne supprimera pas les dépôts clonés.--include-forks : Inclura les dépôts fork dans l'analyse (uniquement pour GitHub).--include-users : Si vous collectez une organisation, collectera des informations sur ses membres publics (uniquement pour GitHub).--no-[gitlab|github|bitbucket] : Ne collectera pas d'informations sur le service d'hébergement spécifié.--run-plugins : Exécutera les plugins sur le résultat collecté.Pour installer Gitmails, vous devrez exécuter les étapes suivantes :
pip3 install -r requirements.txtSi vous utilisez Debian (peut-être Ubuntu aussi), le paquet libgit2 ne fonctionne pas avec Gitmails. Pour résoudre ce problème, vous devrez compiler libgit2 manuellement. Les étapes suivantes devraient suffire :
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
Ou exécutez le script debian install.
Vous pouvez également utiliser la version Docker de l'outil en exécutant la commande suivante :
docker run -it giovanifss/gitmails --helpNotez que si vous souhaitez écrire dans un fichier, vous devrez monter un volume Docker :
docker run -v /tmp/output:/opt -it giovanifss/gitmails -f /opt/result.txtCe projet n'est plus maintenu. Si vous souhaitez contribuer, consultez Gitmails Shell.
Cet outil collecte des données qui peuvent être utiles pour des missions légitimes de sécurité offensive. Les auteurs de ce projet déclinent toute responsabilité pour tout dommage ou perte causé par une utilisation abusive ou malveillante de cet outil. Consultez LICENSE pour plus de détails.
--api : Tentera de collecter toutes les informations uniquement via l'API, sans cloner les dépôts.
NOTE : L'accès aux API sans authentification entraînera un ralentissement de votre IP. De plus, la collecte via API uniquement est généralement plus lente que le clonage des dépôts.