在 Gitlab 中触发该管道后获取管道 ID

Posted

技术标签:

【中文标题】在 Gitlab 中触发该管道后获取管道 ID【英文标题】:Getting pipeline ID after triggering that pipeline in Gitlab 【发布时间】:2021-11-26 13:23:26 【问题描述】:

我使用 Gitlab CI/CD 来部署我的项目。我使用 Gitlab REST API 来操作管道。 对于启动管道,我可以使用此端点:

POST /projects/:id/trigger/pipeline

对该请求的响应如下:


    "ref": "master_branch",
    "status": "pending"

.. 和触发的管道 ID 无关。

我还想知道一些关于触发管道的信息:

GET /projects/:id/pipelines/:pipeline_id

.. 但我不知道管道 ID。

是的,我知道GET /projects/:id/pipelines 的管道列表,但这不是我真正想要的。

如何知道触发管道ID?

【问题讨论】:

【参考方案1】:

Create Pipeline API 操作的响应会为您提供实例范围的管道 ID(称为 id)和特定于项目的 ID(称为 iid),id 就是您所看到的在项目的 Pipelines 列表中以及您将在其他 API 调用中使用的内容中。

这是来自docs 的示例响应:


  "id": 61,
  "iid": 21,
  "project_id": 1,
  "sha": "384c444e840a515b23f21915ee5766b87068a70d",
  "ref": "main",
  "status": "pending",
  "before_sha": "0000000000000000000000000000000000000000",
  "tag": false,
  "yaml_errors": null,
  "user": 
    "name": "Administrator",
    "username": "root",
    "id": 1,
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
    "web_url": "http://localhost:3000/root"
  ,
  "created_at": "2016-11-04T09:36:13.747Z",
  "updated_at": "2016-11-04T09:36:13.977Z",
  "started_at": null,
  "finished_at": null,
  "committed_at": null,
  "duration": null,
  "queued_duration": 0.010,
  "coverage": null,
  "web_url": "https://example.com/foo/bar/pipelines/61"

【讨论】:

感谢您的帮助。实际上,在我的情况下,最好使用创建管道 api 而不是触发管道。

以上是关于在 Gitlab 中触发该管道后获取管道 ID的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab-CI 又名管道依赖项中的上游触发

触发 Gitlab CI/CD 管道以部署存储库的特定部分

Gitlab ci问题将工件传递到带有触发器和需要关键字的下游管道

没有权限运行下游管道的用户如何从上游管道触发运行 GitLab 下游管道

Gitlab双管道触发问题

为合并请求触发的管道运行应用 GitLab CI/CD 管道更改