jenkinsci/forensics-api-plugin

GitHub: jenkinsci/forensics-api-plugin

Jenkins 取证 API 插件为 Jenkins 提供挖掘与分析源码仓库数据的统一 API,弥补构建上下文物证与统计能力的不足。

Stars: 17 | Forks: 29

# Jenkins 取证 API 插件 [![加入聊天](https://badges.gitter.im/jenkinsci/warnings-plugin.svg)](https://gitter.im/jenkinsci/warnings-plugin?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![GitHub Actions](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e3b0917c10052702.svg)](https://github.com/jenkinsci/forensics-api-plugin/actions) 此取证 API Jenkins 插件定义了一个用于挖掘和分析源代码仓库数据的 API。 该 API 插件提供以下服务: - **Blames**:显示文件的特定行最后被哪个修订版本和作者修改。此信息可用于追踪引入代码片段的原始提交。 - **文件统计**:以《代码即犯罪现场》\[Adam Tornhill, 2013年11月\]的风格增量收集所有仓库文件的全球提交统计信息。 这包括: - 提交次数 - 不同作者数量 - 创建时间 - 最后修改时间 - 代码行数(来自提交详情) - 代码变更(自创建以来更改的行数) - **提交追踪**:追踪构建中包含的所有新提交。利用此信息,插件可以搜索包含特定提交的构建。 - **提交统计**:收集构建或一系列构建中所有新提交的提交统计信息(例如,拉取请求的所有提交)。这包括: - 提交次数 - 修改文件数量 - 新增和删除的行数 - **参考构建**:多个报告构建统计信息(测试结果、代码覆盖率、指标、静态分析警告)的插件通常以两种方式展示其报告:要么是绝对报告(例如,测试总数或警告数、整体代码覆盖率),要么是相对增量报告(例如,新增测试、增加或减少的覆盖率、新增或已修复的警告)。为了计算相对增量报告,插件需要仔细选择另一个构建来与当前结果进行比较(即所谓的*参考构建*)。 对于仅构建主分支的简单 Jenkins 任务,参考构建将从同一任务的前一个构建中选择。对于更复杂的分支源项目(即构建多个分支和拉取请求且采用连接作业层次结构的项目),从构建实际目标分支的作业中选择参考构建更有意义(即当前变更将被合并到的分支)。通常我们关注的是与主分支(或其它目标分支)相比某个分支或拉取请求发生了哪些变更:例如,如果团队合并这些变更,代码覆盖率将如何变化。选择正确的参考构建并非易事,因为项目的某个主分支会比特定功能或修复分支更频繁地演进。 - **仓库浏览器**:为提交提供 [RepositoryBrowser](https://javadoc.jenkins.io/hudson/scm/RepositoryBrowser.html)。由于原始 Jenkins 界面没有用于生成简单提交链接的 API,此装饰器添加了此类功能。请注意,此 API 不仅获取这些链接,还将其渲染为 HTML `a` 标签。 ## 实现方式 [Jenkins Git Forensics Plugin](https://github.com/jenkinsci/git-forensics-plugin) 是一个实现对应扩展点的 Git 版本控制插件。其它版本控制系统尚未支持。 ## 用户文档 目前此 API 仅由 [Jenkins Git Forensics Plugin](https://github.com/jenkinsci/git-forensics-plugin) 实现。 因此请参考该插件的 [文档](https://github.com/jenkinsci/git-forensics-plugin/blob/master/README.md) 了解如何使用这些功能。
标签:API 插件, Blame, Code as a Crime Scene, Forensics API, Jenkins Forensics, Jenkins 插件, JS文件枚举, Pull Request 分析, 云安全监控, 代码变更统计, 代码挖掘, 代码行历史, 代码覆盖率, 作者追踪, 域名枚举, 增量统计, 安全可观测性, 开源框架, 持续集成, 提交统计, 文件统计, 构建报告, 构建跟踪, 源代码仓库, 源码分析, 版本控制, 网络安全研究, 静态分析