
Una herramienta de recopilación de información para obtener correos electrónicos de commits de git en servicios de control de versiones.

Esta versión de Gitmails ya no recibe mantenimiento. Echa un vistazo a la versión de Gitmails Shell si deseas usar una versión que recibe mantenimiento y, con suerte, se desarrolla.
Si no deseas usar la versión de shell y prefieres la versión en Python, siéntete libre de hacer un fork de Gitmails y dirigirlo hacia el camino que consideres adecuado.
Gitmails explora que los commits de git contienen un nombre y un correo electrónico configurados por el autor y que los servicios de alojamiento de control de versiones se utilizan para almacenar muchos proyectos.
Lo que Gitmails hace es:
Con estos pasos, Gitmails puede recopilar todos los correos electrónicos encontrados en el historial de commits para un objetivo específico.
Primero, debes elegir el método de operación: recopilar correos de una organización, usuario o repositorio único. Esto se puede hacer con las opciones: -u --username, -o --organization o -r --repository.
Después de especificar el método de operación, debes establecer el objetivo. Debes pasarlo justo después del método de operación:
python3 gitmails.py -u some_username, python3 gitmails.py -o some_org o python3 gitmails.py -r some_repo_url.
NOTA: los nombres de usuario de gitlab distinguen entre mayúsculas y minúsculas, tenlo en cuenta al intentar recopilar correos allí.
Con esta configuración básica, Gitmails clonará todos los repositorios para el objetivo especificado (o clonará el repositorio en la URL) y analizará su historial de commits. Luego, imprimirá la información de alto nivel del usuario u organización y finalmente imprimirá, en una tabla "fancy_grid" (de tabulate), todos los pares Nombre-Correo encontrados durante el análisis.
Opciones útiles:
--raw: Imprimirá los resultados en texto puro, sin tablas, solo valores separados por comas;-f | --file: Almacenará el resultado en el archivo especificado. Los resultados estarán en csv sin formato de cabecera.--include-repositories: Hará que Gitmails imprima el resultado con información sobre en qué repositorio se encontró el correo.-p | --path: Especifica la ruta temporal para clonar los repositorios.-e | --exclude: Ignorar repositorios especificados. Comparará el nombre del repositorio; si coincide, ignorará el repositorio y pasará al siguiente.--no-cleanup: No eliminará los repositorios clonados.--include-forks: Incluirá repositorios bifurcados en el análisis (Solo para github).--include-users: Si se recopila una organización, recopilará información sobre sus miembros públicos (Solo para github).--no-[gitlab|github|bitbucket]: No recopilará información del servicio de alojamiento especificado.--run-plugins: Ejecutará complementos en el resultado recopilado.Para instalar Gitmails, deberás ejecutar los siguientes pasos:
pip3 install -r requirements.txtSi estás usando Debian (quizás Ubuntu también), el paquete libgit2 no funciona con Gitmails. Para solucionarlo, necesitarás compilar libgit2 manualmente. Los siguientes pasos deberían ser suficientes:
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
O ejecuta el script de instalación para Debian.
También puedes usar la versión docker de la herramienta ejecutando el siguiente comando:
docker run -it giovanifss/gitmails --helpTen en cuenta que si deseas escribir en un archivo, necesitarás montar un volumen docker:
docker run -v /tmp/output:/opt -it giovanifss/gitmails -f /opt/result.txtEste proyecto ya no recibe mantenimiento. Si deseas contribuir, echa un vistazo a Gitmails Shell.
Esta herramienta recopila datos que pueden ser útiles para trabajos legales de seguridad ofensiva. Los autores de este proyecto rechazan cualquier responsabilidad por daños o pérdidas causadas por el mal uso o uso malicioso de esta herramienta. Consulta LICENSE para más detalles.
--api: Intentará recopilar toda la información solo a través de la API, sin clonar repositorios.
NOTA: Acceder a las API sin autenticación hará que tu IP sea limitada. Además, la recopilación solo por API suele ser más lenta que clonar los repositorios.