Azure Pipelines: я становлюсь фатальным: не удалось прочитать имя пользователя для «https://github.com»: запросы терминала отключены

У меня есть задача powershell, настроенная в конвейерах сборки Azure, чтобы объединить изменения из dev в master моего общедоступного репозитория github и отправить изменения в master. я осознаю

fatal: could not read Username for 'https://github.com': terminal prompts disabled

Примечание:

  • Я настроил свой gitconfig с моим именем пользователя и адресом электронной почты.
  • Git push работает нормально, когда я делаю изменения в файлах и делаю фиксации и нажатия, но выдает эту ошибку, когда я объединяюсь и нажимаю
  • У меня достаточно прав, чтобы нажать в ветке

Любая помощь в этом будет высоко оценена. В случае необходимости дополнительной информации, комментарий в этой теме.

Это настоящий фрагмент.

$branchName = $env:BRANCH_NAME;

Write-Host "Getting SHA for last commit in the latest release" -ForegroundColor Blue;
$latestReleaseCommitSHA = git rev-list --tags --max-count=1;

if ([string]::IsNullOrEmpty($latestReleaseCommitSHA)) {
    Write-Host "Unable to get the SHA for last commit in latest release" -ForegroundColor Red;
    EXIT 1;
}

Write-Host "SHA for last commit in the latest release is '$($latestReleaseCommitSHA)'" -ForegroundColor Green;

Write-Host "Merging Changes till '$($latestReleaseCommitSHA)'" -ForegroundColor Blue;
git merge $latestReleaseCommitSHA

Write-Host "Checking Conflicted Files";
$conflictedFiles = git diff --name-only --diff-filter=U

if (-Not [string]::IsNullOrEmpty($conflictedFiles)) {
    Write-Host "Unable to Merge" -ForegroundColor Red;
    Write-Host "There are conflicts in below files:" -ForegroundColor Cyan;
    Write-Host -Object $conflictedFiles -ForegroundColor Cyan;
    EXIT 1;
}

Write-Host "Merged changes to '$($branchName)'" -ForegroundColor Green;

Write-Host "Pushing changes." -ForegroundColor Blue;
git push origin HEAD:$branchName

Write-Host "Pushed the changes to the $($branchName) branch." -ForegroundColor Green;

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

4c74356b41 08.04.2019 09:13

попробовав локальные средства на моей собственной машине вместо лазурных конвейеров или в локальном репо?

Muthurathinam 08.04.2019 09:54

ну, учитывая эту ошибку, я вполне уверен, что ему не хватает разрешений на отправку, потому что иначе зачем запрашивать имя пользователя\пароль

4c74356b41 08.04.2019 10:12

@Muthurathinam попробуйте мой ответ ниже, я также получил эту ошибку при слиянии, и я решил ее.

Shayki Abramczyk 08.04.2019 11:06

Привет @Muthurathinam, надеюсь, вы не возражаете, если я спрошу: вам действительно нужно написать сценарий слияния и отправки? Такого рода вещи обычно можно сделать гораздо проще в azure devops с помощью запроса на извлечение.

Vince Bowdren 16.04.2019 12:33
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
18
5
20 616
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Я не знаю, почему, но когда вы пытаетесь push после merge git, вам нужны имя пользователя и пароль.

Azure DevOps по умолчанию отключает запрос на ввод учетных данных, и вы получаете ошибку.

Вы можете включить подсказку, установив для переменной среды GIT_TERMINAL_PROMPT значение 1, но во время сборки вы не сможете ввести значения, и сборка зависнет.

Чтобы исправить ошибку, просто добавьте имя пользователя и пароль или токен личного доступа (PAT) в команду git push:

git push https://username:password(or PAT)@github.com/username/reponame.git 

https://... заменяет origin.

использование личного токена доступа вместо имени пользователя и пароля сработало.

Muthurathinam 08.04.2019 11:11

Вместо того, чтобы вставлять пароль в командную строку, вы можете использовать для этого системную переменную. См. ответ Даррена Роджерса ниже.

Igor 10.03.2020 16:14

Не та же самая ситуация, что и у вас, но это был единственный пост, который был близок к моей похожей ситуации, поэтому я подумал, что стоит добавить сюда свое решение. У меня была эта ошибка в размещенном Ubuntu Azure Pipeline, выполняя командную задачу оболочки для проверки, редактирования и отправки в git.

Я получил ошибку при попытке нажать с помощью команды:

git push

Я исправил это, изменив команду на:

git -c http.extraheader = "AUTHORIZATION: bearer $(System.AccessToken)" push

$(System.AccessToken) — это предопределенная переменная в Azure Pipelines: https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&viewFallbackFrom=vsts&tabs=yaml

Еще один ключевой элемент, который следует использовать вместе с командой с использованием System.AccessToken, вам нужно включить Allow scripts to access the OAuth token в разделе «Дополнительные параметры задания» (который упоминается в приведенной вами ссылке).

Jordan 25.03.2020 16:27

Существует встроенная «служебная учетная запись», которая на самом деле является PAT, называемой Project Collection Build Service, не путать с Project Collection Build Service Accountsгруппа.

От кого: https://marcstan.net/blog/2018/08/31/Зеркало-github-gitlab-and-VSTS-репозитории/

Trivia: In case you didn't know "$env:SYSTEM_ACCESSTOKEN" is a PAT (Personal/Private Access Token) that is auto generated by the build server (but disabled by default) and allows to authenticate against VSTS from inside your builds and releases. To enable it, you have select the "agent job" inside your build or release definition and check the "Allow scripts to access the OAuth token" checkbox under "Additional options".

Для этого есть два шага:

Шаг 1

Чтобы избавиться от ошибки fatal: could not read username for..., нам нужно разрешить скриптам доступ к токену OAuth. Если вы используете новейший Azure Pipeline на основе YAML, вы будете искать вариант «Разрешить скриптам доступ к токену OAuth» в пользовательском интерфейсе. Ответ Microsoft: здесь. В вашем файле YAML (azure-pipelines.yml) добавьте:

steps:
- checkout: self
  persistCredentials: true

Шаг 2

После устранения ошибки ОП я не смог зафиксировать, получив ошибку:

remote: 001f# service=git-receive-pack
remote: 0000000000aaTF401027: You need the Git 'GenericContribute' permission to perform this action. Details: identity 'Build\c21ba3ac-5ad4-de50-bc1a-12ee21de21f0', scope 'repository'.
remote: TF401027: You need the Git 'GenericContribute' permission to perform this action. Details: identity 'Build\c21ba3ac-5ad4-de50-bc1a-12ee21de21f0', scope 'repository'.
fatal: unable to access 'https://[username].visualstudio.com/[repo]/_git/[repo]/': The requested URL returned error: 403

Мы также должны дать ему разрешения. Из та же страница, как указано выше. Добавьте ПользовательProject Collection Build Service в свои репозитории.

Примечание. Пользователь (1), а не группа (2).

Грант:

Contribute: Allow
Create Branch: Allow
Create Tag: Allow (Inherited)
Read: Allow (Inherited)

ХТН

Основываясь на этом ответе, если вы все еще используете старый формат URL, эту же страницу можно найти здесь: https://[organization].visualstudio.com/DefaultCollection/[p‌​roject]/_settings/re‌​positories?repoGroup‌​ =true&_a=безопасность

Doug 26.08.2019 22:46

К сожалению, я также столкнулся с ошибкой «Вам нужно разрешение Git 'GenericContribute'» во время сценария сборки торта, хотя единственное, что я нажимал, был тег (например, git push origin refs/tags/1.0.0.0) и Create Разрешение тега установлено на Разрешить! Я бы предпочел не давать разрешение на внесение вклада, но, похоже, это все же было необходимо.

killercowuk 13.01.2020 10:33

Это очень полезный ответ.

aDisplayName 25.08.2020 10:48

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