如何使用CURL访问GitLab问题?

时间:2015-08-04 09:05:51

标签: 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"

但他们只会回来:

{"message":"404 Project Not Found"}

<html><body>You are being <a href="https://gitlab.com/users/sign_in">redirected</a>.</body></html>

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

那么我做错了什么?

2 个答案:

答案 0 :(得分:10)

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

GET /projects/:id/issues

你试过了:

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

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

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

234是项目的ID。要获得项目的整数id,只需执行:

curl --header "PRIVATE-TOKEN: xxx" "https://gitlab.com/api/v3/projects

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

[
  {
    "id": 4,            <-------- //This one
    "name": "my super mega project",
    "description": null,
    .....

答案 1 :(得分:1)

自GitLab v11.x起,/ api / v3返回错误"API V3 is no longer supported. Use API V4 instead."

从v11和v12版本开始,这有效:

curl --header 'PRIVATE-TOKEN: mySecret' https://gitlab.com/api/v4/projects
/2/merge_requests

解析输出(为此,我建议使用jq

[
  {
    "id": 2,            <-------------- use this number below
    "name": "Duke Nukem 3D",

然后:

curl --header 'PRIVATE-TOKEN: mySecret' https://gitlab.com/api/v4/projects/2/issues