원격 인증
레지스트리 및 vcpkg_from_git()
Git 명령줄 도구를 직접 사용하여 원격 리소스를 가져옵니다. 이러한 리소스 중 일부는 익명 액세스로부터 보호되고 인증 또는 자격 증명이 필요할 수 있습니다.
아래 전략은 모두 동일한 기본 목표를 달성하기 위해 노력합니다. git clone https://....
상호 작용 없이 성공해야 합니다. 이렇게 하면 vcpkg를 인증 체계의 세부 사항과 분리하여 향후 추가 보안 개선 사항과의 호환성을 보장할 수 있습니다.
다음을 통해 git 자격 증명을 미리 시드할 git credential approve
수 있습니다.
Powershell:
"url=https://github.com`npath=Microsoft/vcpkg`nusername=unused`npassword=$MY_PAT`n" | git credential approve
Bash:
echo "url=https://github.com"$'\n'"path=Microsoft/vcpkg"$'\n'"username=unused"$'\n'"password=$MY_PAT"$'\n' | git credential approve
전달자 인증이 필요한 시스템의 경우 다음을 사용할 git config
수 있습니다.
참고
다음을 사용하여 이러한 구성을 변경해야 합니다. --global
git config --global --unset-all http.<uri>.extraheader
git config --global http.<uri>.extraheader "AUTHORIZATION: bearer <System_AccessToken>"
예를 <uri>
들어 https://dev.azure.com/MYORG/
다양한 옵션으로 채울 수 있습니다. 자세한 내용은 설명서를 참조하세요 git config
.
(원본 원본: 빌드 프로세스에서 git 리포지토리에 대해 인증하는 가장 좋은 방법).
Azure DevOps 사용자: 작업 권한 부여 범위를 통해 액세스를 사용하도록 설정하고 yaml 파이프라인에서 리포지토리를 참조해야 할 수 있습니다.
resources:
repositories:
- repository: <FRIENDLYNAME>
type: git
name: <ORG>/<REPO>
tag: tags/<TAG>
...
jobs:
- job: Build
uses:
repositories: [<FRIENDLYNAME>]
사용 VCPKG_KEEP_ENV_VARS
하거나 VCPKG_ENV_PASSTHROUGH_UNTRACKED
환경을 통해 자격 증명을 전달할 수 있습니다.
export VCPKG_KEEP_ENV_VARS=MY_TOKEN_VAR
export MY_TOKEN_VAR=abc123
그런 다음 pvcpkg_from_git()
또는 vcpkg_from_github()
도우미를 사용하여 프라이빗 포트에서 사용할 수 있습니다.
# vcpkg-from-git-example/portfile.cmake
set(MY_TOKEN_VAR "")
if(DEFINED ENV{MY_TOKEN_VAR})
set(MY_TOKEN_VAR "$ENV{MY_TOKEN_VAR}@")
endif()
vcpkg_from_git(
URLS "https://${MY_TOKEN_VAR}host.com/normal/url/path"
...
)
# vcpkg-from-github-example/portfile.cmake
vcpkg_from_github(
AUTHORIZATION_TOKEN "$ENV{MY_TOKEN_VAR}"
)
프라이빗 포트의 경우 위의 사전 시드 방법 대신 vcpkg_from_github()
사용하는 vcpkg_from_git()
것이 좋습니다.
Jenkins에서 GitHub에 대한 Git 인증에 대한 가장 간단하고 안전한 옵션은 GitHub 앱과 다음을 사용하는 것입니다.
withCredentials([gitUsernamePassword(credentialsId: 'jenkins-github-app')]) {
withEnv(['VCPKG_KEEP_ENV_VARS=GIT_ASKPASS']) {
bat 'cmake'
}
}
그러면 git 자격 증명 쿼리로 응답하고 이 환경 변수를 유지하도록 지시하는 도우미 스크립트에 대한 경로가 설정 GIT_ASKPASS
됩니다 vcpkg
. 암호는 1시간 수명이 있는 GitHub 앱 토큰 입니다.
vcpkg 피드백
vcpkg은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.