请任何人解释我如何使用 Octopus REST API 创建发布。
我可以使用 octo.exe 创建一个版本,但不知道如何使用 REST API 来实现。
我经历了http://localhost:8080/api
,但无法弄清楚如何创建发布。
这个 REST api 是否提供该功能?
请任何人解释我如何使用 Octopus REST API 创建发布。
我可以使用 octo.exe 创建一个版本,但不知道如何使用 REST API 来实现。
我经历了http://localhost:8080/api
,但无法弄清楚如何创建发布。
这个 REST api 是否提供该功能?
我自己没有使用过 Octopus,但据我了解,您必须向这样的 URL 发出 HTTP POST 请求:
http://localhost:8080/api/projects/1/releases
在您的请求正文中,您指定与使用命令行工具相同的参数,但您必须将它们编码为 JSON。
我自己也有类似的麻烦。
为了创建发布,您必须POST
向 Octo 服务器发出请求。
https://myoctoserver:port/api/releases
提供以下标题:
请求的正文必须是JSON
. 下面是一个例子:
{
"Version": "2017.02.25.183053" ,
"ProjectId": "MyProject" ,
"ChannelId": "DefaultOrOtherChannelId
}
Version
和ProjectId
属性是必需的。频道 ID 是可选的。但是,如果您有多个频道,或者您的项目中没有频道被标记为默认,那么您也必须包括在内ChannelId
。
我希望这有帮助!
卷曲示例
下面的示例已经成功。
BODY='{"ProjectId":"'$PROJECT_ID'","ChannelId":"Channels-1","Version":"'$VERSION'","SelectedPackages":[{"StepName":"$STEP_NAME1","Version":"'$VERSION'"},{"StepName":"$STEP_NAME2","Version":"'$VERSION'"}]}'
curl -X POST --write-out %{http_code} --silent --output /dev/null -H "X-Octopus-ApiKey:$API_KEY" -H "Content-Type:application/json" -d $BODY "https://octopus.example.com/api/releases"
笔记
为了找到ChannelId
,ProjectId
我不得不查询八达通数据库。ID 看起来像Projects-1
或Channel-1
与 Octopus REST API 接口的文档还有很多不足之处: https ://github.com/OctopusDeploy/OctopusDeploy-Api/wiki/Releases
我永远无法通过这种方法让它工作,相反,我使用octo.exe 命令行实用程序来创建发布:
octo create-release --project HelloWorld --version 1.0.3 --server http://octopus/ --apiKey API-ABCDEF123456
Octo.exe 包含在 tentacle 或服务器安装中,Octopus 也将其作为单独的实用程序提供:http: //octopusdeploy.com/downloads