Uzaktan kimlik doğrulaması
Kayıt defterleri ve vcpkg_from_git()
doğrudan Git komut satırı araçlarını kullanarak uzak kaynakları getirin. Bu kaynaklardan bazıları anonim erişime karşı korunabilir ve kimlik doğrulaması veya kimlik bilgileri gerekebilir.
Aşağıdaki stratejiler aynı temel hedefe ulaşmayı amaçlamaktadır: git clone https://....
etkileşim olmadan başarılı olmalıdır. Bu, vcpkg'nin kimlik doğrulama şemanızın özelliklerinden ayrılmasını sağlar ve gelecekte yapılacak ek güvenlik geliştirmeleriyle ileriye dönük uyumluluk sağlar.
Önceden tohumlanmış git kimlik bilgileri
git kimlik bilgilerini git credential approve
aracılığıyla önceden dağıtabilirsiniz:
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
Taşıyıcı kimlik doğrulaması
Taşıyıcı kimlik doğrulaması gereken sistemler için kullanabilirsiniz git config
:
Dekont
Bu yapılandırma değişikliklerini ile yapmalısınız --global
git config --global --unset-all http.<uri>.extraheader
git config --global http.<uri>.extraheader "AUTHORIZATION: bearer <System_AccessToken>"
<uri>
gibi çeşitli seçeneklerle https://dev.azure.com/MYORG/
doldurulabilir. Daha fazla ayrıntı için belgelere git config
bakın.
(Özgün kaynak: Derleme işleminde git deposunda kimlik doğrulamanın en iyi yolu).
Azure DevOps kullanıcıları: İş yetkilendirme kapsamı aracılığıyla erişimi etkinleştirmeniz ve yaml işlem hattınızdaki depoya başvurmanız gerekebilir:
resources:
repositories:
- repository: <FRIENDLYNAME>
type: git
name: <ORG>/<REPO>
tag: tags/<TAG>
...
jobs:
- job: Build
uses:
repositories: [<FRIENDLYNAME>]
Ortam değişkeninde kimlik bilgilerini geçirme (önerilmez)
veya VCPKG_ENV_PASSTHROUGH_UNTRACKED
kullanarakVCPKG_KEEP_ENV_VARS
, ortam üzerinden kimlik bilgilerini geçirebilirsiniz.
export VCPKG_KEEP_ENV_VARS=MY_TOKEN_VAR
export MY_TOKEN_VAR=abc123
Bu daha sonra özel bağlantı noktalarınızda pvcpkg_from_git()
veya vcpkg_from_github()
yardımcılarla birlikte kullanılabilir.
# 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}"
)
Özel bağlantı noktaları için, yerine ve yukarıdaki ön dağıtım yöntemini kullanmanızı vcpkg_from_git()
vcpkg_from_github()
öneririz.
Jenkins gitUsernamePassword kimlik bilgilerini geçirme
Jenkins'ten GitHub'a Git kimlik doğrulaması için en basit ve en güvenli seçenek GitHub Uygulamasını kullanmaktır ve aşağıdakileri kullanmaktır:
withCredentials([gitUsernamePassword(credentialsId: 'jenkins-github-app')]) {
withEnv(['VCPKG_KEEP_ENV_VARS=GIT_ASKPASS']) {
bat 'cmake'
}
}
Bu, GIT_ASKPASS
git kimlik bilgileri sorgusuyla yanıt veren ve bu ortam değişkenini koruma yönergelerini vcpkg
veren yardımcı betiğin yolunu ayarlar. Parola, 1 saatlik ömrü olan bir GitHub Uygulama belirtecidir .