Skip to main content
Skip to content

在 GitHub Copilot 应用中查看和修复安全警报

使用适用于code scanning的GitHub Copilot app安全扩展与代码一起处理GitHub警报。

谁可以使用此功能?

所有 Copilot 计划均可使用 GitHub Copilot app。
下载 GitHub Copilot app

注意

GitHub安全扩展插件处于公开预览阶段,且可能会更改。

关于GitHub安全扩展

通过 GitHub 安全扩展插件,你可以查找、了解和修复 code scanning 警报,而无需离开 GitHub Copilot app。 还可以在打开拉取请求之前查看本地更改是否有新漏洞。

将该扩展作为 github-security 插件的一部分进行安装。 该扩展提供了一个标记为 “安全性” 的画布,你可以在其中处理现有警报,并在会话旁边运行本地安全评审。

Prerequisites

若要使用 GitHub 安全扩展插件,需要:

  • GitHub Copilot app计划和已登录到你的GitHub帐户的Copilot。 请参阅“GitHub Copilot 应用入门”。
  • 在企业托管设置下安装 github-security 插件的权限(如果已配置)。

如果使用 Copilot Business 或 Copilot Enterprise,则必须启用 GitHub Copilot app 策略。 如果阻止了对应用或插件的访问,请联系管理员。

若要在安全画布中查看存储库的现有 code scanning 警报,您还需要具有对该存储库警报的访问权限,并启用 code scanning。 专用仓库需要 GitHub Code Security。 请参阅“配置代码扫描的默认设置”。

该扩展支持位于 GitHub.com 和 GitHub Enterprise Cloud 上且支持数据驻留的存储库。 不支持 GitHub Enterprise Server。

无需启用 code scanning 或拥有 GitHub Code Security 许可证即可运行本地安全评审。

安装 GitHub 安全扩展插件

若要使用 Copilot CLI 从终端安装插件,请输入:

Shell
copilot plugin install github-security@awesome-copilot

或者,在 GitHub Copilot app 安装插件:

  1. 在应用边栏中,单击“ 自定义”。
  2. 在搜索栏中,搜索 github-security。
  3. 在 插件 下,找到“github-security”,然后单击 + 安装。

安装后,会自动启用插件及其扩展。

在安全画布中查看代码扫描警报

使用扩展查看存储库中处于打开状态的code scanning警报,按严重性排序。 必须为存储库启用 Code scanning,并且必须有权访问其警报。

  1. 为要处理的存储库启动新会话。
  2. 如果安全画布尚未打开,请单击 ,将鼠标悬停在 画布 上,然后单击 安全。
  3. 在扩展的安全画布主页上,单击 Code scanning“调查结果”。
  4. 若要缩小列表范围,请在画布的右上角单击 以显示搜索和筛选控件。
  5. 单击警报的标题可查看其描述、严重性和画布中受影响的代码。

检查警报关联的拉取请求,查看是否已经有人在着手修复。 若要打开 GitHub完整的警报页,请将鼠标悬停在警报的行上,单击 ,然后单击 在浏览器中打开。

该扩展显示 code scanning 警报,而不是 Dependabot 或 secret scanning 警报。

了解和修复警报

“ 解释 ”和 “修复 ”按钮要求 Copilot 会话中的代理处理所选 code scanning 警报:

  • 解释要求智能体解释这些警报,以便您在决定如何解决这些漏洞之前先了解它们。
  • Fix 要求代理更改你的代码以解决警报问题。
  1. 若要处理单个警报,请单击它以打开其详细信息,或将鼠标悬停在调查结果列表中的该警报上,以显示 “解释”和 “修复”按钮。 若要处理多个警报,请选择它们旁边的复选框。
  2. 单击“解释”或“修复”按钮。
  3. 查看代理在会话中的响应。 如果您请求了修复,请查看差异并运行项目的相关测试。
  4. 继续对话,根据需要调整修复方案。

当您单击修复时,Copilot仅会更改您的本地工作副本。 它不会提交更改、推送更改或打开拉取请求。 如果对更改感到满意,请提交并推送这些更改,并通过正常的评审过程。

本地修补程序不会关闭 code scanning 警报。 修复到达受影响的分支并 code scanning 再次运行后,它会确定警报是否已解决。 请参阅“解决代码扫描警报”。

还可以直接在聊天中向 Copilot 询问有关你的警报的问题。 例如:

Copilot prompt
Explain the highest-severity open code scanning alert in this
repository and suggest how I could fix it. Do not change any files.

安全扩展插件的工具遵循应用的工具权限设置。 如果需要审批,Copilot 会在使用前先征求批准,就像使用其他工具一样。

忽略警报

当您确定不需要修复该警报时,请忽略该警报,例如,因为它是误报。 需要权限才能忽略存储库中的 code scanning 警报。

与在本地修复代码不同,关闭警报会在 GitHub 上更新它。

  1. 单击警报详细信息页面顶部的 ,或在“发现”列表中,将鼠标悬停在警报所在行上,然后单击同一图标。
  2. 单击“ 消除”。
  3. 选择原因并添加评论,说明你作出该决定的原因。
  4. 单击“忽略发现结果”,或者,如果需要审批,请提交请求。

如果存储库中的角色要求委派的警报忽略获得批准,则扩展会提交忽略请求,而不是关闭警报。 在授权审阅者批准请求之前,提醒保持打开状态。 取消请求在 GitHub 上审核,而不是在扩展中。

审查本地更改中的新漏洞

在会话的安全画布中,可以要求 Copilot 代理在打开拉取请求之前检查会话的当前更改是否存在漏洞。 还可以使用 /security-review 斜杠命令启动评审。 这是对您的更改进行的重点审查,而不是完整的存储库安全审核,也不能替代 code scanning。

  1. 打开正在进行的代码更改的活动会话。
  2. 如果安全画布尚未打开,请单击 ,将鼠标悬停在 画布上,然后单击“ 安全性”。
  3. 在扩展的安全画布主页的“安全审核”下,单击“开始审核”。 或者,在会话的提示框中,键入 /security-review 并按 Enter。
  4. 查看画布中的本地结果。 选择发现项,然后单击“解释”或“修复”按钮,让代理解释这些发现项或更改您的代码以解决这些问题。
  5. 更改代码后,再次运行评审。 画布会指示自上次审阅以来代码是否已更改。

若要返回上一次本地评审的评审结果,请单击扩展的安全画布主页上的 “上次评审结果”。

本地评审结果与 GitHub 上的 code scanning 警报分开。 运行本地审核不会启用 code scanning。

AI 用法

单击“ 解释 ”或 “修复 ”按钮或启动安全评审时, Copilot 代理将使用在应用中选择的模型,并像其他提示一样使用 AI credits 。 在画布中浏览和关闭警报不会使用 AI。