【问题标题】:Gitlab API filter projects by topic (project tag)Gitlab API 按主题过滤项目(项目标签)
【发布时间】: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

【问题讨论】:

    标签: gitlab gitlab-api


    【解决方案1】:

    正如您所提到的,您使用的是 gitlab 13.9 版,并且通过 tag_listtopic 过滤项目的功能已在 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 中的项目主题管理之间引入了完全平等。

    参见DocumentationIssue

    Listing projects assigned to a topic 仍然通过project API 完成。
    但是现在围绕主题的 API 更加完善了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多