如何使用CURL访问GitLab问题?

Edw*_*ard 18 curl gitlab

我想获得项目问题列表YYYYYY和用户名XXXXXX.

curl --header "PRIVATE-TOKEN: myownprivatetoken" "https://gitlab.com/api/v3/projects/YYYYYY/issues"

curl --header "PRIVATE-TOKEN: myownprivatetoken" --header "SUDO: XXXXXX" "https://gitlab.com/api/v3/projects/YYYYYY/issues"

curl --header "PRIVATE-TOKEN: myownprivatetoken" "https://gitlab.com/api/v3/XXXXXX/projects/YYYYYY/issues"
Run Code Online (Sandbox Code Playgroud)

但他们只返回:

{"message":"404 Project Not Found"}
Run Code Online (Sandbox Code Playgroud)

要么

<html><body>You are being <a href="https://gitlab.com/users/sign_in">redirected</a>.</body></html>
Run Code Online (Sandbox Code Playgroud)

在我看来,我在http://doc.gitlab.com/ce/api/issues.htmlhttp://doc.gitlab.com/ce/api/README.html上误解了API文档.

那么我做错了什么?

Pie*_*reF 11

文档告诉您如何从项目中检索问题:

GET /projects/:id/issues
Run Code Online (Sandbox Code Playgroud)

你试过了:

curl --header "PRIVATE-TOKEN: xxx" "https://gitlab.com/api/v3/projects/YYYYYY/issues"
Run Code Online (Sandbox Code Playgroud)

这是正确的,但您提供的参数YYYYYY必须是项目ID,因此它必须是整数,而不是具有项目名称或路径的文本.你需要使用类似的东西:

curl --header "PRIVATE-TOKEN: xxx" "https://gitlab.com/api/v3/projects/234/issues"
Run Code Online (Sandbox Code Playgroud)

234您项目的ID 在哪里?要获得项目的整数id,只需执行以下操作:

curl --header "PRIVATE-TOKEN: xxx" "https://gitlab.com/api/v3/projects
Run Code Online (Sandbox Code Playgroud)

这将列出您的所有项目,并在id字段中为您提供项目的唯一整数标识符:

[
  {
    "id": 4,            <-------- //This one
    "name": "my super mega project",
    "description": null,
    .....
Run Code Online (Sandbox Code Playgroud)

  • 不确定是否/何时更改,但您可以指定项目路径而不是id,但是您需要包括命名空间而不仅仅是项目,而不是/,使用%2F.例如:`https:// gitlab.com/api/v3/projects/userid%2Fproject/issues` (2认同)