我想获得项目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.html和http://doc.gitlab.com/ce/api/README.html错误解释了API文档。
那么我做错了什么?
答案 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