最值得推荐的8个git/github项目数据分析工具

任何重要的决定都应基于数据,对于信息项目和软件开发亦是如此。如果你不仔细查看描述项目演进的数据就无法了解项目的健康状况,并给出合理的改进措施。为了分析和挖掘这些信息,我们可以从Git存储库和项目所在的代码托管平台(例如GitHub,Gitlab)获取一些有意义的数据。然而从Git/GitHub轻松获取数据实际也不是一件简单的事情。本文虫虫就给大家介绍一些Git/GitHub开源分析工具供大家学习参考。

GitHub API

首先要说的是Github的官方API,这是获取GitHub仓库详细的最佳方式。API非常好用,你可以使用curl或者其他任何语言打包库,获取仓库的所有信息(其他公共在线Git托管平台或者自建的Gitlab都有类似的API)。然而,讨厌的是Github对API的调用做了限制,每小时的请求数量是有限制的(匿名用户60次,授权用户5000次),如果你要分析大型项目(或对其中一些进行全局分析),则使用API​​并不是一个好的解决方案。但是,一般用来对个别构建专注于单个项目或贡献者的某种仪表板是不会受到影响的。

最值得推荐的8个git/github项目数据分析工具

通过Github API,你基本上获得访问浏览项目Github仓库时看到的所有信息,但是对仓库的Git信息内部信息有限(例如,想知道在最近的一天修改了哪些代码行)。你需要clone 仓库后通过git命令才能获得完全信息。

GHCrawler

GHCrawler是由微软开发的一个健壮的GitHub API 爬虫,可遍历GitHub实体和消息,对其进行搜索和跟踪。如果要对某一组织或者项目的活动进行分析,则GHCrawler特别有用。GHCrawler也受Github API请求次数的限制,但是GHCrawler通过使用令牌池和轮换来优化API令牌的使用。GHCrawler支持命令行式调用,同时也支持一个Web端界面操作(ghcrawler-dashboard)

项目官方仓库:https://github.com/Microsoft/ghcrawler

GH Archive

GH Archive是一个开源的一个项目,用于记录公共GitHub时间轴,对其进行存档,并使其易于访问以进行进一步分析。GitHub Archive获取所有的GitHub events信息存储在一组JSON文件中,以便根据需要下载并脱机处理。

最值得推荐的8个git/github项目数据分析工具

另外,GitHub Archive也可以作为公共数据集在Google BigQuery上使用。该数据集每小时自动更新一次,可以在几秒钟内对整个数据集运行任意类似SQL的查询。

项目官方网站https://www.gharchive.org

GHTorren

和GH Archive类似,GHTorrent项目也用来监视Github公共事件时间表信息。对于每个事件,它都详尽地检索其内容和相互依赖性。然后将结果JSON的信息存储到MongoDB数据库,同时还将其结构提取到MySQL数据库中。

最值得推荐的8个git/github项目数据分析工具

GHTorrent和GH Archive有点类似,两者区别是GH Archive旨在提供更详尽的事件集合,按小时频率获取信息。而GH Torrent则以更结构化的方式提供事件数据,以使更轻松地获取所有事件有关事件的信息,数据获取频率为月。

项目官方仓库https://github.com/ghtorrent

Kibble

Apache Kibble是一套用于收集,汇总和可视化软件项目中活动的工具。Kibble架构由一个中央Kibble服务器和一组专门用于处理特定类型资源的扫描应用程序(一个git repo,一个邮件列表,一个JIRA实例等)并将已编译的数据对象推送到Kibble服务器。

最值得推荐的8个git/github项目数据分析工具

根据这些数据,可以自定义一个仪表板,其中包含许多显示项目数据的小部件(语言分类,主要贡献者,代码演变等)。从这个意义上讲,Kibble更像是一种工具,可以帮助创建项目数据信息展示Web端。

最值得推荐的8个git/github项目数据分析工具

项目官方网站https://kibble.apache.org/

CHAOSS

CHAOSS是Linux 基金会下项目,致力于创建数据析和指标定义以帮助一个健康的开源社区。CHAOSS计划项目有很多工具可以挖掘和计算项目所需的指标数据:

Augur是一个Python库、Flask Web应用程序和REST服务器,用于提供有关开源软件开发项目运行状况和可持续性的指标。目标是作为CHAOSS社区感兴趣的新指标的快速原型制作。

Cregit则专注于生成视图以可视化代码更改的出处

**GrimoireLab **Bitergia旗下迄今为止最成熟和雄心勃勃的工具。GrimoireLab的目的是提供一个开源平台实现:

最值得推荐的8个git/github项目数据分析工具

1. 几乎可以从任何与开源开发相关的工具(数据源)中收集自动和增量数据(源代码管理,问题跟踪系统,论坛等)

最值得推荐的8个git/github项目数据分析工具

自动丰富数据以清理和扩展上面收集的数据(合并重复的身份,添加有关贡献者隶属关系,计算延迟,地理数据等的其他信息)

数据可视化,按时间范围,项目,存储库,贡献者等进行过滤搜索。

GrimoireLab使用Kibana在收集的数据之上提供所有这些出色的可视化效果。

最值得推荐的8个git/github项目数据分析工具

CHAOSS项目官方网站:https://chaoss.community/

Sourced

Sourced自称为开发生命周期的数据平台。与以前的工具相比,它更多地关注项目的代码,而不是社区的协作。Sourced项目使用通用AST,可以实现与语言无关的方式对代码库细节查询。

最值得推荐的8个git/github项目数据分析工具

在Sourced项目组织中,可以找到几个有趣的数据分析工具。包括:

go-git:用纯Golang语言编写的高度可扩展的git实现库。

最值得推荐的8个git/github项目数据分析工具

Hercule:Golang实现的对存储库的整个提交历史记录分析工具。

最值得推荐的8个git/github项目数据分析工具

gitbase:Golang 实现的Git存储库SQL数据库接口。比如按年月和提交者的提交信息,可以使用如下Sql语句:

SELECT YEAR,

MONTH,

repo_id,

committer_email,

COUNT(*) AS num_commits

FROM

(SELECT YEAR(committer_when) AS YEAR,

MONTH(committer_when) AS MONTH,

repository_id AS repo_id,

committer_email

FROM ref_commits

NATURAL JOIN commits

WHERE ref_name = 'HEAD') AS t

GROUP BY committer_email,

YEAR,

MONTH,

repo_id;

项目官方网站:https://sourced.tech/

Github项目组织:https://github.com/src-d

Hubble

Hubble用于可视化GitHub Enterprise的协作、使用情况和运行状况数据。它致力于帮助大公司了解其内部组织,项目和贡献者如何一起分配和协作。

最值得推荐的8个git/github项目数据分析工具

Hubble Enterprise由两个组件组成。更新器组件是一个Python脚本,它每天从GitHub Enterprise设备查询相关数据,并将结果存储在Git存储库中。docs组件是一个Web应用程序,用于可视化收集的数据,并由GitHub Pages托管。

官方项目托管地址:https://github.com/Autodesk/hubble

onefetch

最后提一个非常漂亮的命令行下的git项目信息可视化的工具,支持对50多种语言,提及它是因为它是用新兴的Rust语言编写的。

最值得推荐的8个git/github项目数据分析工具

总结

本文我们列举一些对github/git进行数据挖掘的工具和项目。除了上面提及以下开源软件外,有一些商业化的工具也非常不错,比如Snoot和Waydev。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容