和多样化。这意味着这些工具可以帮助保持人员快速响应社区成员发布的问题或反馈,以便他们保持热情参与,且不会感到厌倦并转向其他项目。
一些开源社区有大量的贡献者,而其他一些开源社区则成员较少。项目质量监测工具需要能够适用于各种规模的项目。
“关于现有的工具和系统,我希望我们不需要自己创建任何工具或技术,就能很快就能实现公司的开源项目办公室目标。他们应该能够找到并使用现有的开源工具来管理他们的开源项目。”
Jeff McAffer[4] – 微软开源项目办公室经理
以下是一些最受欢迎且实用的项目数据统计和项目质量跟踪工具:
◈ CatWatch[34] - CatWatch 是来自 Zalando 的一款开源指标仪表板,可为您的 GitHub 帐户获取 GitHub 统计信息,帮助处理您的 GitHub 数据并保存在数据库中。这些数据反映了您的开源项目的受欢迎程度,您的开源项目的最活跃的贡献者,以及其他有趣的统计信息。
◈ Gander[35] - Gander 是一款为快速查看一系列开源项目生成有用指标的仪表板。 Gander 由 PayPal 创建,专为负责运行开源项目办公室或跟踪多个开源项目的人员而设计。
◈ GHCrawler[36] - 由微软创建的 GHCrawler,是一款 GitHub API 爬行程序, 用于爬取 GitHub 托管的项目并自动追踪、检索和存储其内容。GHCrawler 主要适用于尝试跟踪组织与数据存储。
◈ Gittagstats[37] – Gittagstats 是一款根据 Git 仓库的一组标签生成统计数据报告的工具。该工具由 Qualcomm 创建。
◈ Grimoire Lab[38] – Bitergia 拥有各种各样的开源工具以计量开源项目的统计数据,从邮件列表到 meetup 网站的小组。
◈ OSS-dashboard[39] –来自亚马逊的开源项目仪表板,是一款多功能仪表板,可用于一次同时查看和监视许多GitHub组织和/或用户。
◈ OSS Tracker[40] - 来自 Netflix 的 OSS Tracker,收集有关 GitHub 组织的数据,并在单个用户界面中将数据整合到该组织内的所有项目中。所有数据存储库都会被列示,度量指标也会按组织合并,但社区管理员也可以将项目组织到功能区域,并指定管理员分配管理和工程的 leads。
“目标是通过使用这些工具,生成透明数据和相关指标信息,用于指导组织实践。”
Chris Aniszczyk[5] – 微软开源项目办公室经理
TODO Group 还提供了一个很好的附加工具列表[41]:
◈ 有助于代码审查的工具
◈ mention-bot[42] – 由 Facebook 开发,该工具为社区成员贡献的代码自动关联潜在代码审查人,以加快审核进程。
◈ PullApprove[43] – 通过同行审查改进代码质量,执行格式准则,捕获错误代码和提供代码安全检查的形式使代码贡献或拉取请求更加规范化。
◈ sentinel[44] – 这是一款存储库管理机器人,用于审查和测试代码贡献,为存储库构建一个维护者列表,并与用户沟通拉取请求的进展状态。
◈ 有助于贡献者许可协议(CLA)的工具
◈ CLA Assistant[45] – 由 SAP 提供的 CLA Assistant 通过处理用户贡献的合法部分来简化工作流程。当代码贡献者提供代码时,Assistant 要求他们签署 CLA 并通过 GitHub 帐户对每个贡献者进行身份验证。它还会在贡献者同意 CLA 时更新拉取请求的状态,并自动要求用户在对 CLA 进行更改时为每个新的拉取请求重新签署 CLA。
[46]
◈ CLA Portal[47] – 来自 VMware 的 CLA Portal 添加了一个工作流程,以使贡献者能够在 GitHub 存储库中签署关于拉取请求的贡献者许可协议。当开发人员发出拉取请求时,会提示他们在需要时签署协议。同时包括一个为 CLA 创作、CLA-to-project 绘制和协议审查建立的管理员界面。
◈ DCOB[48] – 一款开发者原产地证书(DCO)机器人,它有助于为拉取请求中的每一个代码变更执行开发者原产地证书(DCO) 的签署取舍。DCOB 按照开发者原产地证书(DCO)[49]的要求为每一个被认可的代码变更设置状态。
◈ 公司规模内的 GitHub 管理
◈ hubcommander[50] - 一款用于 GitHub 组织管理的 Slack 机器人,HubCommander 使用聊天操作或对话驱动的开发来帮助管理 GitHub 项目。它创建了一种简单的方式来完成优先的 GitHub 组织管理任务, 而无需为您的GitHub组织成员授予管理或所有者的权限
◈ opensource-portal[51] – 由微软研发的工具,旨在帮助大型企业进行大规模的 GitHub 管理操作。这是微软开源项目办公室提供的一套工具之一。
◈ settings[52] -此应用程序将 .github/settings.yml 中定义的存储库设置同步到 GitHub 中,从而启用存储库的拉取请求。
◈ zappr[53] - Zappr 是一款 GitHub 集成工具,用于促进项目工作流程。来自 Zalando 的 zappr 帮助开发人员提高生产力,同时通过消除有关拉取请求审批的瓶颈并帮助项目所有者在合并到项目主要分支之前暂停劣质拉取请求的方式,提高开源项目质量。
◈ 提高项目质量的工具:
◈ CII Best Practices Badging[54] – 来自 Linux 基金会的 CII Best Practices Badge 是 FLOSS 项目展示其遵循最佳实践的方式。通过使用这个 Web 应用程序,项目可以自愿进行免费的自我认证来解释他们如何遵循最佳实践。
◈ CodeClimate[55] - Code Climate 授权组织通过在整个开发流程中引入完全可配置的测试覆盖率和可维护性数据来控制其代码质量。它对开源项目是完全免费的!
用于沟通与合作的工具
当然,开源的发展并不仅仅关于代码的开发。它还需要在企业内外部从事项目工作的不同群体之间以及公司开源项目办公室的工作人员之间建立良好的沟通与合作。
为了达到上述目标,开发人员可以依靠他们可能已经应用于其他项目的工具,例如 Internet Relay Chat(IRC)[56],开发人员可以发布与开源开发相关的问题并快速收到回复[57]。另一个例子是 TWiki[58],它是一个开源企业 Wiki 和 Web 协作的平台,开发人员可以在其中讨论代码和项目及相关主题。
此外,企业还可以通过社交媒体平台,门户网站,开源项目存储库和其他能够进行输入、提问和讨论的平台促进沟通交流。
其他有用的工具还包括 Facebook 公司的 mention-bot[59],它可以通过自动关联潜在审查者来获得拉取请的快速输入周转以审查代码。当 GitHub 目变得太大导致社区成员无法订阅项目的所有通知时,这一工具尤其值得推荐。
然后是 Slack[60],这是