注意
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 从终端安装插件,请输入:
copilot plugin install github-security@awesome-copilot
copilot plugin install github-security@awesome-copilot
或者,在 GitHub Copilot app 安装插件:
- 在应用边栏中,单击“ 自定义”。
- 在搜索栏中,搜索
github-security。 - 在 插件 下,找到“github-security”,然后单击 + 安装。
安装后,会自动启用插件及其扩展。
在安全画布中查看代码扫描警报
使用扩展查看存储库中处于打开状态的code scanning警报,按严重性排序。 必须为存储库启用 Code scanning,并且必须有权访问其警报。
- 为要处理的存储库启动新会话。
- 如果安全画布尚未打开,请单击 ,将鼠标悬停在 画布 上,然后单击 安全。
- 在扩展的安全画布主页上,单击 Code scanning“调查结果”。
- 若要缩小列表范围,请在画布的右上角单击 以显示搜索和筛选控件。
- 单击警报的标题可查看其描述、严重性和画布中受影响的代码。
检查警报关联的拉取请求,查看是否已经有人在着手修复。 若要打开 GitHub完整的警报页,请将鼠标悬停在警报的行上,单击 ,然后单击 在浏览器中打开。
该扩展显示 code scanning 警报,而不是 Dependabot 或 secret scanning 警报。
了解和修复警报
“ 解释 ”和 “修复 ”按钮要求 Copilot 会话中的代理处理所选 code scanning 警报:
- 解释要求智能体解释这些警报,以便您在决定如何解决这些漏洞之前先了解它们。
- Fix 要求代理更改你的代码以解决警报问题。
- 若要处理单个警报,请单击它以打开其详细信息,或将鼠标悬停在调查结果列表中的该警报上,以显示 “解释”和 “修复”按钮。 若要处理多个警报,请选择它们旁边的复选框。
- 单击“解释”或“修复”按钮。
- 查看代理在会话中的响应。 如果您请求了修复,请查看差异并运行项目的相关测试。
- 继续对话,根据需要调整修复方案。
当您单击修复时,Copilot仅会更改您的本地工作副本。 它不会提交更改、推送更改或打开拉取请求。 如果对更改感到满意,请提交并推送这些更改,并通过正常的评审过程。
本地修补程序不会关闭 code scanning 警报。 修复到达受影响的分支并 code scanning 再次运行后,它会确定警报是否已解决。 请参阅“解决代码扫描警报”。
还可以直接在聊天中向 Copilot 询问有关你的警报的问题。 例如:
Explain the highest-severity open code scanning alert in this repository and suggest how I could fix it. Do not change any files.
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 上更新它。
- 单击警报详细信息页面顶部的 ,或在“发现”列表中,将鼠标悬停在警报所在行上,然后单击同一图标。
- 单击“ 消除”。
- 选择原因并添加评论,说明你作出该决定的原因。
- 单击“忽略发现结果”,或者,如果需要审批,请提交请求。
如果存储库中的角色要求委派的警报忽略获得批准,则扩展会提交忽略请求,而不是关闭警报。 在授权审阅者批准请求之前,提醒保持打开状态。 取消请求在 GitHub 上审核,而不是在扩展中。
审查本地更改中的新漏洞
在会话的安全画布中,可以要求 Copilot 代理在打开拉取请求之前检查会话的当前更改是否存在漏洞。 还可以使用 /security-review 斜杠命令启动评审。 这是对您的更改进行的重点审查,而不是完整的存储库安全审核,也不能替代 code scanning。
- 打开正在进行的代码更改的活动会话。
- 如果安全画布尚未打开,请单击 ,将鼠标悬停在 画布上,然后单击“ 安全性”。
- 在扩展的安全画布主页的“安全审核”下,单击“开始审核”。 或者,在会话的提示框中,键入
/security-review并按 Enter。 - 查看画布中的本地结果。 选择发现项,然后单击“解释”或“修复”按钮,让代理解释这些发现项或更改您的代码以解决这些问题。
- 更改代码后,再次运行评审。 画布会指示自上次审阅以来代码是否已更改。
若要返回上一次本地评审的评审结果,请单击扩展的安全画布主页上的 “上次评审结果”。
本地评审结果与 GitHub 上的 code scanning 警报分开。 运行本地审核不会启用 code scanning。
AI 用法
单击“ 解释 ”或 “修复 ”按钮或启动安全评审时, Copilot 代理将使用在应用中选择的模型,并像其他提示一样使用 AI credits 。 在画布中浏览和关闭警报不会使用 AI。