通过gitlab api或gitlab-cli获取gitlab项目的`id`

时间:2019-02-15 21:06:37

标签: git curl gitlab gitlab-ci gitlab-ci-runner

是否可以通过GitLab API获得项目的 -I'll do it +I'll do it

我使用提供项目名称的GitLab API创建了一个项目-

expect("I'll do it").to.equal("I'll do it")

它返回带有项目信息的预期结果,例如idcurl -kX POST --header "PRIVATE-TOKEN: <access_token>" https://gitlab.example.com/api/v4/projects/my_app&visibility=internallinksid等。 现在,我想创建user或创建namespace。我现在需要项目issue。 因此,如何检索项目branch的{​​{1}}。 (不是通过用户界面)。

我找不到无需使用项目id即可创建idmy_app的任何API查询。

我总是需要issue Issues API

branch

同样,我也找不到任何可以使用项目id来检索id的API查询

我只能由Search API使用并使用POST /projects/:id/issues id

但是它提供了很多信息。我只需要检索name。不知道如何获得项目project name

我可以使用python-gitlab库,就像使用curl -kX GET --header "PRIVATE-TOKEN: <access_token>" https://gitlab.example.com/api/v4/search?scope=projects&search=my_app一样。

  • 获取项目(以project id格式提供最近20个项目的idcurl
    • name
  • 创建项目
    • id
    • 创建项目问题
    • yaml在这里,我还需要提供gitlab project list

但是在该库中,也没有选项来检索项目gitlab -o yaml project create --name "my_app_cli" --visibility "internal"。 与API相同,要创建任何分支,问题等,我需要使用已创建项目的gitlab -o yaml project create-issue --id ID。我不想手动将id放入id或使用id

是否有解决方法通过项目id通过apicli获取ID?

或者是否有任何变通办法来创建apicli等,而不通过nameissue使用branch

4 个答案:

答案 0 :(得分:1)

您可以使用Get single project端点。但是更普遍的是,您不仅限于使用数字ID,还可以在API调用中实际使用项目名称:

Jenkins:ID或URL-encoded path of the project

在您的特定情况下,这既可以作为获取ID的示例,又可以证明您不一定需要ID:)

id

答案 1 :(得分:0)

为什么不从项目create call的结果中读取ID?您可以使用https://stedolan.github.io/jq/

轻松完成此操作

答案 2 :(得分:0)

在项目范围内使用搜索API,其描述如下:https://docs.gitlab.com/ee/api/search.html#scope-projects

答案 3 :(得分:0)

在Python中,我们有使用Gitlab API来获取详细信息的模块。 您可以使用以下python代码获取项目的ID。在这里,我们使用gitlab模块进行调用。

import os
import gitlab

gl = gitlab.Gitlab('http://gitlab_hostname.com', 'your_private_token')
all_projects = gl.projects.list(all=True)
print("All projects id are:",all_projects)