Запуск персональной сборки через 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, что меня немного сбивает с толку, потому что теперь я не знаю, какой идентификатор изменения использовать.
В любом случае, надеюсь, кто-нибудь сможет прояснить это для меня.