如何 list/delete GitLab 中的所有空存储库。?

How to list/delete all empty repositories in GitLab.?

如何 list/delete GitLab 中的所有空存储库。 我的 GitLab 中有多个空复制品。有什么办法可以全部删除而不是手动删除吗?

我不会在这里为您提供脚本,因为我还没有写过脚本,我只是概述了我会选择的过程以及对这项工作有用的 APIs。

首先要问的问题是,如何定义空存储库 - 假设您说的是具有一定数量提交的存储库。

为此,您可以使用项目 API https://docs.gitlab.com/ee/api/projects.html#list-all-projects - 您可以在其中获取所有项目的列表以及一些统计信息,并从符合您特征的项目中生成一个列表。 (statistics.commits 是一个很好的领域)

GET /users/:user_id/projects

使用此项目 ID 列表,您可以开始删除项目 API 以删除 https://docs.gitlab.com/ee/api/projects.html#delete-project

DELETE /projects/:id

GitLab 的 /projects API returns 一个 属性 在每个项目上调用 empty_repo。我没有在 API 本身中找到根据它进行查询的合理方法(尽管我可能遗漏了一些东西),但是您可以使用 jq.

之类的工具编写脚本

例如,获取所有空项目的id:

curl --header "PRIVATE-TOKEN: <yourtoken>" -k https://gitlab.com/api/v4/projects | jq '.[] | select(.empty_repo==true) | .id'

除了西蒙的回答,最重要的是定义空回购。除了提交次数,你还可以使用last_activity_at来过滤时间。

找到项目后。您可以使用 DELETE 项目 API.

删除它们