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

如何列出并删除GitLab中的所有空仓库?

如何在GitLab中列出并批量清理空仓库

我来分享一下我处理GitLab空仓库的经验,不管是列出还是批量删除都有实用的方法,分两种场景给你讲:

一、列出所有空仓库

方法1:通过GitLab UI可视化筛选

如果仓库数量不多,用UI操作最直观:

  • 登录你的GitLab实例,进入顶部导航的项目页面
  • 点击页面上方的「筛选」按钮(或者直接用搜索栏右侧的筛选图标)
  • 在筛选面板里找到存储大小选项,设置为「等于0」,然后点击「应用筛选」
  • 页面就会自动展示所有存储大小为0的空仓库了

方法2:通过GitLab API批量查询

如果空仓库数量较多,或者需要自动化处理,用API更高效:

  1. 先创建一个个人访问令牌,需要勾选read_api权限(如果后面要删除的话还需要delete_project权限)
  2. 用curl结合jq(轻量JSON处理工具,需要提前安装)来筛选空仓库:
    # 替换为你的GitLab实例地址和访问令牌
    curl --header "PRIVATE-TOKEN: YOUR_ACCESS_TOKEN" "https://gitlab.example.com/api/v4/projects?statistics=true&per_page=100" | jq '.[] | select(.statistics.repository_size == 0) | .path_with_namespace'
    
    这个命令会返回所有空仓库的完整路径(比如username/repo-name),方便你核对。

二、批量清理空仓库

方法1:UI批量删除(适合少量仓库)

  • 按照上面的方法筛选出空仓库后,点击页面左上角的「批量选择」按钮
  • 勾选所有需要删除的空仓库,然后点击顶部的「删除」按钮,确认后即可批量删除

方法2:API批量删除(适合大量仓库)

这个方法适合一次性清理几十个甚至上百个空仓库,步骤如下:

  1. 先导出所有空仓库的ID到文本文件:
    curl --header "PRIVATE-TOKEN: YOUR_ACCESS_TOKEN" "https://gitlab.example.com/api/v4/projects?statistics=true&per_page=100" | jq '.[] | select(.statistics.repository_size == 0) | .id' > empty_repos_ids.txt
    
  2. 循环读取文件中的ID并执行删除:
    while read repo_id; do
      curl --request DELETE --header "PRIVATE-TOKEN: YOUR_ACCESS_TOKEN" "https://gitlab.example.com/api/v4/projects/$repo_id"
      echo "Deleted repo ID: $repo_id"
    done < empty_repos_ids.txt
    

重要注意事项

  • 仓库删除操作是不可逆的!执行删除前一定要反复核对筛选出的仓库,最好先手动检查几个确认是空仓库
  • 确保你的访问令牌拥有足够权限:delete_project是删除仓库的必备权限
  • 如果使用GitLab SaaS(gitlab.com),把API地址换成https://gitlab.com/api/v4/即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 20:32:29