我正在尝试通过PowerShell和TeamCity 8 REST API以自动方式将构建触发器添加到构建配置中。
使用以下问题作为参考,似乎我正在尝试做的事情是可能的:使用 REST API 将触发器添加到 TeamCity 中的构建配置
但是,每当我尝试使用以下代码将触发器添加到构建中时,都会收到(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成功实现了这一点?
不是那个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。