该数据集来源于ICSE 2022论文《Recommending Good First Issues in GitHub OSS Projects》,被用于验证新手任务自动化标记技术RecGFI的性能和进行新手任务相关数据分析。如需引用该文献,可参考下面格式。
@inproceedings{xiao2022recommending,
title={Recommending good first issues in GitHub OSS projects},
author={Xiao, Wenxin and He, Hao and Xu, Weiwei and Tan, Xin and Dong, Jinhao and Zhou, Migahui},
booktitle={2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE)},
pages={1830--1842},
year={2022},
organization={IEEE}
}
收集过程
使用Libraries.io数据集选择项目。首先选择JavaScript、Python、Java、TypeScript,c#, PHP, C++和C 八种在GitHub上受欢迎的编程语言,保留其中25793个拥有100个以上星标,5个贡献者,5个分支和10个开放问题的项目。然后,进一步使用GHTorrent数据集(2021年3月6日的版本)收集这些项目的所有issue,保留good first issue数量最多的前100个项目。然后确认了这些项目中53510条issue是由pull request或commit关闭,能够定位具体的issue解决者。本数据集对这53510条issue相关的数据进行了全面收集。除了新手任务自动化推荐问题,其他与GitHub issue相关的研究也可以使用本数据集。
RecGFI – GitHub Issue 数据集
由于上传文件大小受限,这里给出issuedata数据下载链接:https://zenodo.org/records/5881117
描述
该数据集来源于ICSE 2022论文《Recommending Good First Issues in GitHub OSS Projects》,被用于验证新手任务自动化标记技术RecGFI的性能和进行新手任务相关数据分析。如需引用该文献,可参考下面格式。
收集过程
使用Libraries.io数据集选择项目。首先选择JavaScript、Python、Java、TypeScript,c#, PHP, C++和C 八种在GitHub上受欢迎的编程语言,保留其中25793个拥有100个以上星标,5个贡献者,5个分支和10个开放问题的项目。然后,进一步使用GHTorrent数据集(2021年3月6日的版本)收集这些项目的所有issue,保留good first issue数量最多的前100个项目。然后确认了这些项目中53510条issue是由pull request或commit关闭,能够定位具体的issue解决者。本数据集对这53510条issue相关的数据进行了全面收集。除了新手任务自动化推荐问题,其他与GitHub issue相关的研究也可以使用本数据集。
使用方式
使用Python运行以下脚本以获取全部issue的第一个时间点(t=0)/第二个时间点(t=1)的数据。第一个时间点是issue发布时刻,第二个时间点是issue被分配/解决前。
数据集基本信息介绍
数据集文件:issuedata.json 补充信息数据:issue_id_info.csv、repo_id_info.csv 规模:53510条GitHub issue、1.59G 类型:文本、数值数据 特征维度:51 特征模块:issue内容、issue背景、issue动态、issue其他信息
特征介绍
——— issue内容 ———
title:issue标题 body:issue描述 labels:不同类型标签的数量([GFI 信号, Bug, 测试, 构建, 文档, 增强, 编码, 新功能, 困难/重要, 中等难度, 未分类, 已分类])
——— issue背景 ———
rptcmt: issue报告者在项目中贡献的commit数量 rptallcmt: issue报告者在Github上贡献的commit数量 rptiss:issue报告者在项目中报告的issue数量 rptalliss:issue报告者在Github上报告的issue数量 rptpr:issue报告者在项目中贡献的pull request数量 rptallpr:issue报告者在Github上贡献的pull request数量 rptpronum:issue报告者拥有的项目数量 rptstar:issue报告者拥有项目的星标数量 rptfoll:issue报告者的关注者数量 rpthaslabel:报告者已向issue添加标签 rpthasevent:报告者在issue中参与了任何类型的事件 rpthascomment:报告者在issue中发表了评论 rptissues:issue报告者在项目中曾报告的issue的ID rptisscmtlist:issue报告者在项目中曾报告的issue的解决者在解决issue时在项目中贡献的commit数量 ownercmt:项目所有者在项目中贡献的commit数量 ownerallcmt:项目所有者在Github上贡献的commit数量 owneriss:项目所有者在项目中报告的issue数量 owneralliss:项目所有者在Github上报告的issue数量 ownerpr:项目所有者在项目中贡献的pull request数量 ownerallpr:项目所有者在Github上的pull request数量 ownerpronum:项目所有者拥有的项目数量 ownerstar:项目所有者拥有项目的星标数量 ownerfoll:项目所有者的关注者数量 ownerissues:项目所有者在项目中曾报告的issue的ID pro_star:项目星标数量 proclspr:项目中关闭的pull request数量 procmt:项目中commit数量 contributornum:项目贡献者数量 crtclsissnum:项目中关闭issue数量 openiss:项目中开放issue数量 openissratio:项目开放issue占所有issue比例 clsisst:项目issue关闭时间的中位数(以小时计)
——— issue动态 ———
events:包含在issue中进行了以下GitHub issue事件的开发者:’labeled’、’subscribed’、’referenced’、’mentioned’、’closed’、’assigned’、’milestoned’、’unlabeled’、’moved_columns_in_project’、’locked’、’added_to_project’、’demilestoned’、’removed_from_project’、’unassigned’、’renamed’、’reopened’、’head_ref_force_pushed’、’transferred’、’unsubscribed’、’merged’、’head_ref_deleted’、’comment_deleted’、’review_requested’、’connected’、’marked_as_duplicate’和任意事件类型,用户数据包括:[userpronum,userstar,userallcmt,usercmt,userfoll,useralliss,useriss,userallpr,userpr,userissues],含义参照issue报告者的相关特征;如果用户数据为[None],则表示通过GitHub API无法获取事件操作者的名称 commentbody:issue的所有评论的文本 commentusers:涉及的所有评论者的特征,类似于’events’
——— issue其他信息 ———
issue_id, proid, owner_id, rpt_id, cls_id:issue、项目、项目所有者、issue报告者、issue解决者在GHTorrent上的ID issuet:issue创建时间 reft:issue被分配或链接到pull request的时间 clst:issue关闭时间 language:项目的编程语言 clscmt:在issue解决之前issue解决者对该存储库贡献的commit数量 usedt:解决issue所用时间 fromcmt:是否是通过commit关闭的该issue isslist: issue在项目中的ID
——— 补充信息数据 ———
repo_id_info.csv 允许用户通过issuedata.json数据集中的项目在GHTorrent中的ID (proid, 即repo_id_info.csv中的repo_id)查询仓库的所有者名称和仓库名称; issue_id_info.csv 允许用户通过issuedata.json数据集中的issue在GHTorrent中的ID (issue_id, 亦即issue_id_info.csv中的issue_id)查询issue所在仓库的所有者名称、仓库名称、issue编号和解决者在项目中贡献的commit数量。