source

Azure 파이프라인:치명적입니다. 'https://github.com '에 대한 사용자 이름을 읽을 수 없습니다. 터미널 프롬프트가 비활성화되었습니다.

manycodes 2023. 9. 3. 16:24
반응형

Azure 파이프라인:치명적입니다. 'https://github.com '에 대한 사용자 이름을 읽을 수 없습니다. 터미널 프롬프트가 비활성화되었습니다.

zure 빌드 파이프라인에서 dev에서 github public repo의 마스터로 변경 사항을 병합하고 변경 사항을 마스터로 푸시하기 위해 파워셸 작업을 구성했습니다.나는 받는 중입니다.

치명적: 'https://github.com '의 사용자 이름을 읽을 수 없음: 터미널 프롬프트가 비활성화됨

참고:

  • 사용자 이름과 이메일 ID로 Gitconfig를 구성했습니다.
  • Git 푸시는 내가 파일을 수정하고 commit and push를 할 때 잘 작동하지만 병합 및 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;

"서비스 계정"이 내장되어 있으며, 실제로는 PAT라고 합니다.Project Collection Build Service와 혼동하지 않는Project Collection Build Service Accounts 집단의

보낸 사람: https://marcstan.net/blog/2018/08/31/Mirror-github-gitlab-and-VSTS-repositories/

트리비아: "$env"를 모르는 경우:SYSTEM_ACCESSTOKEN"은 빌드 서버에서 자동으로 생성되며(기본적으로 비활성화됨) 빌드 및 릴리스 내에서 VSTS에 대해 인증할 수 있는 PAT(개인/개인 액세스 토큰)입니다.이를 활성화하려면 빌드 또는 릴리스 정의 내에서 "에이전트 작업"을 선택하고 "추가 옵션" 아래의 "스크립트에서 OAuth 토큰에 액세스할 수 있도록 허용" 확인란을 선택해야 합니다.

이를 위한 두 가지 단계가 있습니다.

1단계

제거하기 위해fatal: could not read username for...오류, 스크립트가 OAuth 토큰에 액세스하도록 허용해야 합니다.최신 YAML 기반 Azure Pipeline을 사용하는 경우 UI에서 "스크립트가 OAuth 토큰에 액세스할있도록 허용" 옵션을 사용할 수 있습니다.Microsoft의 답변은 여기에 있습니다.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

우리는 또한 그것에게 허가를 주어야 합니다.위와 같은 페이지에서.사용자 추가 Project Collection Build Service당신의 레포트(들)를 위하여.

enter image description here

참고: 그룹(2)이 아닌 사용자(1)입니다.

허가:

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

HTH

당신이 가지고 있는 것과 똑같은 상황은 아니지만 이 게시물이 나의 비슷한 상황에 근접한 유일한 게시물이었기 때문에 나는 여기에 나의 해결책을 추가할 가치가 있다고 생각했습니다.호스트된 Ubuntu Azure Pipeline에서 셸 명령 작업을 실행하여 체크아웃, 편집 및 git에 푸시하는 동안 이 오류가 발생했습니다.

다음 명령으로 푸시를 시도할 때 오류가 발생했습니다.

git push

명령을 다음으로 변경하여 수정했습니다.

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

$(시스템).AccessToken)은 Azure Pipeline의 미리 정의된 변수입니다. https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&viewFallbackFrom=vsts&tabs=yaml

왜 그런지는 모르겠지만 당신이 노력할 때.push나고끝 merge &password.git를 원합니다.

Azure DevOps는 기본적으로 자격 증명을 입력하라는 메시지를 사용하지 않도록 설정하면 오류가 발생합니다.

를 설정하여 할 수 .GIT_TERMINAL_PROMPT1그러나 빌드 중에는 값을 입력할 수 없으며 빌드가 중단됩니다.

& 또는 PAT)을 " "에 하십시오.git push명령:

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

https://...를합니다체를 합니다.origin.

언급URL : https://stackoverflow.com/questions/55567940/azure-pipelines-i-am-getting-fatal-could-not-read-username-for-https-github

반응형