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.
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ı gereken sistemler için kullanabilirsiniz git config
:
Not
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>]
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'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 .
vcpkg geri bildirimi
vcpkg, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin: