调用GitHub API获取私有仓库项目返回空数组(200成功)求助
GitHub API 返回200但空数组的排查方向
- 确认项目类型:GitHub的旧版仓库项目(对应
/repos/{owner}/{repo}/projects端点)和Projects v2(组织/用户级)是两个独立系统。如果你的项目是Projects v2,需调用GET /repos/{owner}/{repo}/projects-v2端点查询。 - 验证Token权限:检查经典Token是否具备
repo权限(私有仓库必填),且状态为活跃。可在GitHub设置的「Developer settings → Personal access tokens」中查看,同时确认Token未过期、未被撤销。 - 核对仓库路径拼写:确保
me-the-owner(所有者用户名/组织名)和myrepo(仓库名)拼写完全准确,避免因大小写或字符错误导致访问到不存在的资源。 - 确认仓库存在仓库级项目:手动登录GitHub进入目标仓库,查看「Projects」标签下是否有创建过旧版仓库项目。若项目是在组织/用户层级创建并关联到仓库,此端点无法查询到。
- 测试API版本兼容性:尝试移除
X-GitHub-Api-Version请求头使用默认版本,或切换至更近期的API版本(如2023-07-07),验证是否因版本兼容问题导致数据不返回。 - 排查组织/仓库权限限制:若仓库属于组织,确认组织未禁用经典Token访问,且你作为所有者确实拥有仓库项目的管理权限(部分组织规则可能限制所有者的API操作)。
- 使用GitHub CLI测试:执行
gh api repos/me-the-owner/myrepo/projects命令,对比返回结果。若CLI同样返回空数组,说明问题出在权限或项目类型;若CLI能返回数据,则排查请求头或调用方式的差异。 - 查看API访问日志:在GitHub设置的「Developer settings → Personal access tokens」中,点击对应Token的「View access logs」,查看该请求的详细记录,是否有隐藏的权限提示或错误信息。
内容的提问来源于stack exchange,提问作者FelixD
相关产品推荐
相关产品推荐

