如何列出/删除GitLab中的所有空存储库?



如何列出/删除GitLab中的所有空存储库。我在我的GitLab中有多个空的repros。有什么办法可以全部删除,而不是手动删除它们吗?

我不是在这里为您提供脚本,因为我没有写过一个,我只是概述了我将选择的过程和对这项工作有用的api。

首先要问的问题是,你如何定义一个空的存储库——让我们假设你说一个有一定数量提交的存储库。

为此,您可以使用projects 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的/projectsAPI在每个项目上返回一个名为empty_repo的属性。我没有找到一个合理的方式来查询根据它在API本身(虽然我可能错过了一些东西),但你可以用一个工具,如jq脚本。

。,获取所有空项目的id:

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

除了Simon的回答,最重要的是定义空的repos。除了提交的数量,您还可以使用last_activity_at来过滤时间。

在你找到项目之后。您可以使用delete projects API删除它们。

最新更新