Gitlab API 按主题过滤项目(项目标签)
Posted
技术标签:
【中文标题】Gitlab API 按主题过滤项目(项目标签)【英文标题】:Gitlab API filter projects by topic (project tag) 【发布时间】:2021-09-08 23:50:08 【问题描述】:我无法通过 api 的“标签”过滤项目(项目设置中的命名主题)。
我会得到与以下 UI 查询 https://gitlab.xxxxxx.com/explore/projects?tag=ruby 相同的结果
它返回所有标记有“ruby”主题的项目。
这是我在描述单个项目时使用 api 得到的结果示例:
curl --header "Authorization: Bearer $GITLAB_TOKEN" "https://gitlab.hostname.com/api/v4/projects/42?simple=true" | json_pp
...
"tag_list" : [
"ruby"
],
...
根据文档 (https://docs.gitlab.com/ce/api/projects.html#list-all-projects),我应该能够使用主题参数过滤项目 tag_list
curl --header "Authorization: Bearer $GITLAB_TOKEN" "https://gitlab.hostname.com/api/v4/projects?topic=ruby&simple=true" | json_pp
但是这个查询返回了我所有的项目,即使是那些没有任何标签或错误的项目
我尝试使用“tag”或“tag_list”而不是“topic”,但没有达到我的预期
有人知道如何进行吗?
请注意,我使用的是 gitlab CE 13.9
【问题讨论】:
【参考方案1】:正如您所提到的,您使用的是 gitlab 13.9 版,并且通过 tag_list
或 topic
过滤项目的功能已在 14 版及更高版本中提供。
见: https://docs.gitlab.com/13.11/ee/api/projects.html#list-all-projects
【讨论】:
确实,我没有检查文档的正确版本,谢谢【参考方案2】:另一种方法:使用新的 API 主题。
见GitLab 14.5(2021 年 11 月)
使用 API 管理项目主题
在此版本中,感谢 Jonas Wälter’s 的贡献,在项目设置中添加主题比以往任何时候都容易。
除了 UI 中最新的项目主题管理功能外,您现在还可以使用 API 按列表或 ID 检索主题。
我们还让管理员可以通过 API 创建或编辑主题。这在 UI 和 API 中的项目主题管理之间引入了完全平等。
参见Documentation 和Issue。
Listing projects assigned to a topic 仍然通过project API 完成。 但是现在围绕主题的 API 更加完善了。
【讨论】:
以上是关于Gitlab API 按主题过滤项目(项目标签)的主要内容,如果未能解决你的问题,请参考以下文章