
버전 관리 호스트 서비스에서 git 커밋 이메일을 수집하는 정보 수집 도구

이 Gitmails 버전은 더 이상 유지보수되지 않습니다. 유지보수되며 발전되고 있는 버전을 사용하려면 Gitmails Shell 포트를 확인하세요.
쉘 포트를 사용하지 않고 Python 버전을 선호한다면, Gitmails를 포크하여 원하는 방향으로 자유롭게 이끌어가세요.
Gitmails는 git 커밋에 작성자가 설정한 이름과 이메일이 포함되어 있으며, 버전 관리 호스트 서비스가 많은 프로젝트를 저장하는 데 사용된다는 점을 활용합니다.
Gitmails가 하는 일은 다음과 같습니다:
이러한 단계를 통해 Gitmails는 특정 대상의 커밋 기록에서 발견된 모든 이메일을 수집할 수 있습니다.
먼저 작업 방법을 선택해야 합니다: 조직, 사용자 또는 단일 저장소의 이메일 수집. 이는 -u --username, -o --organization 또는 -r --repository 옵션으로 수행할 수 있습니다.
작업 방법을 지정한 후에는 대상을 설정해야 합니다. 작업 방법 바로 뒤에 전달하면 됩니다: python3 gitmails.py -u some_username, python3 gitmails.py -o some_org 또는 python3 gitmails.py -r some_repo_url. 참고: gitlab 사용자 이름은 대소문자를 구분하므로 이메일을 수집할 때 이 점을 염두에 두세요.
이 기본 구성으로 Gitmails는 지정된 대상의 모든 저장소를 클론하거나(url의 저장소를 클론) 커밋 기록을 분석합니다. 그런 다음 사용자 또는 조직의 상위 수준 정보를 출력하고, 마지막으로 분석 중 발견된 모든 이름-이메일 쌍을 "fancy_grid" 테이블(tabulate에서)로 출력합니다.
유용한 옵션:
--raw: 결과를 순수 텍스트로 출력합니다. 그리드 없이 쉼표로 구분된 값만 출력합니다;-f | --file: 결과를 지정된 파일에 저장합니다. 결과는 헤더가 없는 csv 형식입니다.--include-repositories: Gitmails가 이메일이 발견된 저장소에 대한 정보와 함께 결과를 출력하도록 합니다.-p | --path: 저장소를 클론할 임시 경로를 지정합니다.-e | --exclude: 지정된 저장소를 무시합니다. 저장소 이름을 비교하여 일치하면 해당 저장소를 무시하고 다음으로 넘어갑니다.--no-cleanup: 클론된 저장소를 제거하지 않습니다.--include-forks: 분석에 포크된 저장소를 포함합니다 (github 전용).--include-users: 조직을 수집하는 경우 해당 조직의 공개 멤버에 대한 정보를 수집합니다 (github 전용).--no-[gitlab|github|bitbucket]: 지정된 호스트 서비스의 정보를 수집하지 않습니다.--run-plugins: 수집된 결과에 플러그인을 실행합니다.--api: 저장소를 클론하지 않고 API를 통해서만 모든 정보를 수집하려고 시도합니다.
참고: 인증 없이 API에 접근하면 IP가 제한될 수 있습니다. 또한 API 전용 수집은 일반적으로 저장소를 클론하는 것보다 느립니다.Gitmails를 설치하려면 다음 단계를 실행해야 합니다:
pip3 install -r requirements.txtDebian(아마 Ubuntu도)을 사용하는 경우 libgit2 패키지가 Gitmails와 호환되지 않습니다. 이 문제를 해결하려면 libgit2를 수동으로 컴파일해야 합니다. 다음 단계로 충분합니다:
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
또는 debian install 스크립트를 실행하세요.
다음 명령을 실행하여 도구의 도커 버전을 사용할 수도 있습니다:
docker run -it giovanifss/gitmails --help파일에 쓰려면 도커 볼륨을 마운트해야 한다는 점에 유의하세요:
docker run -v /tmp/output:/opt -it giovanifss/gitmails -f /opt/result.txt이 프로젝트는 더 이상 유지보수되지 않습니다. 기여하고 싶다면 Gitmails Shell을 확인하세요.
이 도구는 합법적인 공격적 보안 작업에 유용할 수 있는 데이터를 수집합니다. 이 프로젝트의 작성자는 이 도구의 오용 또는 악의적 사용으로 인한 모든 손해나 손실에 대한 모든 책임을 부인합니다. 자세한 내용은 LICENSE를 확인하세요.