İngilizce dilinde oku

Aracılığıyla paylaş


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 approvearacı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:

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_UNTRACKEDkullanarakVCPKG_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 .