代码审查网络防火墙
在专属 Internet access 区域配置允许范围,并理解 setup 与 MCP 的覆盖边界。
代码审查支持组织和仓库级防火墙配置,位于 Settings → Copilot → Internet access 的 code review 区域。该区域与 cloud agent 独立;配置共享 MCP 服务器不会自动把两者防火墙合成同一策略。
默认行为与推荐列表
Copilot 默认限制互联网访问,并启用推荐 allowlist,便于下载常见依赖。它始终允许与 GitHub 交互所需的一组主机;推荐列表覆盖常见系统包源、容器与语言包注册表、证书机构及 Playwright 浏览器下载主机。
这些分类不等于任意同类域名都已允许,具体地址仍看官方 allowlist reference 或当前阻止日志。旧 Actions variables 中保存的配置会保留在新的设置页。
组织与仓库的关系
| 组织设置 | 默认或选项 | 下层行为 |
|---|---|---|
| Enable firewall | Enabled、Disabled、Let repositories decide,默认最后一项 | 只有允许仓库决定时,下层才能切换 |
| Recommended allowlist | 同上 | 组织明确开关后,下层不能覆盖 |
| Allow repository custom rules | 默认 Enabled,可 Disabled | 控制仓库能否添加自定义允许规则 |
| Organization custom allowlist | 自定义域名或 URL | 仓库不能删除组织项 |
组织与仓库的自定义允许项合并,不是取交集。仓库列表为空不代表取消组织已经放行的地址。
域名与 URL 规则
域名规则允许域名本身及子域名,例如 packages.contoso.corp 也包括 prod.packages.contoso.corp。URL 规则限制 scheme、host、指定路径及后代路径,例如 https://packages.contoso.corp/project-1/ 不因此允许其他项目、主机或协议。
在 Custom allowlist 添加条目后,检查并 Save changes。只需要一个项目路径时,可以选比整域名更窄的 URL 范围。
防火墙实际覆盖什么
官方限制说明指出:集成防火墙只直接作用于代理通过 Bash 工具启动的进程,不直接约束 MCP server 进程或 setup steps 启动的进程。使用 MCP 时其他受控代理进程仍受限制,不能据此说 MCP 会关闭全部网络控制。
它只在 GitHub Actions appliance 环境生效,不覆盖外部进程,复杂攻击也可能绕过,不能当作全部执行路径的完整隔离保证。自托管网络需按runner 专题自行控制,并满足审查服务的出站要求。
排查连接阻止
先判断发出请求的是受控 Bash 进程、setup 还是 MCP;再检查所属 code review 区域的有效组织和仓库规则。官方会在 PR 正文或评论提示被阻止的地址和命令,适合判断需要的最小允许项。
关闭防火墙会允许连接任意主机,不是所有依赖安装失败的默认修复。若规则被上层锁定,应由相应管理员调整真实政策,而不是反复修改无效的仓库开关。