文章目录
概述
Teamcity提供REST API目的:整合外部应用,与TeamCity server建立脚本化交互。REST API可以使用URL路径访问资源。为了使用REST API,需要一个外部应用向TeamCity server发出HTTP请求,然后解析响应。
常见使用原则
1)http://<TeamCity Server host>:<port>/app/rest/server #给出一些可以访问的对象。这很重要,给出了可以访问的对象。!!!!
例如:
http://10.10.10.10:8001/app/rest/server
2)http://<TeamCity Server host>:<port>/app/rest/agents #获取所有的授权agent的列表
3)http://<TeamCity Server host>:<port>/app/rest/agents/id:100 #获取id为100的agent的信息
4)http://<TeamCity Server host>:<port>/app/rest/agents/$help #获取哪些可以定位特定agent的属性有哪些!!!!
#注意:$help前的对象需要是复数形式。如 http://<TeamCity Server host>:<port>/app/rest/buildQueue/$help访问失败。此时用aa:bb代替$help即可。
5)上述4)返回的大多属性可以用于<field_name>。即支持下面这种请求格式:
http://<TeamCity Server host>:<port>/app/rest/agents/<agentLocator>/<field_name>
认证方式
这里以powershell中Invoke-RestMetho 访问rest api为例。
1.推荐的认证方式是:token-based HTTP authentication
$apiKey = “aaa0eczczc1emVEMkNjUGdffdfddddd9r.ODljN2UyNjktNDA1Mi00OGQzLTg3NDEtOWYwYzhmNjliYTY5”
$headers = @{}
$headers.Add(“Authorization”,“Bearer $apiKey”)
Invoke-RestMethod -Headers $headers -Uri “http://:/app/rest/agents”
其中$apiKey的在Teamcity UI的生成方式:My Settings & Tools | Access Tokens
2.用户名,密码认证(基本的http认证,慢)
$currentUser = “xxx”
$currentPassword = “xxxx”
$pass = ConvertTo-SecureString -AsPlainText $currentPassword -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList c u r r e n t U s e r , currentUser, cu