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

调用Github API /users/$user/repos无法获取私有仓库怎么办

问题排查解决方案

1. 接口端点调用错误(最常见原因)

你当前使用的 https://api.github.com/users/$user/repos 是公开用户仓库查询接口,无论是否携带认证信息,默认仅返回对应用户的公开仓库。
要获取当前认证账号的所有仓库(含私有),需要改用认证用户专属接口:
https://api.github.com/user/repos
该接口不需要填写用户名,会自动返回当前Bearer Token所属账号的仓库列表。

2. 缺少必要查询参数

如果确认使用了正确的接口仍无法返回私有仓库,可以在请求URL后添加查询参数:

  • type=all:指定返回所有类型的仓库(公开、私有、协作仓库),避免接口默认过滤私有内容
  • per_page=100:如果你仓库数量超过30个(接口默认分页大小),可以调整单页返回数量避免遗漏

示例完整请求:

curl -H "Authorization: Bearer 你的访问Token" "https://api.github.com/user/repos?type=all&per_page=100"

3. Token权限配置遗漏

经典Personal Access Token

确认你生成Token时勾选的是完整的repo权限,而非仅勾选了repo:status、repo_deployment等子权限,只有完整repo权限才可以读取私有仓库内容。

细粒度Personal Access Token

需要额外检查两个配置:

  • Repository access选项是否选择了All repositories,如果仅选择了公开仓库或者部分私有仓库,未被选中的仓库不会返回
  • 权限配置中的Repository permissions下,Contents权限是否设置为Read-only及以上权限

4. 请求头格式错误

确认你的请求头格式完全符合规范,没有拼写错误、多余空格:
Authorization: Bearer 你的Token字符串
注意Bearer和Token字符串之间仅有1个空格,不要误写为Token、token等其他鉴权类型标识。

5. 其他特殊场景校验

  • 检查Token是否未过期、未被账号吊销
  • 如果私有仓库归属于组织,需要确认Token已经完成组织SSO授权,否则无法读取组织下的私有仓库
  • 如果你账号开启了IP白名单限制,确认当前请求的IP在白名单范围内

内容的提问来源于stack exchange,提问作者Heber Solis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:03