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

使用GitHub REST API创建仓库项目失败:提示仓库项目已禁用

解决GitHub API创建项目报错“Projects are disabled for this repository”的问题

核心问题:混淆了经典项目与新版Projects v2的API端点

你调用的POST /repos/{owner}/{repo}/projects是经典仓库项目的API接口,而GitHub当前主推的是新版Projects v2,两者的API、权限配置和仓库设置完全不互通。报错提示“项目已禁用”,大概率是因为仓库未开启经典项目功能,或是你想操作新版项目却用了旧接口。

分场景解决方案

场景1:创建经典仓库项目

  • 开启仓库经典项目功能:进入目标仓库的「Settings」→「Features」,找到标注为“经典”的「Projects」选项并勾选启用。
  • 确认权限:检查GitHub App的Repository projects权限是否设为「Read and write」。
  • 代码无需修改,重新运行即可。

场景2:创建新版GitHub Projects v2

  • 更换API端点:将请求路径改为新版项目接口POST /repos/{owner}/{repo}/projects-v2,参数调整如下(name参数仍可用):
    for await (const { octokit, installation } of app.eachInstallation.iterator()) { 
      const result = await octokit.request('POST /repos/{owner}/{repo}/projects-v2', {
        owner: owner,
        repo: repo,
        name: projectName
      });
      console.log("Project: ", result.data.name)
    }
    
  • 确认权限:检查GitHub App的Projects权限是否设为「Read and write」(这是独立于经典项目的权限项)。
  • 升级octokit版本:确保使用的octokit/rest.js是最新版,旧版本可能未收录v2的API定义。

额外排查点

  • 确认GitHub App安装时,目标仓库已被纳入安装范围,无遗漏。
  • 验证token权限:可通过octokit调试功能打印请求头中的token,确认其包含所需权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:09:14