github-patches
收藏Hugging Face2025-06-15 更新2025-06-16 收录
下载链接:
https://huggingface.co/datasets/rasdani/github-patches
下载链接
链接失效反馈官方服务:
资源简介:
该数据集包含in_source_id、issue、before_files、after_files和pr_diff等字段,before_files和after_files字段为列表类型,每个列表项包含content和path信息。数据集分为训练集(train),共有69711个样本,总大小为7.1GB。下载大小为2.6GB。
This dataset comprises the fields including in_source_id, issue, before_files, after_files, and pr_diff. Both before_files and after_files are list-type fields, where each list entry contains content and path information. The dataset is split into a training set (train) with a total of 69,711 samples, having an overall size of 7.1 GB and a download size of 2.6 GB.
创建时间:
2025-06-09
搜集汇总
数据集介绍

构建方式
github-patches数据集通过系统化采集GitHub平台上的代码变更记录构建而成,其核心数据来源于开源项目的pull request差异文件(pr_diff)。研究团队采用分布式爬虫技术,精准捕获每次代码提交前后的文件状态(before_files/after_files),并关联对应的issue讨论内容,形成完整的代码演进轨迹。数据清洗阶段通过哈希去重和语法验证确保样本质量,最终构建出包含69,711个高质量代码变更实例的语料库。
特点
该数据集以多维结构呈现代码变更过程,不仅包含完整的文件级前后对比内容,还保留了原始路径信息(path)和issue上下文。其特色在于同时提供抽象差异描述(pr_diff)和具体文件内容变更(content),支持从语法到语义的多层次分析。数据覆盖多种编程语言和项目规模,时间跨度广,能够反映真实开发场景中代码演进的复杂模式,为软件工程研究提供丰富的实证基础。
使用方法
使用该数据集时,可通过HuggingFace数据集库直接加载train分割,其标准化的特征结构支持快速访问代码变更单元。典型应用场景包括:解析pr_diff字段进行自动补丁生成研究,对比before_files/after_files训练代码修复模型,或结合issue文本实现因果分析。数据采用分片存储设计,支持流式读取以处理大规模实例,研究者可根据路径字段过滤特定语言或项目类型的子集进行针对性实验。
背景与挑战
背景概述
github-patches数据集是近年来在软件工程与代码自动修复领域兴起的重要资源,由开源社区的研究团队构建。该数据集聚焦于GitHub平台上真实存在的代码补丁(patches),通过系统化收集pull request中的差异文件(diff files)、问题描述(issue)及前后代码版本(before_files和after_files),为代码变更分析提供了丰富的实证数据。其核心研究问题在于探索自动化程序修复(APR)的可行路径,以及如何通过机器学习模型理解开发者意图与代码演化规律。该数据集自发布以来,显著促进了智能编程辅助工具、缺陷预测模型等方向的研究进展。
当前挑战
该数据集面临双重挑战:在领域问题层面,代码补丁的语义理解需要克服自然语言描述(issue)与结构化代码变更(pr_diff)的异构对齐难题,且补丁质量受开发者主观影响存在噪声;在构建技术层面,原始GitHub数据的异构性导致需设计复杂的爬取管道,而跨项目代码的标准化处理(如路径归一化、依赖解析)亦消耗大量计算资源。此外,敏感信息过滤与开源协议合规性审查进一步增加了数据集清洗的复杂度。
常用场景
经典使用场景
在软件工程与代码维护领域,github-patches数据集为研究代码变更模式提供了丰富的实证基础。该数据集通过记录GitHub上pull request前后的文件差异,完整呈现了开发者修改代码的具体内容与路径,使得研究者能够深入分析代码演化的微观机制。其典型应用场景包括自动化代码审查、缺陷预测模型构建以及代码补全系统的训练,为理解开源社区协作模式提供了数据支撑。
解决学术问题
该数据集有效解决了代码变更研究中真实数据稀缺的核心问题。学术界长期受限于人工标注数据集规模小、覆盖面窄的困境,github-patches通过海量真实的代码修改记录,支持了代码异味检测、变更影响分析等关键研究方向。特别是其包含的完整前后文件对比,为量化代码质量改进、建模开发者行为模式提供了不可多得的研究素材,推动了软件维护领域的实证研究进展。
衍生相关工作
围绕该数据集已产生多项标志性研究成果,包括基于深度学习的代码变更生成模型CodeTransformer、缺陷预测框架PatchSim等。这些工作通过挖掘数据集中隐含的代码演化规律,开创了智能编程辅助的新范式。部分研究进一步扩展了数据集应用边界,如将代码变更记录与issue追踪系统关联,建立了软件维护全生命周期的分析框架。
以上内容由遇见数据集搜集并总结生成



