2013-09-05 7 views
7

Ich benutze Git-Flow mit Teamcity als meine CI-Server. Ich möchte Artefakte aus dem letzten erfolgreichen Build einer bestimmten Branche ziehen.Teamcity REST API erhalten neueste erfolgreiche Build auf einem Zweig

kann ich diese URL verwende die neueste Version auf einem Zweig zu erhalten: http://$teamcity$/httpAuth/app/rest/buildTypes/name:$BuildTypeName$/builds/branch:name:$branchName$

aber es funktioniert nicht, wenn die Zweignamen enthalten / (zum Beispiel git Flussnamen Zweige feature/% und release/%).

Ich habe versucht, URL-Codierung der /. Zum Beispiel, wenn $branchName$> == 'release/branchName' Ich verwende /builds/branch:name:release%2F$branchName$).

  • Werke - /builds/branch:name:develop
  • versagt - /builds/branch:name:release%2F$branchName$.

Ich bekomme keinen API-Fehler, aber das API-Ergebnis ist leer.

Antwort

3

Offensichtlich ist dies ein bug in TeamCity ab 8.0.3

Es sieht aus wie es bearbeitet wird.

+1

Immer noch ein Problem ab 9.0.1. –

5

Sie können dies umgehen, indem Sie Ihren Build-Locator in eine Abfragezeichenfolge einfügen und nicht als Teil des Pfadelements der URL, d. H. Statt /builds/branch:name:release%2F1.0.1 oder dergleichen können Sie /builds?locator=branch:name:release%2F1.0.1 tun. Das Format der Daten, die zurückkommen, scheint nicht das gleiche zu sein, aber es enthält die interne Build-ID, so dass Sie immer eine zweite Anfrage für diesen genauen Build unter Verwendung dieser ID machen können, z. /builds/id:3332.

Ein weiterer Punkt, den ich nicht persönlich versucht haben, auf this comment von JetBrains gefunden issue tracker:

ich in diese ein wenig vertieft und entdeckt, dass Tomcat-Versionen 6.0.10 und höher standardmäßig don‘ t akzeptiert codierte Schrägstriche und Backslashes in Pfadelementen nicht mehr. Dieses Verhalten kann durch Änderung von zwei Tomcat-Server-Eigenschaften (gefunden auf http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10) geändert werden:

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

Ich weiß nicht, ob dies eine schlechte Sicherheits Praxis betrachtet wird.

Verwandte Themen