Samouczek: uwierzytelnianie rejestrów opartych na narzędziu vcpkg w usłudze GitHub Actions
W przypadku korzystania z narzędzia vcpkg z rejestrami prywatnymi konieczne jest zapewnienie poświadczeń dostępu do uwierzytelniania operacji usługi Git wykonywanych wewnętrznie przez program vcpkg.
Z tego samouczka dowiesz się, jak uwierzytelnić prywatne repozytorium Git do użycia w przepływie pracy funkcji GitHub Actions.
Wymagania wstępne
- Konto usługi GitHub
- Prywatny rejestr gitcpkg hostowany w usłudze GitHub
- vcpkg
1 — Tworzenie osobistego tokenu dostępu dla repozytorium prywatnego
Postępuj zgodnie z instrukcjami w witrynie GitHub, aby wygenerować szczegółowe osobiste tokeny dostępu (PAT) i przyznać mu uprawnienia dostępu do prywatnego repozytorium, w którym jest hostowany rejestr git vcpkg.
2 — Tworzenie wpisu tajnego funkcji GitHub Actions do użycia w przepływie pracy
Uwaga
Nigdy nie przechowuj osobistego tokenu dostępu usługi GitHub w plikach repozytorium
Następnym krokiem jest wykonanie instrukcji usługi GitHub dotyczących przechowywania tokenu dostępu jako wpisu tajnego dostępnego w przepływach pracy funkcji GitHub Actions.
3 — Uwierzytelnianie w prywatnych repozytoriach Git w przepływie pracy
Teraz nadszedł czas, aby dodać krok uwierzytelniania do przepływu pracy, użyj następującego szablonu w pliku YAML przepływu pracy. Zastąp PRIVATE_REPO_URL
ciąg adresem URL repozytorium prywatnego, na przykład: https://github.com/Microsoft/secret-vcpkg-registry
; zastąp PRIVATE_REGISTRY_PAT
ciąg nazwą zmiennej tajnej utworzonej w poprzednim kroku.
Ten krok przepływu pracy musi zostać uruchomiony przed każdym innym krokiem przepływu pracy, który wywołuje narzędzie 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'
Przykład z wieloma repozytoriami prywatnymi
W poniższym przykładzie pokazano, jak podać poświadczenia usługi Git dla wielu repozytoriów prywatnych przy użyciu credential.<url>.helper
wzorca.
- 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'