Blog

Azure Repos: Git mit einem PAT authentifizieren

Rob Bos

Aktualisiert Oktober 21, 2025
2 Minuten

Manchmal stößt man auf diese seltsamen Dinge, und ich bin mir sicher, dass ich dieses nicht mehr finden kann, wenn ich es nicht hier aufbewahre.

Bild eines eingefrorenen Fernglases
Foto von Unsplash Hakan Aldrin

Konfigurieren von Git mit einem PAT-Token mit Azure DevOps

Unter Windows verwende ich normalerweise den Windows Credential Manager, um die Authentifizierung gegenüber entfernten Git-Repositories zu speichern. Sie können auch die SSH-Einrichtung verwenden, die Azure DevOps als eine weit verbreitete Alternative unterstützt.

Dieses Mal habe ich die Dinge für einen Benutzer mit einem Docker-Container eingerichtet und wollte keine dieser Optionen einrichten: Ich verwendete bereits ein Personal Access Token für den Zugriff auf die RESTAPI und wollte dieses auch für das Git-Repository verwenden.

Die Suche hat eine ganze Weile gedauert, bis ich einen obskuren Verweis im Git LFS Repo gefunden habe, der besagt, dass Sie Git mit einem zusätzlichen Autorisierungs-Header mit dem PAT-Token einrichten können. Im Ernst: Ich kann nicht einmal das Repo finden, in dem ich das gefunden habe.

Lösung (Repo-basiert)

Nach einigem Herumprobieren habe ich die Sache zum Laufen gebracht. Hier ist die Lösung für die Zukunft.

function SetupAuthentication {
    param (
        [string] $organization
        [string] $project
        [string] $repoName,
        [string] $userName,
        [string] $PAT
    )

    # convert the Personal Access Token to a Base64 encoded string
    $B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$PAT"))

    # store the extra header for git to use
    git config --global --add http.https://$userName@dev.azure.com/$organization/$project/_git/$repoName.extraHeader "AUTHORIZATION: Basic $B64Pat"
}

Beachten Sie, dass dies spezifisch für das von Ihnen verwendete Repository ist.

Lösung (projektbezogen)

Wenn Sie diese Einstellung nicht für jedes Projektarchiv vornehmen möchten, können Sie den Projektarchivnamen auch weglassen, wie im folgenden Beispiel gezeigt:

    # store the extra header for git to use
    git config --global --add http.https://$userName@dev.azure.com/$organization/$project/_git/.extraHeader "AUTHORIZATION: Basic $B64Pat"

Beachten Sie, dass dies spezifisch für das von Ihnen verwendete Projekt ist.

Lösung (organisationsbasiert)

Wenn Sie diese Einstellung nicht für jedes Projektarchiv vornehmen möchten, können Sie den Projektarchivnamen auch weglassen, wie im folgenden Beispiel gezeigt:

    # store the extra header for git to use
    git config --global --add http.https://$userName@dev.azure.com/$organization/_git/.extraHeader "AUTHORIZATION: Basic $B64Pat"

Beachten Sie, dass dies spezifisch für die Organisation die Sie verwenden.

Verfasst von

Rob Bos

Rob has a strong focus on ALM and DevOps, automating manual tasks and helping teams deliver value to the end-user faster, using DevOps techniques. This is applied on anything Rob comes across, whether it’s an application, infrastructure, serverless or training environments. Additionally, Rob focuses on the management of production environments, including dashboarding, usage statistics for product owners and stakeholders, but also as part of the feedback loop to the developers. A lot of focus goes to GitHub and GitHub Actions, improving the security of applications and DevOps pipelines. Rob is a Trainer (Azure + GitHub), a Microsoft MVP and a LinkedIn Learning Instructor.

Contact

Let’s discuss how we can support your journey.