web-dev-qa-db-ja.com

Azure Pipelines:致命的になります: 'https://github.com'のユーザー名を読み取れませんでした:ターミナルプロンプトが無効になっています

Azureビルドパイプラインでpowershellタスクを構成して、githubパブリックリポジトリの開発からマスターへの変更をマージし、変更をマスターにプッシュします。私は得ています

致命的: ' https://github.com 'のユーザー名を読み取れませんでした:端末プロンプトが無効になっています

注意:

  • ユーザー名とメールIDでgitconfigを構成しました。
  • ファイルに変更を加えてコミットしてプッシュすると、Gitプッシュは正常に機能しますが、マージしてプッシュすると、このエラーがスローされます
  • 私はブランチをプッシュする十分な特権を持っています

これに関するどんな助けでも大歓迎です。さらに情報が必要な場合は、このスレッドでコメントしてください。

これは実際のスニペットです。

$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;
9
Muthurathinam

理由はわかりませんが、Pushの後にmergeを試すと、gitでユーザー名とパスワードが必要になります。

Azure DevOpsでは、デフォルトでプロンプトを無効にして資格情報を入力すると、エラーが発生します。

プロンプトを有効にするには、環境変数GIT_TERMINAL_Prompt1に設定しますが、ビルド中は値を入力できず、ビルドがハングします。

エラーを修正するには、git Pushコマンドにユーザー名とパスワードまたはPersonal Access Token(PAT)を追加するだけです。

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

https://...Originを置き換えます。

0

組み込みの「サービスアカウント」があり、これは実際にはProject Collection Build ServiceというPATであり、Project Collection Build Service Accountsgroupと混同しないでください。

差出人: https://marcstan.net/blog/2018/08/31/Mirror-github-gitlab-and-VSTS-repositories/

雑学:「$ env:SYSTEM_ACCESSTOKEN」がビルドサーバーによって自動生成されたPAT(個人/プライベートアクセストークン)であり、ビルド内からVSTSに対して認証できるPAT(個人/プライベートアクセストークン)リリース。これを有効にするには、ビルドまたはリリース定義内の「エージェントジョブ」を選択し、「追加オプション」の下にある「スクリプトにOAuthトークンへのアクセスを許可する」チェックボックスをオンにします。

これには2つのステップがあります。

ステップ1

fatal: could not read username for...エラーを取り除くには、スクリプトがOAuthトークンにアクセスすることを許可する必要があります。最新のYAMLベースのAzure Pipelineを使用している場合は、 「スクリプトがUIのOAuth token」オプションにアクセスすることを許可します。Microsoftの回答は here です。 =。YAMLファイル(Azure-pipelines.yml)に、以下を追加します。

steps:
- checkout: self
  persistCredentials: true

ステップ2

OPのエラーを解決した後、コミットできず、エラーを受け取りました。

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

また、アクセス許可を与える必要があります。上記の 同じページ から。 userProject Collection Build Serviceをリポジトリに追加します。

enter image description here

注:ユーザー(1)であり、グループ(2)ではありません。

付与:

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

HTH

10
woter324

まったく同じ状況ではありませんが、これは私の同様の状況に近づいた唯一の投稿なので、ここに私の解決策を追加する価値があると思いました。ホストされている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

9
Darren Rogers