5

请任何人解释我如何使用 Octopus REST API 创建发布。
我可以使用 octo.exe 创建一个版本,但不知道如何使用 REST API 来实现。
我经历了http://localhost:8080/api,但无法弄清楚如何创建发布。

这个 REST api 是否提供该功能?

4

3 回答 3

2

我自己没有使用过 Octopus,但据我了解,您必须向这样的 URL 发出 HTTP POST 请求:

http://localhost:8080/api/projects/1/releases

在您的请求正文中,您指定与使用命令行工具相同的参数,但您必须将它们编码为 JSON。

于 2013-06-21T08:35:37.087 回答
2

我自己也有类似的麻烦。

为了创建发布,您必须POST向 Octo 服务器发出请求。

https://myoctoserver:port/api/releases

提供以下标题:

  • X-Octopus-ApiKey:API-XXXXXXXXXXXX
  • 内容类型:应用程序/json

请求的正文必须是JSON. 下面是一个例子:

{
    "Version": "2017.02.25.183053" ,
    "ProjectId": "MyProject" ,
    "ChannelId": "DefaultOrOtherChannelId
}

VersionProjectId属性是必需的。频道 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"

笔记

为了找到ChannelIdProjectId我不得不查询八达通数据库。ID 看起来像Projects-1Channel-1

于 2017-02-26T00:32:10.417 回答
0

与 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

于 2015-07-31T08:02:30.433 回答