gpt4 book ai didi

azure - 从 Azure DevOps Pipeline 调用 Bitbucket 2.0 API

转载 作者:行者123 更新时间:2023-12-03 00:01:48 26 4
gpt4 key购买 nike

问题

如何从 Azure DevOps Pipeline 调用带有 oAuth2-Authentication 的外部 REST-API?

我想要实现的目标

因此,当同一提交触发多个构建时,Azure Pipelines 似乎无法将构建状态正确报告回 Bitbucket。因此,我尝试从管道内手动调用 Bitbucket Cloud API,以在 Bitbucket 中显示正确的构建状态。

我尝试过的

InvokeRESTAPI-Task看起来很有希望,所以我继续创建所需的“通用”服务连接(在下面的代码片段中称为“Bitbucket API”)。然而,通用服务连接似乎只支持基本的身份验证流程?

以下任务将请求发送到正确的 URL,但失败并显示 401 - 未经授权。

- task: InvokeRESTAPI@1
inputs:
connectionType: 'connectedServiceName'
serviceConnection: 'Bitbucket API'
method: 'POST'
body: |
{
"state": "INPROGRESS",
"key": "azure-pipeline",
"name": "CI-Pipeline 1",
"url": "tbd",
"description": "Lorem ipsum dolor sit amet"
}
urlSuffix: 'commit/$(Build.SourceVersion)/statuses/build'
waitForCompletion: 'false'

是否有我错过的替代方案,或者我实际上需要自己在 python 或 powershell 中实现 oAuth 流程?

最佳答案

除了使用 OAuth,您还可以考虑使用 App passwords .

然后你可以使用简单的bash task通过curl命令调用API:

curl -X POST -is -u <USER_NAME>:<APP_PASSWORD> \
-H 'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/<USER_NAME>/<REPOSITORY_SLUG>/commit/<COMMIT>/statuses/build \
-d '{
"state": "SUCCESSFUL",
"name": "Build key - description",
"url": "https://<AZURE_URL_REFERENCE>",
"description": "A general description"
}'

有关更多详细信息,您可以查看此 similar issue .

关于azure - 从 Azure DevOps Pipeline 调用 Bitbucket 2.0 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63793867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com