VSTS создает связанные коммиты

#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:

Он включает текущую фиксацию и предыдущие неудачные коммиты сборки, если они есть. Например:

  1. Сбой сборки (Comment commit 01), связанные изменения: фиксация 01
  2. Сбой сборки (Comment commit 02), связанные изменения: фиксация 02 фиксация 01
  3. Сборка выполнена успешно (Comment commit 03), связанные изменения: фиксация 03 фиксация 02 фиксация 01
  4. Сборка выполнена успешно (comment commit 04), связанные изменения: commit 04

Таким образом, он не будет включать все коммиты.

Чтобы получить все коммиты, вы можете перейти к Коду => Выбрать файл или папку => Нажать история, тогда история будет указана.

Вы также можете получать коммиты через REST API (как сказал Чирс Мелинн).

Комментарии:

1. Это вроде как близко. Но не совсем. Похоже, что VSTS использует внутри какой-то API, который не был открыт (пока?), Но попробуйте, например, удалить некоторые успешные сборки и запустить новую. Он не будет собирать коммиты, которые ранее были связаны с другими сборками.

2. Еще одна мысль: что, если сборка была частично успешной? Должны ли мы считать включенные в него коммиты или нет?