Запуск персональной сборки через TeamCity REST API

Я просмотрел архивы SO для этого, и, хотя есть много похожих вопросов, ничто не отвечает на мой конкретный вопрос.

Мы используем git в качестве VCS, и я хочу иметь возможность запускать удаленную сборку, где исходное дерево является точным зеркалом всего, что находится на локальном компьютере пользователя, включая любые локальные изменения, которые они сделали. Если я просто буду следовать приведенным здесь инструкциям, то у меня не будет возможности сказать, к какой версии применить патч поверх. Действительно, пару раз я пытался сделать что-то в точности так, как описано в документации, но в журнале сборки я получаю сообщение об ошибке «Не удалось применить патч».

Я чувствую, что мне нужен REST-эквивалент выбора чего-либо в раскрывающемся списке «Изменения> Включить изменения». Таким образом, я могу выбрать точный хеш git, который я хочу использовать в качестве корня VCS, что должно гарантировать, что патч можно будет аккуратно применить поверх него.

Но как мне это сделать? Я действительно не понимаю <lastChanges> xml очень хорошо.

      <lastChanges>
    <change id="{id_returned_from_uploading_diff}" personal="true"/>
</lastChanges>

Могу ли я добавить что-нибудь в этот blob, чтобы патч применялся поверх определенного хэша git? К сожалению, изменение «id» само по себе не является хешем git, например, учитывая хеш git, я могу использовать такой запрос, как

      https://<teamcity-server>/app/rest/changes?locator=version:<git-hash>

и получить обратно список множества разных «идентификаторов изменений» с одним и тем же хешем git, что меня немного сбивает с толку, потому что теперь я не знаю, какой идентификатор изменения использовать.

В любом случае, надеюсь, кто-нибудь сможет прояснить это для меня.

0 ответов

Другие вопросы по тегам