open-github
收藏Hugging Face2026-03-28 更新2026-03-29 收录
下载链接:
https://huggingface.co/datasets/open-index/open-github
下载链接
链接失效反馈官方服务:
资源简介:
OpenGitHub 数据集包含了 GitHub 上所有的公共事件,如推送、拉取请求、问题、星标、复刻、代码审查、发布和讨论等。该数据集覆盖了从 2011 年 2 月 12 日到 2015 年 1 月 3 日的 1,300 天,总计 223,133,886 个事件,分为 16 个结构化的 Parquet 表格。数据来源于 GH Archive,并通过 GitHub Events API 实时更新。数据集适用于文本生成、文本分类和特征提取等任务,支持多种语言(主要是英语)。数据规模在 1 亿到 10 亿之间,提供了详细的字段说明和使用示例,方便用户通过 Python 的 `datasets` 库或 DuckDB 进行查询和处理。
创建时间:
2026-03-28
原始信息汇总
OpenGitHub 数据集概述
数据集基本信息
- 数据集名称: OpenGitHub
- 许可证: Open Data Commons Attribution License (ODC-By) v1.0
- 任务类别: 文本生成、文本分类、特征提取
- 语言: 英语、多语言
- 规模: 1亿 < n < 10亿条数据
- 标签: github, events, open-source, gharchive, code, software-engineering, social
数据内容与范围
- 数据来源: 包含GitHub上的所有公开事件,涵盖推送、拉取请求、议题、星标、复刻、代码审查、发布和讨论。
- 时间范围: 历史数据从2011年2月12日到2015年1月3日(共1300天)。同时提供实时数据流。
- 数据总量: 223,133,886个事件,分布在16个完全结构化的Parquet表中。
- 数据格式: 原始GH Archive NDJSON(69.9 GB)已被解析、扁平化并压缩为Zstd压缩的Parquet格式(12.3 GB)。所有嵌套的JSON字段都已展开为类型化列。
数据配置与结构
数据集包含以下配置(表),每个配置对应一个数据文件路径:
pushes:data/pushes/**/*.parquetissues:data/issues/**/*.parquetissue_comments:data/issue_comments/**/*.parquetpull_requests:data/pull_requests/**/*.parquetpr_reviews:data/pr_reviews/**/*.parquetpr_review_comments:data/pr_review_comments/**/*.parquetstars:data/stars/**/*.parquetforks:data/forks/**/*.parquetcreates:data/creates/**/*.parquetdeletes:data/deletes/**/*.parquetreleases:data/releases/**/*.parquetcommit_comments:data/commit_comments/**/*.parquetwiki_pages:data/wiki_pages/**/*.parquetmembers:data/members/**/*.parquetpublic_events:data/public_events/**/*.parquetdiscussions:data/discussions/**/*.parquetlive:today/raw/**/*.parquet
数据按 data/TABLE/YYYY/MM/DD.parquet 分区。
实时数据
- 采集方式: 通过自动化实时管道,每隔几秒直接从GitHub Events API获取新事件,并提交为5分钟的Parquet块。
- 存储路径:
today/raw/YYYY/MM/DD/HHMM.parquet - 数据示例: 以2026年3月28日为例,当天捕获了3,059,807个事件,分布在3862个块中。
- 实时事件模式:
event_id: 字符串,唯一的GitHub事件ID。event_type: 字符串,事件类型(PushEvent, IssuesEvent等)。created_at: 时间戳,事件发生时间。actor_id: int64,用户ID。actor_login: 字符串,用户名。repo_id: int64,仓库ID。repo_name: 字符串,完整的仓库名称(所有者/仓库)。org_id: int64,组织ID(个人仓库为0)。org_login: 字符串,组织登录名。action: 字符串,事件动作(打开、关闭、开始等)。number: int32,议题/PR编号。payload_json: 字符串,完整的JSON格式事件负载。
年度事件统计
| 年份 | 天数 | 事件数 | 平均每日事件数 | 原始输入大小 | Parquet输出大小 |
|---|---|---|---|---|---|
| 2011 | 323 | 18,032,583 | 55,828 | 3.5 GB | 76.6 MB |
| 2012 | 366 | 42,537,517 | 116,222 | 11.5 GB | 161.5 MB |
| 2013 | 353 | 76,154,264 | 215,734 | 23.2 GB | 4.1 GB |
| 2014 | 256 | 85,897,773 | 335,538 | 31.6 GB | 7.9 GB |
| 2015 | 2 | 511,749 | 255,874 | 166.6 MB | 85.1 MB |
主要事件类型年度分布
- 推送事件: 最常见的类型,约占GitHub活动的一半。每个推送可包含多次提交。
- 议题事件: 跟踪完整生命周期:打开、关闭、重新打开、标记标签、分配等。
- 拉取请求事件: 涵盖完整的审查周期:打开、合并、关闭、请求审查和同步(推送新提交)。
- 星标事件: 反映社区兴趣和发现。星标模式常与Hacker News、Reddit或Twitter帖子相关。
通用事件模式(所有16个表共享)
每个数据行都包含以下列:
event_id: 字符串,唯一的GitHub事件ID。event_type: 字符串,GitHub事件类型(例如PushEvent、IssuesEvent)。created_at: 字符串,ISO 8601时间戳。actor_id: int64,操作者的用户ID。actor_login: 字符串,操作者的用户名。repo_id: int64,仓库ID。repo_name: 字符串,完整的仓库名称(所有者/仓库)。org_id: int64,组织ID(个人仓库为0)。org_login: 字符串,组织登录名。
各表特定负载字段摘要
pushes 表 (PushEvent)
- 关键字段:
push_id,ref,head,before,size,distinct_size,commits(包含SHA、消息、作者姓名、作者邮箱、是否独立、URL的列表)。
issues 表 (IssuesEvent)
- 关键字段:
action,issue_id,issue_number,title,body,state,locked,comments_count,user_login,user_id,assignee_login,milestone_title,labels,assignees,reactions_total,issue_created_at,issue_closed_at。
issue_comments 表 (IssueCommentEvent)
- 关键字段:
action,comment_id,comment_body,comment_user_login,comment_created_at,issue_number,issue_title,issue_state,reactions_total。
pull_requests 表 (PullRequestEvent)
- 关键字段:
action,pr_id,pr_number,title,body,state,merged,draft,commits_count,additions,deletions,changed_files,user_login,head_ref,head_sha,base_ref,head_repo_full_name,base_repo_full_name,merged_by_login,pr_created_at,pr_merged_at,labels,requested_reviewers,reactions_total。
pr_reviews 表 (PullRequestReviewEvent)
- 关键字段:
action,review_id,review_state,review_body,review_submitted_at,review_user_login,review_commit_id,pr_id,pr_number,pr_title。
pr_review_comments 表 (PullRequestReviewCommentEvent)
- 关键字段:
action,comment_id,comment_body,diff_hunk,path,line,side,in_reply_to_id,comment_user_login,comment_created_at,pr_number,reactions_total。
stars 表 (WatchEvent)
- 关键字段: 包含谁在何时星标了哪个仓库的信息。
搜集汇总
数据集介绍

构建方式
在开源软件工程领域,OpenGitHub数据集通过系统化采集GitHub公共事件构建而成。其数据源自GH Archive项目,该项目自2011年起持续记录GitHub Events API中的全部公开活动。原始NDJSON数据经过解析、扁平化处理,并转换为类型化的Parquet列格式,同时采用Zstd压缩技术优化存储效率。数据集按事件类型和日期分区组织,形成层次化的目录结构,便于按时间范围或事件类别进行高效查询。此外,系统通过自动化实时管道,以五分钟为间隔从GitHub API获取最新事件,确保数据与平台活动保持同步更新。
特点
该数据集囊括了GitHub平台上十六类核心软件开发活动的完整记录,包括代码推送、议题管理、拉取请求、代码审查及社区互动等。其核心特征在于数据的高度结构化——所有嵌套JSON字段均被展开为强类型列,消除了下游解析的复杂性。数据集采用列式存储的Parquet格式,并配合分区策略,显著提升了查询性能。时间跨度覆盖2011年至2015年的历史存档,同时包含实时更新的当前事件,为纵向研究和即时分析提供了可能。多语言支持与清晰的表结构设计,使其能够直接适配各类数据处理工具与机器学习任务。
使用方法
研究人员可通过Hugging Face的datasets库直接加载数据集,支持流式读取以处理海量数据,亦可按需选取特定年份或事件类型的分区文件。利用DuckDB等查询引擎,用户能够执行复杂的SQL分析,例如统计仓库活跃度、追踪议题生命周期或识别社区协作模式。数据集的分区设计允许灵活选择时间范围,结合事件类型筛选,可针对特定研究问题构建定制化数据子集。对于需要本地处理的场景,可使用huggingface_hub工具进行批量下载,并通过设置环境变量启用高速传输协议以优化获取效率。
背景与挑战
背景概述
在开源软件工程与协作分析领域,全面追踪开发活动数据对理解社区动态至关重要。OpenGitHub数据集由Ilya Grigorik创建的GH Archive项目衍生而来,自2011年2月12日起持续收录GitHub平台上的所有公开事件,涵盖推送、议题、拉取请求、星标等十六类结构化活动。该数据集通过自动化流水线近乎实时地更新,将原始NDJSON数据解析为压缩Parquet格式,为研究者提供了跨越多年、规模达数亿条记录的高质量数据源。其核心研究问题在于如何系统性地捕捉全球最大软件开发平台的协作模式,进而支撑软件工程、社交网络分析及开源生态研究,对量化开发者行为、预测项目趋势产生了深远影响。
当前挑战
该数据集旨在解决开源软件工程中大规模协作行为分析的挑战,包括识别开发流程模式、量化社区参与度以及预测项目健康度。构建过程中的主要挑战涉及数据规模与实时性处理:原始GH Archive数据量庞大且持续增长,需高效解析嵌套JSON并压缩为可查询格式;同时,维持与GitHub事件API的同步更新,设计低延迟的实时摄取流水线,确保数据新鲜度。此外,数据清洗与结构化转换需保持事件语义完整性,并处理API演变带来的模式差异,以支持跨年度的一致性分析。
常用场景
经典使用场景
在开源软件工程领域,OpenGitHub数据集为研究全球开发者协作模式提供了宝贵资源。该数据集通过记录GitHub平台上所有公开事件,如推送、拉取请求、议题和星标等,使得研究人员能够深入分析代码贡献、项目维护及社区互动行为。其经典使用场景包括构建开发者社交网络图谱、追踪项目生命周期演变以及量化开源生态系统的健康度。借助该数据集,学者得以揭示大规模分布式协作中的涌现规律,为理解现代软件开发的社会技术动态奠定基础。
解决学术问题
OpenGitHub数据集有效解决了软件工程研究中关于协作效率与质量评估的若干核心问题。它通过结构化的事件流数据,使得研究者能够精确测量代码审查周期、议题解决时间以及贡献者参与度等关键指标。该数据集为验证软件过程改进理论提供了实证基础,例如探究敏捷实践对交付速度的影响,或分析代码质量与团队结构之间的关联。其长期跨度的时序数据还支持对开源项目可持续性的纵向研究,为制定更有效的社区治理策略提供了科学依据。
衍生相关工作
基于OpenGitHub数据集,学术界已衍生出多项经典研究工作。例如,研究者开发了基于图神经网络的贡献者推荐系统,通过分析协作网络提升团队组建效率;另有工作聚焦于代码审查自动化,利用历史评审数据训练模型以识别潜在缺陷。在社区分析方面,学者构建了项目健康度评估框架,通过星标、复刻和议题解决率等多维度指标预测开源项目存活概率。这些工作共同推动了软件仓库挖掘领域的理论深化与方法创新。
以上内容由遇见数据集搜集并总结生成



