다음을 통해 공유


자습서: GitHub Actions에서 vcpkg Git 기반 레지스트리 인증

프라이빗 레지스트리에서 vcpkg를 사용하는 경우 vcpkg에서 내부적으로 실행되는 Git 작업을 인증하기 위해 액세스 자격 증명을 제공해야 합니다.

이 자습서에서는 GitHub Actions 워크플로에서 사용할 프라이빗 Git 리포지토리를 인증하는 방법을 알아봅니다.

필수 조건

  • GitHub 계정
  • GitHub에서 호스트되는 프라이빗 vcpkg Git-registry
  • vcpkg

1 - 개인 리포지토리에 대한 개인 액세스 토큰 만들기

GitHub의 지침에 따라 세분화된 PAT(개인 액세스 토큰) 를 생성하고 vcpkg Git 레지스트리가 호스트되는 프라이빗 리포지토리에 액세스할 수 있는 권한을 부여합니다.

2 - 워크플로에서 사용할 GitHub Actions 비밀 만들기

참고 항목

리포지토리 파일에 GitHub 개인용 액세스 토큰을 저장하지 마세요.

다음 단계는 GitHub의 지침에 따라 PAT를 GitHub Actions 워크플로에서 사용할 수 있는 비밀로 저장하는 것입니다.

3 - 워크플로에서 프라이빗 Git 리포지토리에 인증

이제 워크플로에 인증 단계를 추가하고 워크플로의 YAML 파일에서 다음 템플릿을 사용합니다. 예를 들어 https://github.com/Microsoft/secret-vcpkg-registry프라이빗 리포지토리의 URL로 바꿉니다. 이전 단계에서 만든 비밀 변수의 이름으로 바 PRIVATE_REGISTRY_PATPRIVATE_REPO_URL 니다.

이 워크플로 단계는 vcpkg를 호출하는 다른 워크플로 단계 전에 실행해야 합니다.

  - name: Authenticate private registries
    shell: bash
    run: git config --global credential.PRIVATE_REPO_URL.helper '!f() { echo username=unused; echo password=${{secrets.PRIVATE_REGISTRY_PAT }}; }; f'

여러 개인 리포지토리가 있는 예제

다음 예제에서는 패턴을 사용하여 여러 개인 리포지토리에 Git 자격 증명을 credential.<url>.helper 제공하는 방법을 보여 줍니다.

    - name: Authenticate private registries
      shell: bash
      run: |
          git config --global credential.https://github.com/vcpkg/private_registry.helper '!f() { echo username=unused; echo password=${{secrets.private_registry_pat}}; }; f'
          git config --global credential.https://github.com/vcpkg/secret_registry.helper `!f() { echo username=unused; echo password=${{secrets.secret_registry_pat}}; }; f'