TeamCity のビルド構成の 1 つに「testing」という構成パラメーターがあります。こちらの TeamCity REST API doc を見た後、Windows で次の cURL コマンドライン コマンドを使用して、このパラメーターに関する情報を取得できました。
(1) curl -X GET -H "Authorization: Basic (...)" http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/parameters
(2) curl -X GET -H "Authorization: Basic (...)" http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/parameters/testing
応答:
(1) <?xml version="1.0" encoding="UTF-8" standalone="yes"?><property name="testing" value="11"/></properties>
(2) 11
しかし、次のコマンドを使用してこの "testing" ビルド パラメーターを更新しようとすると、エラー メッセージが表示されます。
curl -X PUT -d "1" -H "Authorization: Basic (...)" http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/parameters/testing
応答:
Error has occurred during request processing (Unsupported Media Type).
Error: javax.ws.rs.WebApplicationException
Not supported request. Please check URL, HTTP method and transfered data are correct.
同様のコマンドを使用して、同じビルド構成の buildNumberCounter 設定を更新することに既に成功しています。
curl -X PUT -d "1" -H "Authorization: Basic (...)" http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/settings/buildNumberCounter
そういうわけで、同様の方法でビルド パラメータを使用して同じことができると考えました。ここで何が欠けていますか?
アップデート:
Fiddler を使用して、「testing」ビルド パラメータを値「1」で更新することができました。私が作成したリクエストには、次の内容が含まれていました。
- リクエスト:
PUT
- URL:
http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/parameters/testing
- リクエスト ヘッダー:
Authorization: Basic (...)
- リクエスト本文:
1
したがって、上記の cURL コマンドの問題は、おそらく-d "1"オプションのどこかにあります。しかしここで?
更新 2:
それが違いを生むかどうかはわかりませんが、私はWindows 7 でこのcURL ビルドを使用しています。