Del via


Automatiser Git-integration ved hjælp af API'er

Integrationsværktøjet til Microsoft Fabric Git gør det muligt for teams at arbejde sammen ved hjælp af kildekontrol for at skabe en effektiv og genbrugelig udgivelsesproces for deres Fabric-indhold.

Med Microsoft Fabric REST API'er kan du automatisere Fabric-procedurer og -processer for at udføre opgaver hurtigere og med færre fejl. Denne effektivitet medfører omkostningsbesparelser og forbedret produktivitet.

I denne artikel beskrives det, hvordan du bruger REST API'er til Git-integration til at automatisere Git-integration i Microsoft Fabric.

Forudsætninger

Hvis du vil arbejde med Fabric Git-API'er, skal du bruge:

Du kan bruge REST API'erne uden PowerShell, men scripts i denne artikel bruger PowerShell. Hvis du vil køre scripts, skal du benytte følgende fremgangsmåde:

API-funktioner til Git-integration

REST API'er til Git-integration kan hjælpe dig med at opnå kontinuerlig integration og kontinuerlig levering (CI/CD) af dit indhold. Her er nogle eksempler på, hvad der kan gøres ved hjælp af API'erne:

Eksempler

Brug følgende PowerShell-scripts til at forstå, hvordan du udfører flere almindelige automatiseringsprocesser. Hvis du vil have vist eller kopiere teksten i et PowerShell-eksempel, skal du bruge linkene i dette afsnit. Du kan også se alle eksemplerne i GitHub-lageret med Fabric Git-integrationseksempler .

Opret forbindelse, og opdater

I dette afsnit beskrives de trin, der er involveret i at oprette forbindelse til og opdatere et arbejdsområde med Git.

Du kan se hele scriptet under Opret forbindelse og opdater fra Git.

  1. Log på, og få adgangstoken – Log på Fabric som bruger (ikke en tjenesteprincipal). Brug kommandoen Connect-AzAccount til at logge på. Hvis du vil hente et adgangstoken , skal du bruge kommandoen Get-AzAccessToken .

    Din kode bør se nogenlunde sådan ud:

    $global:resourceUrl = "https://api.fabric.microsoft.com"
    
    $global:fabricHeaders = @{}
    
    function SetFabricHeaders() {
    
        #Login to Azure
        Connect-AzAccount | Out-Null
    
        # Get authentication
        $fabricToken = (Get-AzAccessToken -ResourceUrl $global:resourceUrl).Token
    
    $global:fabricHeaders = @{
            'Content-Type' = "application/json"
            'Authorization' = "Bearer {0}" -f $fabricToken
        }
    }
    
  2. Kald Connect-API'en for at oprette forbindelse mellem arbejdsområdet og et Git-lager og en git-forgrening.

    
    # Connect to Git
    
    Write-Host "Connecting the workspace '$workspaceName' to Git."
    
    $connectUrl = "{0}/workspaces/{1}/git/connect" -f $global:baseUrl, $workspace.Id
    
    # AzureDevOps details
    
    $azureDevOpsDetails = @{
        gitProviderType = "AzureDevOps"
        organizationName = "<ORGANIZATION NAME>"
        projectName = "<PROJECT NAME>"
        repositoryName = "<REPOSITORY NAME>"
        branchName = "<BRANCH NAME>"
        directoryName = "<DIRECTORY NAME>"
    }
    
    $connectToGitBody = @{
        gitProviderDetails =$azureDevOpsDetails
    } | ConvertTo-Json
    
    Invoke-RestMethod -Headers $global:fabricHeaders -Uri $connectUrl -Method POST -Body $connectToGitBody
    
  3. Kald API'en Til initialiser forbindelse for at initialisere forbindelsen mellem arbejdsområdet og Git-lageret/-forgreningen.

     # Initialize Connection
    
    Write-Host "Initializing Git connection for workspace '$workspaceName'."
    
    $initializeConnectionUrl = "{0}/workspaces/{1}/git/initializeConnection" -f $global:baseUrl, $workspace.Id
    $initializeConnectionResponse = Invoke-RestMethod -Headers $global:fabricHeaders -Uri $initializeConnectionUrl -Method POST -Body "{}"
    
  4. Baseret på svaret fra API'en til initialisering af forbindelse skal du enten kalde API'en Opdater fra Git for at fuldføre opdateringen eller foretage dig noget, hvis der ikke kræves nogen handling.

    Følgende script opdaterer og overvåger status:

    if ($initializeConnectionResponse.RequiredAction -eq "UpdateFromGit") {
    
        # Update from Git
        Write-Host "Updating the workspace '$workspaceName' from Git."
    
        $updateFromGitUrl = "{0}/workspaces/{1}/git/updateFromGit" -f $global:baseUrl, $workspace.Id
    
        $updateFromGitBody = @{ 
            remoteCommitHash = $initializeConnectionResponse.RemoteCommitHash
      workspaceHead = $initializeConnectionResponse.WorkspaceHead
        } | ConvertTo-Json
    
        $updateFromGitResponse = Invoke-WebRequest -Headers $global:fabricHeaders -Uri $updateFromGitUrl -Method POST -Body $updateFromGitBody
    
        $operationId = $updateFromGitResponse.Headers['x-ms-operation-id']
        $retryAfter = $updateFromGitResponse.Headers['Retry-After']
        Write-Host "Long Running Operation ID: '$operationId' has been scheduled for updating the workspace '$workspaceName' from Git with a retry-after time of '$retryAfter' seconds." -ForegroundColor Green
    
        # Poll Long Running Operation
        $getOperationState = "{0}/operations/{1}" -f $global:baseUrl, $operationId
        do
        {
            $operationState = Invoke-RestMethod -Headers $global:fabricHeaders -Uri $getOperationState -Method GET
    
            Write-Host "Update from Git operation status: $($operationState.Status)"
    
            if ($operationState.Status -in @("NotStarted", "Running")) {
                Start-Sleep -Seconds $retryAfter
            }
        } while($operationState.Status -in @("NotStarted", "Running"))
    }
    

Opdatering fra Git

I dette afsnit beskriver vi de trin, der er involveret i opdatering af et arbejdsområde med ændringerne fra Git. I dette script opdaterer vi elementerne i arbejdsområdet med ændringer fra Git, men vi lader Git-lageret være uændret.

Du kan se hele scriptet under Opdater arbejdsområde fra Git.

  1. Log på Git, og hent godkendelse.
  2. Kald API'en Get Status for at oprette opdateringen fra brødteksten i Git-anmodningen.
  3. Kald Api'en Opdater fra Git for at opdatere arbejdsområdet med bekræftelser, der er pushet til den forbundne forgrening.

Bekræft alle

Dette afsnit indeholder en trinvis beskrivelse af, hvordan du programmatisk kan bekræfte alle ændringer fra arbejdsområdet til Git.

Du kan se hele scriptet under Bekræft alle ændringer i Git.

  1. Log på Git, og hent godkendelse.
  2. Opret forbindelse til arbejdsområdet.
  3. Kald API'en Commit to Git REST.
  4. Hent Long Running OperationId for at forespørge om status for handlingen.

Selektiv bekræftelse

I dette afsnit beskrives de trin, der er involveret i kun at foretage bestemte ændringer fra arbejdsområdet til Git.

Du kan se hele scriptet under Bekræft valg af ændringer til Git.

  1. Log på Git, og hent godkendelse.
  2. Opret forbindelse til arbejdsområdet.
  3. Kald API'en Hent status for at se, hvilke elementer arbejdsområdet blev ændret.
  4. Vælg de specifikke elementer, der skal bekræftes.
  5. Kald API'en Bekræft til Git for at bekræfte de valgte ændringer fra arbejdsområdet til den forbundne eksterne forgrening.

Overvåg status for langvarige handlinger

Du kan se hele scriptet under Poller en handling, der kører i lang tid.

  1. Hent operationId fra Update From Git eller scriptet Commit to Git .
  2. Kald API'en Hent LRO-status med angivne intervaller (i sekunder), og udskriv status.

Overvejelser og begrænsninger

  • Git-integration ved hjælp af API'er er underlagt de samme begrænsninger som Brugergrænsefladen til Git-integration.
  • Tjenesteprincipalen understøttes ikke.
  • Opdatering af en semantisk model ved hjælp af API'en for udvidet opdatering medfører en Git-diff efter hver opdatering.