이 Azure DevOps API 호출을 사용하려고합니다.
GET https://dev.azure.com/{organization}/_apis/projects/{projectId}?api-version=5.1
여기 에 문서화 되어 ID가있을 때 프로젝트 이름을 검색합니다. 파이프 라인은 정의 된 프로젝트가 아닌 다른 프로젝트에 대한 프로젝트 정보를 검색하려고합니다. 다음은 파이프 라인이 자체 프로젝트 ID를 제공 할 때 작동하는 코드입니다.
$VstsBaseRestUrl = "$(System.TeamFoundationCollectionUri)"
$projectsUrl = "$VstsBaseRestUrl/_apis/projects/${{ parameters.project }}?api-version=5.1"
$rawResponse = Invoke-WebRequest -UseDefaultCredentials -Uri $projectsUrl -Method Get -ContentType "application/json" -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
응답은 다음과 같이 반환됩니다.
{"$id":"1","innerException":null,"message":"VS800075: The project with id 'vstfs:///Classification/TeamProject/xxxxx' does not exist, or you do not have permission to access it.","typeName":"Microsoft.TeamFoundation.Core.WebApi.ProjectDoesNotExistException, Microsoft.TeamFoundation.Core.WebApi","typeKey":"ProjectDoesNotExistException","errorCode":0,"eventId":3000}
올바른 프로젝트 ID를 사용하고 있는데 파이프 라인에이 호출을 승인 할 권한을 부여하려면 어떻게해야합니까?
참고 : 필요하지 않은 경우 PAT를 사용하지 않습니다. 즉, SYSTEM_ACCESSTOKEN 접근 방식이 계속 작동하도록 어떻게 든 빌드 계정에이를 부여합니다.
위의 rest api를 호출하여 프로젝트 A의 파이프 라인에서 프로젝트 B의 정보를 검색한다고 가정 해 보겠습니다.
View project-level information
프로젝트 B에서 프로젝트 A의 빌드 서비스 계정을 부여해야합니다 . 다음은 세부 단계입니다.
1, 프로젝트 B (정보를 검색하려는 프로젝트) 의 프로젝트 설정 으로 이동 -> 권한 -> 관리자 그룹 빌드 선택 (새 그룹을 생성 할 수도 있음)
2, 클릭 회원 빌드 관리자 그룹의 탭을 -> 클릭 추가 > 프로젝트 A의 빌드 서비스 계정 추가 -
프로젝트 A의 빌드 서비스 계정은 다음과 같습니다. NameofProjectA 빌드 서비스 (NameofOrganization) 예. ProjectA 빌드 서비스 (MyOrganization)
선택 과목:
프로젝트 B에서 새 그룹을 만들고 프로젝트 A의 빌드 서비스 계정을 구성원에게 추가 할 수도 있습니다. 그리고 View project-level information
허용 되는지 확인하십시오
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다