0

我正在尝试通过 PowerShell 和 TeamCity 8 REST API 以自动方式将构建触发器添加到构建配置中。

使用以下问题作为参考,看来我正在尝试做的事情是可能的:Add a Trigger to a build configuration in TeamCity using the REST API

但是,每当我尝试使用以下代码将触发器添加到构建中时,都会出现(405) Method Not Allowed错误:

$triggerXML= "<trigger id=`"TriggerID`" type=`"buildDependencyTrigger`">
                  <properties>
                      <property name=`"afterSuccessfulBuildOnly`" value=`"true`"/>
                      <property name=`"dependsOn`" value=`"BuildID`"/>
                  </properties>
              </trigger>"

$webclient.UploadString('http://teamcity:8111/httpAuth/app/rest/buildTypes/BuildID', "POST", $triggerXML)

有没有人使用 PowerShell 成功实现了这一点?

4

1 回答 1

2

不是那个 API,但我有自动化 TeamCity 的脚本。

这是我使用的代码片段:

$TeamCityHostAndPort = "myteamcityserver:8111"

# authenticate with NTLM
$LoginUrl = "http://$TeamCityHostAndPort/ntlmLogin.html"
Invoke-WebRequest -Uri $LoginUrl -UseDefaultCredentials -SessionVariable TeamCitySession | Out-Null

#start backup
$StartBackupUrl = "http://$TeamCityHostAndPort/httpAuth/app/rest/server/backup?includeConfigs=true&includeDatabase=true&includeBuildLogs=true&fileName=TeamCity_Backup_"
$filename = Invoke-RestMethod -WebSession $TeamCitySession -Method Post -Uri $StartBackupUrl

注意第一次身份验证调用(我禁用了内置用户并坚持使用 Windows 身份验证),并且经过身份验证的会话传递给后续调用。 Invoke-RestMethod是 Powershell v4。

于 2015-01-21T13:17:39.937 回答