В рамках определения сборки TFS 2017 R2 CI я пытаюсь объединить коммиты из одной ветви в другую. Если вы можете вообразить, что добавляется исправление в тестовой среде, то в рамках сборки я запускаю несколько команд git.
В ветвях включены политики, которые по существу требуют запросов на получение для фиксации. Чтобы этот поток работал, мне нужно освободить агент сборки от политик филиала.
Моя сборка def - это отдельный скрипт powershell, который запускает whoami, затем git merge и затем git push. Whoami возвращает пользователя:
domain\adminAccount
У учетной записи администратора есть следующие свойства разрешения:
- Уровень сбора: член группы учетных записей служб
- Уровень командного проекта: группа учетных записей служб является членом группы администраторов сборки
- Уровень репозитория: для группы «Администраторы сборки» установлено разрешение «Освобождение от применения политик».
- Индивидуальный уровень: если я добавлю этого пользователя и отследю его освобождение от разрешений на принудительное применение политики, он покажет «наследуемое разрешение». Смотрите изображение ниже.
Однако, когда я пытаюсь протолкнуть коммит в ветку, я получаю ошибку TFS:
TF402455: Pushes to this branch are not permitted; you must use a pull request to update this branch.
Если эти разрешения учетной записи верны, и когда я выполняю эти сценарии, они показывают эту учетную запись как используемую, что мне не хватает? Есть ли какая-то логика черного ящика о том, какая учетная запись на самом деле выполняет эту функцию, которую я должен освободить от применения политики?