Gemini CLI 环境净化可致 git 全面罢工,PR 给出修复

Shivansh1980 · ghdev · 2026-08-21

一个针对 google-gemini/gemini-cli 的 PR 修复了 sanitizeEnvironment() 可能产出 git 拒绝解析的 GITCONFIG 环境变量的问题:git 遇到畸形配置不会跳过而是直接中止,导致所有经由净化环境的 git 调用失败。

根因:密钥脱敏检查在 GITCONFIG 豁免之前执行(且有测试锁定此安全优先序),当某个 GITCONFIGVALUEn 因内嵌凭据被丢弃时,对应的 GITCONFIGKEYn 和 GITCONFIGCOUNT 仍保留,形成致命空洞。典型触发场景是带内嵌凭据的 url.<base>.insteadOf 重写与 http.extraheader bearer token,在 CI 严格净化模式下同样触发。

第二条路径:ShellExecutionService.prepareExecution() 用 parseInt 解析继承的 GITCONFIGCOUNT,非数字值返回 NaN,覆盖项落到 GITCONFIGKEYNaN,发出 bogus count 错误。修复涉及 environmentSanitization.ts 等。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →