Freigeben über


Lernprogramm: Authentifizieren von vcpkg Git-basierten Registrierungen in GitHub-Aktionen

Bei verwendung von vcpkg mit privaten Registrierungen ist es erforderlich, Zugriffsanmeldeinformationen für die interne Authentifizierung von Git-Vorgängen durch vcpkg bereitzustellen.

In diesem Lernprogramm erfahren Sie, wie Sie ein privates Git-Repository authentifizieren, das in Ihrem GitHub-Aktionen-Workflow verwendet werden soll.

Voraussetzungen

  • Ein GitHub-Konto
  • Eine private vcpkg Git-Registrierung, die auf GitHub gehostet wird
  • vcpkg

1 – Erstellen eines persönlichen Zugriffstokens für Ihr privates Repository

Folgen Sie den Anweisungen auf GitHub, um ein differenziertes persönliches Zugriffstoken (PAT) zu generieren und ihm die Berechtigung zum Zugriff auf das private Repository zu erteilen, in dem Ihre vcpkg Git-Registrierung gehostet wird.

2 – Erstellen eines geheimen GitHub-Aktionsschlüssels für die Verwendung in Ihrem Workflow

Hinweis

Speichern Sie niemals ein GitHub Personal Access Token in Ihren Repositorydateien

Der nächste Schritt besteht darin, die Anweisungen von GitHub zu befolgen , um den PAT als geheimen Schlüssel zu speichern, der in Ihren GitHub-Aktionen-Workflows verfügbar ist.

3 – Authentifizieren bei privaten Git-Repositorys in Ihrem Workflow

Jetzt ist es an der Zeit, Ihrem Workflow einen Authentifizierungsschritt hinzuzufügen, die folgende Vorlage in der YAML-Datei Ihres Workflows verwenden. Ersetzen Sie die PRIVATE_REPO_URL URL Ihres privaten Repositorys, z. B.: https://github.com/Microsoft/secret-vcpkg-registry; ersetzen Sie PRIVATE_REGISTRY_PAT durch den Namen der geheimen Variablen, die Sie im vorherigen Schritt erstellt haben.

Dieser Workflowschritt muss vor einem anderen Workflowschritt ausgeführt werden, der vcpkg aufruft.

  - 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'

Beispiel mit mehreren privaten Repositorys

Das folgende Beispiel zeigt, wie Git-Anmeldeinformationen für mehrere private Repositorys mithilfe des credential.<url>.helper Musters bereitgestellt werden.

    - 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'