#azure-devops #azure-pipelines-release-task #azure-pipelines-tasks
#azure-devops #azure-pipelines-release-task #azure-конвейеры-задачи
Вопрос:
Я также создал токен аутентификации, все разрешения для пользователя, который запускает конвейер, определены
Комментарии:
1. Привет, у вас была возможность попробовать решение ниже? Как все прошло?
Ответ №1:
Если вы проверили Run with Build Agent Credentials
аутентификацию в задаче. И учетной записи сборки {ProjectName} build service ({OrganizationName})
было предоставлено разрешение на чтение и внесение вклада на странице безопасности Wiki.
Но вы все равно сталкиваетесь с вышеуказанной ошибкой. Вероятно, это связано с тем, что у вас включена базовая проверка подлинности IIS на сервере Azure DevOps. Когда на вашем компьютере с Windows включена базовая проверка подлинности IIS, это не позволяет вам использовать токены личного доступа (PATs) в качестве механизма аутентификации. Смотрите здесь.
Мы рекомендуем вам постоянно отключать базовую проверку подлинности IIS при использовании сервера Azure DevOps. Только при необходимости вы должны включить базовую аутентификацию IIS. Когда на вашем компьютере с Windows включена базовая проверка подлинности IIS, это не позволяет вам использовать токены личного доступа (PATs) в качестве механизма аутентификации.
В качестве обходного пути вы можете добавить дополнительный заголовок, который включает базовую кодировку 64 «user: PAT» для запросов Git, когда включена базовая аутентификация IIS:
Таким образом, вы можете запускать чистые команды git в задаче powershell для обновления вашего репозитория wiki вместо использования задачи обновления вики на основе git. Смотрите Ниже примеры сценариев в задаче powershell (формат yaml):
steps:
- powershell: |
git config --global user.email "your@eamil.com"
git config --global user.name "name"
$MyPat = "$(system.accesstoken)"
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$MyPat"))
#clone the wiki repo
git -c http.extraHeader="Authorization: Basic $B64Pat" clone https://server/collection/_git/Document.wiki -q
cd Document.wiki
#add a new file
echo echo "some-text" > addnew.md
git add .
git commit -m message
#push to wiki repo
git -c http.extraHeader="Authorization: Basic $B64Pat" push https://server/collection/_git/Document.wiki -q
displayName: 'update wiki'
Проверьте здесь для получения дополнительной информации.
Чтобы использовать токен OAuth агента сборки $(system.accesstoken)
в приведенном выше сценарии. Вам нужно нажать Agent job 1
и проверить опцию Allow scripts to access the OAuth token