При отправке тегов в Azure Devops с помощью команд Powershell не задается информация о тегах

Привет, у меня есть выпуск, который автоматически помечает фиксацию выпуска в исходном репозитории с помощью некоторых команд git в сценарии PowerShell. Это ниже:

cd $(Agent.ReleaseDirectory)\_repo_root
git checkout $(Build.SourceVersion)
git tag $(RELEASE_TAG)
git push --tags

Write-Host tagged $(RELEASE_TAG) on commit $(Build.SourceVersion)

Он правильно помечает фиксацию выпуска, однако в пользовательском интерфейсе тегов ADO не отображается никакой информации о тегах:

Версия 4.1.0 была добавлена ​​вручную через диалоговое окно ADO, но версии > 4.2 были созданы с помощью приведенного выше сценария. Есть ли способ предоставить эту информацию ADO из сценария в конвейере выпуска?

Можете ли вы обнаружить эти различия и локально? Как они выглядят, преимущественно с точки зрения вывода git CLI? Кроме того, можете ли вы воспроизвести это локально? Какой пользователь выполняет эти команды? Тем не менее, существуют так называемые аннотированные и облегченные теги. Объясняет ли это разницу?

Ulrich Eckhardt 26.08.2024 22:29

да, я могу запустить приведенную выше PowerShell, создавать и отправлять теги в репозиторий ADO с помощью команд git, но дополнительная информация о том, когда тег был зафиксирован и кто его создал, никогда не добавляется в пользовательский интерфейс тегов в ADO.

cobolstinks 26.08.2024 22:32
stackoverflow.com/questions/tagged/ado — этот TLA уже занят. ;)
Ulrich Eckhardt 26.08.2024 22:35
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я могу воспроизвести то же самое с вашим кодом в конвейере выпуска:

Это связано с тем, что облегченные теги отображаются с именем тега и фиксацией, только аннотированные теги отображаются с именем тега, сообщением, фиксацией, тегом и датой создания (ссылка на документ ).

Пожалуйста, оставьте комментарий при добавлении тега: git tag $(RELEASE_TAG) -m "test tag".

Кроме того, вы используете идентификаторы сборки с ограниченной областью, чей токен $(system.accesstoken) предназначен для отправки тега в репозиторий, идентификатор не включает личную информацию, такую ​​​​как имя или адрес электронной почты. Вам нужно добавить информацию о пользователе с помощью команды git config.

Код ниже работает:

cd "$(Agent.ReleaseDirectory)\_repo_root"
git checkout $(Build.SourceVersion)
git config --global user.name "testuser"            # add user info and email
git config --global user.email "[email protected]"
git tag $(RELEASE_TAG) -m "test tag"                # add comment for tag
git push --tags
Write-Host tagged $(RELEASE_TAG) on commit $(Build.SourceVersion)

Он имеет информацию о теге, как показано ниже:

Добавьте еще:

В конвейере выпуска отметьте опцию Allow scripts to access the OAuth token, чтобы разрешить команде git использовать идентификатор сборки с ограниченной областью действия.

Как указано в приведенной выше ссылке, существует два типа идентификаторов сборки, мой пример ниже для справки. При настройке проекта подтвердите личность, это идентификатор сборки в рамках проекта ({Project Name} Build Service ({Org Name})) на моей стороне.

На target repo, который вы хотите добавить тег, предоставьте разрешение на идентификацию.

Как предоставить учетные данные для git user.name, указанного в скрипте? У меня возникают проблемы с аутентификацией, когда я пробую ваше решение и пытаюсь выяснить, как предоставить сценарию необходимые учетные данные.

cobolstinks 27.08.2024 23:52

В конвейере выпуска stage->agent job-> отметьте опцию Allow scripts to access the OAuth token, чтобы команда git использовала ее для добавления тегов. Я отредактирую с подробностями.

wade zhou - MSFT 28.08.2024 03:30

Спасибо, похоже, это помогло, хотя я обновил команду push следующим образом: git push https://:$env:[email protected]/MYORG/MYPROJE‌​CT/_git/MYREPO --tags

cobolstinks 28.08.2024 16:17

Рад знать, что это работает. Да, вы также можете использовать идентификатор в команде push. Приятного кодирования!

wade zhou - MSFT 29.08.2024 04:04

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

Похожие вопросы