2013-01-04 9 views
6

The Docs pokazaćW jaki sposób można uzyskać wszystkie artefakty jako zip za pomocą interfejsu API TeamCity Rest?

/repository/downloadAll/BUILD_TYPE_ID/BUILD_SPECIFICATION 

na uzyskanie wszystkich artefaktów jako plik zip, ale to nie jest za pomocą interfejsu API REST. Czy w interfejsie API REST istnieje sposób robienia tego samego? Dokumenty wydają się wskazywać, że łącza do repozytoriów są dostępne tylko w celu zapewnienia kompatybilności wstecznej.

Odpowiedz

0

Z dokumentacji: http://confluence.jetbrains.net/display/TW/REST+API+Plugin#RESTAPIPlugin-buildartifacts

Artifacts: 
GET <TeamcityUrl>/httpAuth/app/rest/builds/<buildLocator>/artifacts/files/<artifact relative name> 

Jeśli pobrać artefakty od wewnątrz kompilacji TeamCity, należy rozważyć użycie właściwości systemu teamcity.auth.userId/teamcity.auth.password jako poświadczenia dla artefaktów pobrania request: w ten sposób TeamCity będzie miał sposób na zapisanie, że jedna kompilacja wykorzystała artefakty innej i wyświetli ją na karcie Zależności kompilacji.

Czy próbowałeś tego?

+2

tak. powoduje to, że pojedyncze elementy budują 1 na 1. Mogę użyć starego linku "pobierz wszystko" w moim pytaniu, aby uzyskać pojedyncze ZIP całego zestawu artefcatów. Szukałem API REST, aby zrobić to samo. –

1

Nie jestem pewien, czy jest to udokumentowane, ale działa.

http://teamcity-url/downloadArtifacts.html?buildId=216886 

Jeśli używasz go z .NET można użyć następującego kodu:

List<string> downloadedFiles = new RemoteTc() 
    .Connect(a => a.ToHost("tc").AsGuest()) 
    .DownloadArtifacts(123, @"C:\DownloadedArtifacts"); 

Powyższy kod używa FluentTc biblioteka

2

Można użyć tego adresu URL, to działa na mnie:

http://<TeamcityUrl>/httpAuth/app/rest/builds/id:<BuildId>/artifacts/archived 

używam TeamCity 9.

Powiązane problemy