Невозможно загрузить артефакт из TeamCity с помощью REST API - PullRequest
0 голосов
/ 30 октября 2018

У меня проблемы с загрузкой артефактов из TeamCity. На странице слияния TeamCity указано использование

/repository/download/BUILD_TYPE_EXT_ID/.lastFinished/ARTIFACT_PATH
/repository/download/BUILD_TYPE_EXT_ID/.lastSuccessful/ARTIFACT_PATH
/repository/download/BUILD_TYPE_EXT_ID/.lastPinned/ARTIFACT_PATH

для загрузки артефактов. Однако я всегда получал бы страницу 404, не найденную. Например, если я посмотрю на строку URL для артефакта, который я хочу загрузить в TeamCity

https://teamcity.MyServer.com/viewLog.html?buildId=12345&buildTypeId=MyProjectName&tab=artifacts

А затем я заполняю вызов API REST в соответствии со страницей слияния

https://teamcity.MyServer.com/repository/download/MyProjectName/.lastSuccessful/12345

Я бы всегда получал страницу 404, не найденную. И просто для проверки работоспособности я тоже попробовал

https://teamcity.MyServer.com/httpAuth/repository/download/MyProjectName/.lastFinished/artifact_folder.zip
https://teamcity.MyServer.com/httpAuth/repository/download/MyProjectName/.lastFinished/artifact_folder
https://teamcity.MyServer.com/httpAuth/repository/download/MyProjectName/.lastFinished/httpAuth/app/rest/builds/id:1234/artifacts/children/artifact_folder/v0.1.3

но ни один из них не работает.

Когда я сокращаю URL до

https://teamcity.MyServer.com/repository/download/MyProjectName

Я вижу страницу с URL-ссылками, однако, когда я нажимаю на любую из них, я получаю ERR_CONNECTION_TIMED_OUT, This site can’t be reached

Я сейчас использую Как программно загрузить артефакты из последней сборки Team City с использованием C #? чтобы загрузить артефакты, но я чувствую, что официальный документированный способ должен работать.

Так как мне заставить /repository/download/ работать?

1 Ответ

0 голосов
/ 05 ноября 2018

ARTIFACT_PATH - это путь к файлу, а не к папке. Таким образом, правильный URL будет: https://teamcity.MyServer.com/httpAuth/repository/download/MyProjectName/.lastFinished/ARTIFACT_PATH

Например, если на вкладке Артефакты вы видите следующую структуру «t100 / generic / test.log», тогда ARTIFACT_PATH будет t100 / generic / test.log

...