You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用go-git通过OAuth token克隆私有Git仓库返回400错误如何解决?

解决方案
  • 替换认证方式:go-git的TokenAuth默认使用Bearer前缀的认证头,而GitHub等Git平台的OAuth/PAT认证要求使用Basic认证模式,只需要将认证逻辑替换为BasicAuth即可,用户名可填写任意非空值(通常填oauth2或token),密码字段填你的OAuth Token值。修正后的代码如下:
_, err = git.PlainClone(projectRoot, false, &git.CloneOptions{
    Auth:     &gitHttp.BasicAuth{
        Username: "oauth2", // 此处可填任意非空字符串,GitHub等平台不校验
        Password: "<oauth-token>",
    },
    URL:      e.Repo,
    Progress: os.Stdout,
})
  • 检查Token权限:确认你生成的OAuth Token/PAT已开启对应私有仓库的读取权限,以GitHub为例需要勾选repo权限域,如果是组织内私有仓库,还需要确认组织未限制第三方PAT的访问权限。
  • 检查仓库URL格式:不要在Git仓库URL中提前嵌入认证信息(例如https://<token>@github.com/xxx/xxx.git),该格式会和Auth配置的认证信息冲突,引发400错误。

内容的提问来源于stack exchange,提问作者Keval Bhogayata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:09:00