前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Gitmails在版本控制主机中收集Git提交邮件

如何使用Gitmails在版本控制主机中收集Git提交邮件

作者头像
FB客服
发布2023-09-19 08:22:09
1150
发布2023-09-19 08:22:09
举报
文章被收录于专栏:FreeBuf
关于Gitmails

Gitmails是一款能够在Git版本控制主机服务中收集Git提交电子邮件的信息收集工具,该工具可以帮助广大研究人员扫描和识别Git提交中包含的作者名称、电子邮件配置和版本控制主机服务是否存储了多个项目。

工具功能

当前版本的Gitmails功能如下:

1、向版本控制主机服务查询有关组织、团队、组、用户或单个存储库的信息; 2、如果不是在单一存储库模式下,则列出所有存储库(受身份验证限制); 3、克隆存储库或查询版本控制主机服务以获取提交历史记录; 4、分析提交历史以确定唯一的作者,其中作者是由姓名和电子邮件来定义的;

通过上述操作,Gitmails可以收集特定目标提交历史记录中的所有电子邮件信息;

工具安装

源码获取

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3环境。接下来,广大研究人员可以使用下列命令直接将该项目源码克隆至本地:

代码语言:javascript
复制


git clone https://github.com/giovanifss/Gitmails.git

然后切换到项目目录中,使用pip3命令和requirements.txt文件安装该工具所需的依赖组件:

代码语言:javascript
复制


cd Gitmails/

pip3 install -r requirements.txt

其中的pygit2工具(其中一个依赖组件)则需要通过操作系统的包管理器进行手动安装。

Docker使用

我们还可以使用该工具的Docker版本,操作命令如下:

代码语言:javascript
复制


docker run -it giovanifss/gitmails --help

需要注意的是,如果你想要将结果写入到文件中,你还需要加载一个Docker卷宗:

代码语言:javascript
复制
代码语言:javascript
复制
docker run -v /tmp/output:/opt -it giovanifss/gitmails -f /opt/result.txt
代码语言:javascript
复制

工具使用

首先,你必须选择一个操作方法:即收集组织电子邮件(-organization)、用户(-u或--username)或单个代码库(-r或--repository)。

接下来就需要设置目标了,你需要在执行下列代码后将目标以参数的形式传递给Gitmails:

代码语言:javascript
复制


python3 gitmails.py -u some_username,

python3 gitmails.py -o some_org

python3 gitmails.py -r some_repo_url

注意,Gitlab用户名是大小写敏感的,请记住这一点。

有了这个基本配置,Gitmails将克隆指定目标的所有存储库(或克隆url中的存储库),并分析其提交历史。然后,它将打印用户或组织的高级信息,并最终在“fancy_grid”表中打印分析过程中发现的所有名称电子邮件部分。

工具参数选项

代码语言:javascript
复制


--raw:以纯文本形式输出结果,以逗号分隔值;

-f | --file:将结果存储到指定文件中,格式为CSV且无Header;

--include-repositories:让Gitmails打印结果,其中包含电子邮件对应的代码库信息;

-p | --path:指定克隆代码库的临时路径;

-e | --exclude:忽略指定的代码库;

--no-cleanup:不删除已克隆的代码库;

--include-forks:在分析中引入Fork的代码库(仅适用于GitHub);

--include-users:收集目标组织中的公开成员信息(仅适用于GitHub);

--no-[gitlab|github|bitbucket]:不收集指定主机服务的相关信息;

--run-plugins:在收集结果中执行插件分析;

--api:尝试仅通过API收集信息,并且不克隆目标代码库;

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

Gitmails:https://github.com/giovanifss/gitmails

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-12 19:42,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 工具功能
  • 工具安装
    • 源码获取
      • Docker使用
      • 工具使用
      • 工具参数选项
      • 许可证协议
      • 项目地址
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档