繁体   English   中英

如何使用 CURL 访问 GitLab 问题?

[英]How to access GitLab issues using CURL?

我想获得项目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 文档。

那么我做错了什么?

该文档告诉您有关如何从项目中检索问题的信息:

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,
    .....

由于 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM