持续部署gitlab

Continuous deployment gitlab

我的线.gitlab-ci.yml

IID=$(curl --verbose --request GET --header "Content-Type: application/json" --header "PRIVATE-TOKEN: ${CI_PUSH_TOKEN}" ${APP_REPO_URL}/merge_requests?author_id=xxxxxxxx\&search=${CI_COMMIT_SHORT_SHA} | jq '.[0].iid')

输出 jq: 错误 (at :0): 无法用数字索引对象

请参阅 Merge requests API and How to use the API 上的文档,在将结果传送到 jq.[=22= 之前,使用 GitLab API 构建格式正确的 cURL 请求]

您的查询有一些问题。

首先,根据文档,/merge_requests 端点将

Get all merge requests the authenticated user has access to.

这意味着 APP_REPO_URL 需要是 GitLab 实例 URL 后跟 /api/v4 而不是特定项目的 URL。

curl "https://gitlab.example.com/api/v4/merge_requests"

如果您需要给定项目的所有合并请求,那么您可以使用

curl "https://gitlab.example.com/api/v4/projects/:id/merge_requests"

其中 :id 是您项目的 ID。查看更多 List project merge requests

然后,search 属性需要标题或描述,而不是提交 SHA:

Search merge requests against their title and description