2013-09-05 10 views
7

私はCIサーバーとしてteamcityとgit flowを使用しています。特定のブランチで成功したビルドから成果物を引き出したいと思います。 http://$teamcity$/httpAuth/app/rest/buildTypes/name:$BuildTypeName$/builds/branch:name:$branchName$Teamcity REST APIはブランチ上で最新の成功ビルドを取得します

をしかし、支店名が/(例えば、gitのフロー名支店feature/%release/%)が含まれている場合、それは失敗します。

私は、枝の上に最新のビルドを取得するには、このURLを使用することができます。

私は/をエンコードしたURLを試しました。たとえば、$branchName$> == 'release/branchName'の場合は/builds/branch:name:release%2F$branchName$)を使用します。

  • 作品 - /builds/branch:name:develop
  • が失敗した - /builds/branch:name:release%2F$branchName$

APIエラーは発生しませんが、apiの結果は空です。

答えて

3

どうやらこれは、それが働いているように見えます8.0.3

のようbug in TeamCityです。

+1

まだ9.0.1からの問題です。 –

5

ビルドロケータをURLのパス要素の一部ではなくクエリ文字列に入れて、つまり/builds/branch:name:release%2F1.0.1などの代わりに、/builds?locator=branch:name:release%2F1.0.1を実行することで回避できます。戻ってくるデータの形式は同じではないようですが、内部ビルドIDが含まれているため、そのIDを使用してそのビルドをいつも2度リクエストすることができます。 /builds/id:3332。私は個人的に試していない

もう一つのポイントは、JetBrainsのからthis commentで発見された課題追跡:

私はこれにビットを掘り下げ、デフォルトドンでいるTomcatのバージョンは6.0.10以降を発見しました」パス要素にエンコードされたスラッシュとバックスラッシュを受け入れなくなりました。この動作は、(http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10で見つかった)2つのTomcatサーバーのプロパティを変更することによって変更することができます。これは悪いセキュリティの実践と見なされた場合、私は知らない

-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true 
-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true 

関連する問題