工具旨在通过添加欠缺的功能来改进GitHub本身,例如支持检查开发者原产地证书(DCO)语句,以确保代码可以被合法授权且应用于开源项目中。
GitHub 在代码审查方面也存在一些不足之处,所以有其他可用的工具可以自动将有问题的代码发回给创建它的贡献者,然后要求他们检查并做出必要的修改。GitHub 没有办法强迫任何人检查他们的代码,而这些聪明的工具解决了这一问题,使工作流程得以改善。
其他 GitHub 特定工具的功能用于提高 GitHub 的性能指标,这些功能通常针对特定项目,而不是提供给整个组织详细信息。对于在多个 GitHub 项目中维护许多开源代码库的公司而言,需要更好的工具来组织和汇总它们,使之有意义。亚马逊、Netflix 和微软提供了大量这样的工具来帮助完成这些任务。
以下是一些最流行和实用的源代码管理工具,可以简化并帮助您的 GitHub 运作:
源代码扫描和许可证合规性
◈ Antepedia Reporter[9] —— Reporter 是 Antepedia 的一款商业收费应用程序,用于生成报告,可以让开发人员、项目经理、法律顾问和其他人员创建关于您代码库中的开放源代码与公共和私有组件的许可证合规性审计和知识产权管理报告。
◈ Black Duck Hub[10] – 这一商业 Hub 服务,可以扫描代码以识别所有嵌入式开源组件,然后自动搜索已知漏洞并进行修复。在您的代码中发现新的漏洞时它可以发送警报。
◈ Black Duck Protex[11] – Protex 是来自 Black Duck 的一款商业收费的许可证合规性管理工具,它整合了现有工具以自动扫描、识别和清点开源软件,同时执行许可证合规性和公司政策的要求。
◈ Copyright review tools[12] - 这一系列命令行工具有助于使初始版权文件的构建与之后的审查和更新更便捷。
◈ dep-checker[13] – Linux 基金会的一款依赖性检查工具,dep-checker 执行针对代码包间的链接的完整分析。
◈ FlexNet Code Insight[14] –Flexera 于 2016 年收购了许可证合规性供应商 Palamida,提供了 FlexNet Code Insight,以帮助开发人员、法律团队和安全人员自动化企业开源应用。
◈ FOSSA[15] – 这是一款商业工具,可自动执行代码依赖性跟踪和后台许可证合规性扫描。
◈ FOSSology[16] - 作为 Linux 基金会的一个项目,FOSSology 是一个开源许可证合规性软件工具包,它可以从命令行运行许可证、版权并导出控制扫描。它还包含了一个数据库和 Web UI,这些也都可用于创建合规工作流程。
◈ janitor.git[17] – Code Janitor 是一款开源工具,可帮助评估源代码是否符合开源许可证。Code Janitor 来自于 Linux 基金会,可以与其他产品一同使用以检查代码。
◈ LicenseFinder[18] – 检测您项目中所使用代码的许可证,将这些许可证与用户定义的白名单进行比较,然后提供可操作的报告。
◈ Protecode Enterprise Analyzer[19] – 这款商业应用程序用于分析和识别任何目录中的所有代码, 以确定代码的所有权并根据预先确定的内部政策确保开源许可证合规性。
◈ scancode-toolkit[20] – 来自于 nexB 的 ScanCode 工具套件扫描代码的许可证、版权和依赖性,以查找、发现和清点您代码中所使用的开放源代码和第三方组件。
◈ SPDX[21] - SPDX 规范是用于描述与软件包相关的组件、许可证和版权的标准格式。SPDX 标准通过标准化开发人员和公司之间共享许可证信息的方式,帮助遵守免费和开源的软件许可证。SPDX 规范由 Linux 基金会主办的 SPDX 工作组所开发的。该工作组提供开源工具[21]来帮助 SPDX 文档的用户。
◈ WhiteSource[22] – 通过自动且持续地扫描数十个开放源代码库,为实时管理开源组件提供授权、安全性、代码质量和报告分析。
错误跟踪
◈ Bugzilla[23] – 一款基于服务器的软件,是具有搜索记忆功能的高级查询工具,且具备集成电子邮件功能,同时也是全面的权限系统。Mozilla[24] 使用 Bugzilla 作为其错误跟踪系统。
◈ GitHub Issues[25] – 作为GitHub自身的整合反馈和错误跟踪器,GitHub Issue 可作为 GitHub 项目托管的一部分提供给用户。
◈ GitLab[26] – 这款错误跟踪工具在单个用户界面中统一了问题跟踪、代码审查、Git 存储库管理、活动流、wikis 和其他许多内容,以协助您的开源项目。
◈ JIRA[27] – 来自于 Atlassian 的 JIRA 包含自定义过滤器、开发人员工具整合、可定制的工作流程和丰富的 API,以将 JIRA 与其他应用程序整合在一起。
归档和发布管理
◈ Artifactory[28] – 同样来自 JFrog 的 Artifactory 是一款存储库管理器,它支持以任何代码语言创建的软件包。它整合了所有主要的 DevOps、持续集成与持续交付工具。
◈ Bintray[29] – 一款来自于 JFrog 的归档工具,允许公司发布他们的代码发布档案以维护更久远和更庞大文件的存储。
◈ Docker Hub[30] – 一款基于云的注册表服务,允许用户连接到代码库并构建和测试他们的图像。它还存储手动推送的图像和链接到Docker Cloud[31],以便用户可以将图像部署到项目主机。Docker Hub 是一款集中式资源,用于整个开发流程中的容器映像发现、分发和变更管理、协作与工作流程自动化。
◈ github-release[32] – GitHub 的内置功能部分,它允许用户打包并编辑[33] GitHub 项目的发布,以便其他社区成员可以使用它们。
用于跟踪项目质量的工具
随着开源项目的发展和成熟,监控和跟踪开源项目的整体质量是企业开源项目的核心任务。为了实现这一目标,您必须收集相应的工具,这些工具应当能够反映单独的开源项目的执行过程并反映单独的开源项目在数十、数百甚至数千个项目中被它们的社区接收的过程。同时,这些工具还必须兼具转化能力, 能够将收集的数据转化为体现整个开源组合中整体项目性能的有意义的、实用的且可操作的信息。
Amazon's open source program dashboard
这其中的关键是,您收集到的数据应当可以转化为关键且有用的信息 – 而不是些无用的指标,例如详细说明项目已记录了多少“观察者”明星,自项目开始以来有多少贡献者参与了该项目,亦或是缺乏重要背景资料的其他指标。
最好的项目质量监测工具还必须帮助项目团队对支持他们工作的社区做出回应,同时鼓励贡献开发者的参与