2013-09-05 12 views
7

Używam przepływu git z teamcity jako mój serwer CI. Chciałbym pobrać artefakty z ostatniej udanej wersji na konkretnej gałęzi.Teamcity REST API uzyskać najnowszą udaną kompilację na oddział

mogę użyć tego adresu URL, aby pobrać najnowszą kompilację na gałęzi: http://$teamcity$/httpAuth/app/rest/buildTypes/name:$BuildTypeName$/builds/branch:name:$branchName$

ale to się nie powiedzie, jeśli nazwa gałąź zawiera / (na przykład nazwy przepływu git branże feature/% i release/%).

Próbowałem kodowania adresu URL na /. Na przykład, jeśli $branchName$> == 'release/branchName' używam /builds/branch:name:release%2F$branchName$).

  • prace - /builds/branch:name:develop
  • powiedzie - /builds/branch:name:release%2F$branchName$.

Nie otrzymuję błędu interfejsu API, ale wynik interfejsu API jest pusty.

Odpowiedz

3

Najwyraźniej jest to bug in TeamCity jak z 8.0.3

wygląda na to, że jest w trakcie opracowywania.

+1

Nadal występuje problem z wersją 9.0.1. –

5

Można obejść to, umieszczając lokalizator kompilacji w ciągu zapytania, a nie jako część elementu ścieżki adresu URL, tj. Zamiast /builds/branch:name:release%2F1.0.1 lub podobnego, można wykonać /builds?locator=branch:name:release%2F1.0.1. Format powrotnych danych nie wydaje się być taki sam, ale zawiera wewnętrzny identyfikator kompilacji, więc zawsze możesz złożyć drugi wniosek o dokładną kompilację przy użyciu tego identyfikatora, np. /builds/id:3332.

Kolejnym punktem, który ja osobiście nie próbowałem, znajduje się na this comment z JetBrains' emisyjnej trackera:

I zagłębił się w tym kawałku i odkrył, że Tomcat w wersji 6.0.10 i nowszych domyślnie don” t akceptuj zakodowane ukośniki i ukośniki odwrotne w elementach ścieżki. Takie zachowanie może być zmienione poprzez zmianę dwie właściwości serwer Tomcat (znaleziono na http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10):

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

Nie wiem, czy to jest uważane za złą praktyką bezpieczeństwa.

Powiązane problemy