Найти имя службы сборки проекта в конвейере Azure

#azure-pipelines

#azure-конвейеры

Вопрос:

У меня есть конвейер сборки в Azure DevOps, который фиксирует изменения в репозитории Git в моем проекте DevOps. Я смог заставить это работать, следуя этим инструкциям, и это включает добавление следующего, чтобы сообщить Git, чье имя должно быть связано с фиксацией:

 git config --global user.email "you@example.com"
git config --global user.name "Your Name"
  

Я хотел бы, чтобы это было зафиксировано под именем службы сборки уровня проекта — идентификатора, разрешения которого наследуются при выполнении сборки. Имя этого идентификатора соответствует формату «<название проекта> Служба сборки (<название организации>)».

Я бы предпочел не жестко кодировать это в конвейере на случай, если оно когда-либо изменится, поэтому мой вопрос таков: как это имя может быть извлечено и использовано в качестве переменной в конвейере?

Заранее спасибо.

Ответ №1:

К сожалению, по умолчанию невозможно получить имя службы сборки проекта из конвейера. При создании нового проекта учетная запись службы сборки проекта будет создана автоматически. Затем вы можете найти учетную запись службы в качестве участника в группе службы безопасности в настройках организации, если она не будет удалена. Как правило, эта учетная запись не изменится.

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

1. Существует параметр под названием «Ограничить область авторизации задания текущим проектом для конвейеров без выпуска», который определяет, используется ли идентификатор службы сборки на уровне проекта или коллекции для наследования разрешений. Именно этот параметр я беспокоюсь об изменении больше всего. Возможно, я просто свяжу коммит с другим именем, чтобы избежать возможной путаницы.

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

Ответ №2:

У вас могут быть переменные Build.QueuedBy и Build.QueuedById , это всегда будет идентификатор системы, например: [DefaultCollection]Project Collection Service Accounts .

Вы можете найти здесь более подробную информацию.

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

1. Я должен признать, что я не пробовал этого, потому что документация, на которую вы ссылались, предполагает, что если вы поставите сборку в очередь вручную, Build.QueuedBy это будете вы. Я поддержал ваше предложение, и, к сожалению, это так.