合并请求里怎么看代码安全扫描结果

简介: 想知道拉取请求能不能放心合并,先看状态检查里的 AngusSecurity 这一行:徽章给出结论,说明文字给出原因,点「打开仓安全详情」才能看到具体是哪个文件或依赖有问题。每种提示对应什么结论,以及看不到这一行时怎么查,都写在文中。

这篇讲拉取请求上的安全检查结果怎么看,每一句说明是什么意思。看完你可以在 状态检查 里读 AngusSecurity 这一行是成功还是失败,再点 打开仓安全详情,看是哪个文件或哪条依赖有问题。

下面以仓库 xlliu/e2e-license-gate 的拉取请求 #1 为例。#1 的 AngusSecurity 现在是成功,说明文字是「提交 1f78310a 的漏洞门禁与许可证门禁均已通过」。这里的「门禁」指达到条件就拦住合并的规则:漏洞门禁按漏洞数量判断,许可证门禁按依赖使用的开源许可证判断。拉取请求里只显示这一句结论,明细都在仓库安全详情页。

安全检查在团队版、企业版和云服务中提供,并且需要先接入 AngusSecurity。下面只查看已有的扫描结果,不需要点 开始扫描,也不需要修改发现的处置状态。

分支上有了新提交之后,结论写到状态检查,再进入仓库安全详情页

1. 结论在哪里

打开拉取请求后,停留在 对话 页签,页面中部有一张 状态检查 卡片。状态检查汇总了拉取请求上的各项自动检查,每一项占一行,显示进行中、成功或失败;安全检查这一项的名称是 AngusSecurity。

和其他检查相比,AngusSecurity 这一行多了两样内容:

  • 名称下面的说明文字,写的是这次判定的原因。
  • 右侧的 打开仓安全详情,点击后进入这个仓库的安全详情页。

以 #1 为例,它的标题是 e2e GIT-08 pending gate,已经从 e2e-git08 合并进 main,页面地址是 https://git.anguskit.com/pulls/xlliu/e2e-license-gate/1。

#1 的状态检查:AngusSecurity 成功,漏洞门禁与许可证门禁均已通过

同一仓库里已经合并的 #4 显示的是另一句成功文案:「提交 d3ebc5ab 的漏洞门禁已通过」。它少了许可证门禁,是因为 #4 的检查采用的是后来一次跳过了许可证检查的扫描。这两种成功文案,下一节的表格里都有解释。

2. 每种状态是什么意思

徽章上的 进行中、成功、失败 只表示检查状态,同一个徽章可能对应好几种原因,所以要看说明文字才能分清。下表列出了产品里的原句,其中 {8 位} 表示提交号的前 8 位,{n} 表示数量:

徽章 说明文字 含义
进行中 等待对提交 {8 位} 的安全检查 这个提交还没有检查任务
进行中 提交 {8 位} 的安全检查进行中 任务在排队或正在扫描
进行中 提交 {8 位} 的检查结果不完整,请重新检查 扫描结果不完整,需要重新扫描
进行中 还没有可检查的提交 拉取请求上还没有提交号
失败 提交 {8 位} 的安全检查失败,请重新检查 扫描任务本身执行失败
失败 漏洞门禁未通过:严重 {n}、高危 {n}、中危 {n}、低危 {n} 漏洞数量达到仓库设定的阈值
失败 许可证门禁未通过 许可证门禁已开启,这次许可证检查没通过
失败 许可证门禁已启用,但这次检查没有包含许可证合规 许可证门禁已开启,但这次扫描没查许可证
成功 提交 {8 位} 的漏洞门禁已通过 漏洞未达阈值,许可证门禁没参与判定
成功 提交 {8 位} 的漏洞门禁与许可证门禁均已通过 两道门禁都通过,#1 就是这一句

结合这个仓库,还有几点需要说明:

  • 结论只采用这个提交最新一次已完成的扫描。如果往源分支推送了新提交,还没合并的拉取请求会回到「等待对提交 … 的安全检查」,不会沿用上一个提交的结论。
  • 漏洞阈值按优先级取值:仓库自己设置了就用仓库的;仓库没设置就用租户默认值;租户也没设置时,默认是 高危。以本仓库为例,租户默认是 低危,但 e2e-license-gate 自己设成了 高危,所以按高危判定。阈值是高危时只统计严重和高危两级,即使中危、低危的数量不为 0,这一行仍可能显示成功。
  • 代码质量 的结果不参与这一行的判定。
  • 示例里的 #1、#4 都显示成功,但仓库概览上仍写着「许可证门禁未通过,拒绝合并」,原因是仓库里还留着一条处于开放状态的 GPL-3.0-only 许可证发现。已经合并的拉取请求,检查行不会因为后来出现的发现而自动改写。

3. 点进去看具体问题

点 打开仓安全详情,会进入仓库安全详情页,地址是 https://git.anguskit.com/security/repos/xlliu/e2e-license-gate,默认显示 概览。以这个仓库为例,分数是 95,严重、高危、中危、低危、密钥、质量的数量都是 0,许可风险是 1。

详情页的页签依次是 概览、漏洞、依赖、密钥、许可合规、代码质量、扫描历史、设置。这个仓库当前开放的发现都在 许可合规 页签里,共两条:高危的 GPL-3.0-only,类别是强互惠;低危的 MIT,类别是宽松。许可证类别描述的是使用条件的松紧:强互惠许可证(如 GPL)要求分发软件时,把相关代码也按同样的许可证公开;宽松许可证(如 MIT)基本只要求保留版权声明,闭源产品也可以使用。

点开高危的那一条,会弹出一个详情抽屉(从页面侧边滑出的面板),里面包括:

  • 位置:package.json,组件是 e2e-with-gpl@1.0.0。
  • 许可证:GPL-3.0-only,类别是 强互惠。
  • 描述:Declared by project manifest,意思是这个许可证由项目清单文件声明。
  • 分支 / 提交:e2e-git07 @591d671。
  • 处置状态:开放。处置状态用来记录团队对这条发现的处理结论,可选值还有已知悉、已修复、已抑制、误报。每次修改都会留下处置记录,所以只是查看结果时,保持 开放 即可。
  • 两个入口:在代码中查看 和 在安全台打开。

GPL-3.0-only 发现抽屉:强互惠,位置是 package.json

修复版本 只在发现本身带有可升级的版本时才出现,一般只有依赖漏洞才有;这条是许可证发现,所以抽屉里没有修复版本。如果打开的是密钥类发现,页面会提示「密钥类 Finding 默认不展示明文片段,请在安全台查看详情。」

另外,侧栏的 安全 是跨仓库的安全台,可以集中查看所有仓库的结果,页签是 仓库风险、漏洞、密钥、许可合规、代码质量、扫描历史。

4. 看不到这一行时怎么排查

你看到的 原因 怎么处理
「尚未接入 AngusSecurity」 集成没开通 系统管理员到 管理 → 安全设置 开通
「尚未运行安全扫描」 集成已开通,但这个仓库从没扫描过 打开自动扫描,或由仓库管理员手动扫描一次
状态检查 里没有 AngusSecurity 提交还没有已完成的扫描,仓库也没打开 未通过时拒绝合并 打开自动扫描后再推送一次
一直是「等待对提交 … 的安全检查」 这个提交没有扫描任务 打开 本仓自动安全扫描 后再推送新提交,或对源分支手动扫描
侧栏没有 安全 当前是社区版 安全检查在团队版、企业版和云服务中提供

示例实例的集成已经开通。表中有两种情况需要展开说明。第一种是 状态检查 里没有 AngusSecurity:只有同时满足三个条件时才会这样,即这个提交还没有已完成的扫描、仓库没打开 未通过时拒绝合并、拉取请求上也还没有这项检查。反过来,如果扫描在创建拉取请求之前就已经完成,即使没开拒绝合并,拉取请求也会挂上已有的结论。第二种是一直停在等待:自动扫描关闭时,新提交不会自动生成扫描任务,所以说明会一直停在「等待对提交 … 的安全检查」。

除了命令行推送,在网页上修改文件并提交、在拉取请求页点击合并,也会让目标分支上有新提交,从而把扫描任务发给 AngusSecurity。不过自动扫描关闭时,这些操作同样不会触发扫描。

常见问题

AngusSecurity 失败了,还能合并吗?

示例仓库打开了 未通过时拒绝合并。打开这个开关后,合并接口会拒绝检查未通过的拉取请求,提示是「安全检查未通过,不能合并:」,后面跟着这一行的说明文字。直接把分支合并进目标分支,也受同样的限制。

网页上的合并按钮能不能点,还要另外看分支保护(为分支设置的合并规则)。分支保护规则还没加载完时,页面上任何非成功的检查都会先让按钮不可用,提示「所有必需的状态检查必须通过」。规则加载完以后,如果没有把某项检查指定为必需,按钮不会因为这一行失败而变灰;但点击合并后,服务端仍会按 未通过时拒绝合并 拒绝。

评审人需要等安全检查结束才能开始评审吗?

不需要。评审和安全检查互不依赖,各自进行。以 #1 为例,它没有指定审查者,而检查结果已经是成功。

能不能在拉取请求里直接看到漏洞列表?

不能。拉取请求里只显示这一行结论和 打开仓安全详情,具体的文件、依赖和许可证发现都在仓库安全详情页里。

小结

拉取请求 状态检查 里的 AngusSecurity 行,给出的是该提交最新一次扫描的门禁结论。徽章只说明进行中、成功还是失败,原因要看说明文字,从中可以分清是扫描本身失败、漏洞数量达到阈值,还是许可证没通过。要看具体问题,就点 打开仓安全详情 进入仓库安全详情页。以 xlliu/e2e-license-gate 为例,#1 显示「提交 1f78310a 的漏洞门禁与许可证门禁均已通过」,而仓库当前的开放发现是位于 package.json 的 GPL-3.0-only,类别是强互惠。

安全检查在团队版、企业版和云服务中提供,社区版没有 安全 菜单。

结论: 拉取请求状态检查里的 AngusSecurity 行给出该提交最新一次扫描的门禁结论;要知道具体是哪个文件或依赖有问题,点 打开仓安全详情 进入仓库安全详情页查看。

相关文章
|
云安全 安全 网络安全
|
15天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
3568 0
|
8天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2042 2
|
14天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
2431 45
|
11天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
1467 3
|
8天前
|
开发者 索引
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
Open Plugin Market 是一个开放插件索引平台,收录800+优质DSH插件,支持分类浏览、智能推荐与随机发现。无需安装市场,粘贴索引地址即可一键接入,网页版直访 dshopen.org,助力小开发者被看见。(239字)
1903 1
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
|
7天前
|
人工智能 Linux API
Magpie, 轻量本地AI网关!免费Token用不完!
Magpie 是开源AI编程模型调度网关,上线一月获1.8万Star。它通过本地高性能网关统一托管多平台API密钥、账号与免费额度,实现跨Agent的模型秒级切换、静默额度轮换与资源复用,显著降低碎片化管理成本。(239字)
Magpie, 轻量本地AI网关!免费Token用不完!
|
8天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
4天前
|
人工智能 安全 API
2026 年阿里云双 11|百炼大模型 API 指南:免费 Token 领取、API Key 生成、代码调用实战教程
对于零基础的AI开发者、技术爱好者和小型开发团队来说,低成本、低门槛调用主流大模型接口,是开启AI项目原型开发的必经之路。百炼大模型服务平台汇集了百余款主流大模型,面向新用户提供大规模免费推理额度,不需要预先充值,即可完成文本生成、逻辑推理、代码编写、多模态解析等各类开发验证工作。很多新手在初次接触平台时,常常遇到不清楚免费额度规则、不知道如何生成API‑Key、环境配置错误、调用接口持续报错等一系列问题。
585 1