GH档案

2020-08-29 14:08:42

全世界的开源开发人员都在从事数以百万计的项目:编写代码和文档、修复和提交错误等等。GH Archive是一个项目,用于记录公共GitHub时间线,将其存档,并使其易于访问以供进一步分析。

GitHub提供了20多种事件类型,从新的提交和分叉事件,到打开新票证、评论和向项目添加成员,应有尽有。这些事件被聚合到每小时存档中,您可以使用任何HTTP客户端访问这些存档:

每个归档文件都包含GitHub API报告的JSON编码事件。您可以下载原始数据并对其进行自己的处理-例如,编写自定义聚合脚本,将其导入数据库,等等!下载并迭代单个归档的Ruby脚本示例:

对于好奇的人,请查看ChangeLog第144集,深入采访GH Archive的历史、与BigQuery的集成、项目的发展方向等。

整个GH Archive还可以作为Google BigQuery上的公共数据集使用:该数据集每小时自动更新一次,使您可以在几秒钟内对整个数据集运行类似SQL的任意查询。要开始,请执行以下操作:

为方便起见,请注意,您可以使用多个表进行分析:

年份数据集:2011、2012、2013、2014和2015表包含各自年份的所有活动。

上述数据集的架构包含常见活动字段的不同列(请参阅相同的响应格式)、包含JSON编码的活动描述的字符串字段(";payload";String)和包含所有其他字段的字符串字段(";Other";String)。

对于每种事件类型,";payload";字段的内容是不同的,可以由GitHub随时更新,因此它在BigQuery中保留为序列化的JSON字符串值。使用提供的JSON函数(例如,请参阅上面使用JSON_Extract()的查询示例)来提取和访问此字段中的数据。

";Other";字段的内容是一个JSON字符串,它包含提供的除GitHub以外的所有其他数据,该数据与预定义的BigQuery架构不匹配-例如,如果GitHub添加了一个新字段,它将显示在";Other";字段中,直到架构扩展为支持它为止。

请注意,您每月可免费获得1 TB的数据处理。为了最大限度地利用它,您可以将查询限制在相关的时间范围内,以最大限度地减少扫描的数据量。要一次扫描多个表,可以使用表通配符:

ChangeLog Nighly是由GH归档数据提供支持的每日电子邮件报告的新改进版本。这些报告每天在美国东部时间晚上10点发布,并在GitHub上挖掘出最热门的新回购。或者,如果您想要一些有计划的、频率较低的内容,可以订阅Changelog Weekly。

GitHub DevTrends是基于GitHub数据确定的趋势,为开发人员社区免费提供的动态报告。