#git #azure-devops #azure-pipelines #azure-pipelines-build-task
#git #azure-devops #azure-конвейеры #azure-pipelines-build-task
Вопрос:
Кто-нибудь знает, как VSTS создает свой список связанных коммитов для сборки?
Я специально ищу те, которые создаются при создании новой ветки. В настоящее время, похоже, просто создается список последних нескольких коммитов для разветвленной ветки from .
В идеале я хотел бы что-то похожее на git log master..<commit hash>
.
Мы надеялись использовать это в качестве документации к выпуску, создав новую ветку для выпуска, которая будет содержать полную историю коммитов для всей работы во всех объединенных в нее ветках, но, похоже, это не так.
Комментарии:
1. Это коммиты с момента последней успешной сборки этого определения. Но вы можете вызвать git из своей сборки, чтобы сгенерировать дополнительную информацию.
2. Вы также можете найти полезным VSTS Rest API. В частности, коммиты Git могут помочь: visualstudio.com/en-us/docs/integrate/api/git/commits
3. Вы решаете эту проблему с помощью нашего решения?
4. Я могу получить полную историю коммитов, если создам новую ветку и создам с ее помощью, можете ли вы поделиться своими шагами?
5. Я сделал так, как сказал @ChrisMelinn: получил текущую информацию о сборке, затем запросил прошлые запуски сборки, выбрал только те, которые соответствуют моему определению, успешны и выполняются в той же ветке, что и моя текущая. Затем я взял верхний из полученного списка. И, таким образом, я получил хэш коммита, из которого была собрана эта успешная сборка. Затем я спросил API о коммит между этими двумя, и это дало мне необходимую информацию. Вроде как не просто, но хоть что-то.
Ответ №1:
Он включает текущую фиксацию и предыдущие неудачные коммиты сборки, если они есть. Например:
- Сбой сборки (Comment commit 01), связанные изменения: фиксация 01
- Сбой сборки (Comment commit 02), связанные изменения: фиксация 02 фиксация 01
- Сборка выполнена успешно (Comment commit 03), связанные изменения: фиксация 03 фиксация 02 фиксация 01
- Сборка выполнена успешно (comment commit 04), связанные изменения: commit 04
Таким образом, он не будет включать все коммиты.
Чтобы получить все коммиты, вы можете перейти к Коду => Выбрать файл или папку => Нажать история, тогда история будет указана.
Вы также можете получать коммиты через REST API (как сказал Чирс Мелинн).
Комментарии:
1. Это вроде как близко. Но не совсем. Похоже, что VSTS использует внутри какой-то API, который не был открыт (пока?), Но попробуйте, например, удалить некоторые успешные сборки и запустить новую. Он не будет собирать коммиты, которые ранее были связаны с другими сборками.
2. Еще одна мысль: что, если сборка была частично успешной? Должны ли мы считать включенные в него коммиты или нет?