curl Gitlab API未在提交的构建状态中显示所有属性

4szc88ey  于 2022-11-13  发布在  Git
关注(0)|答案(2)|浏览(132)

我使用gitlab文档中给出的简单的curl命令,将构建状态发布到一个提交。
但在gitlab build status中它只显示:
“abc的管道#20失败.....”
即使当我传递“description”、“target_url”属性时。
我试过了,
curl --请求POST --报头“私有令牌:我的天啊!
从终端的curl输出来看,它成功地传递了所有属性。但是在gitlab build status中,它只显示,
“abc的管道#20失败.....”。
我希望输出像这样,
“abc..... my_description http://example.org/link的管道#20失败“。

支持“description”和“target_url”属性的任何其他格式。
我在网上搜索了一下,但是没有成功。我用的是gitlab 8.16。
我需要在gitlab中添加/配置什么吗?

**UPDATE:**实际上,我指定的“target_url”在Build选项卡的特定内部版本号上显示为超链接。但没有显示在我想要的位置。

“description”未出现在任何位置。

zxlwwiss

zxlwwiss1#

看起来target_url参数只影响你点击构建状态标签时的链接(见下图)。要显示它,你需要手动将其添加到description
curl --request POST --header "PRIVATE-TOKEN: XXXXXX" "https://gitlab.com/api/v4/projects/XXXXXX/statuses/67814f7489214e91738680b433679224993dc1c4?state=failed&name=some_label&description=some%20useful%20description_of_failure%20http://www.google.com&target_url=http://www.google.com"
如果你想看到描述,你必须进入提交细节,并将鼠标滚动到构建状态标签上:

eqoofvh9

eqoofvh92#

这适用于gitlab 15.2.2

generate_post_data()
{
  cat <<EOF
  {
    "description": "$DESCRIPTION",
    "name": "$JOB_IDENTIFIER",
    "state": "$STATUS",
    "target_url": "$TARGET_URL"
  }
EOF
}

curl \
--request POST "https://your-gitlab-url.com/api/v4/projects/$PROJECT_ID/statuses/${GIT_COMMIT}" \
--header "PRIVATE-TOKEN: $PRIVATE_TOKEN" \
--header 'Content-Type: application/json' \
--fail \
--data "$(generate_post_data)" \
--include

相关问题