Zdieľať cez


Automatizácia integrácie systému Git pomocou rozhraní API

Nástroj na integráciu systému Microsoft Fabric Git umožňuje tímom spolupracovať pomocou správy zdroja pri vytváraní efektívneho a opätovne použiteľného procesu vydávania obsahu služby Fabric.

Pomocou rozhraní REST API služby Microsoft Fabric môžete automatizovať postupy a procesy služby Fabric, aby ste dokončili úlohy rýchlejšie a s menším počtom chýb. Táto účinnosť vedie k úsporám nákladov a vyššej produktivite.

Tento článok popisuje, ako používať rozhrania REST API na integráciu Git na automatizáciu integrácie systému Git v službe Microsoft Fabric.

Požiadavky

Ak chcete pracovať s rozhraniami API služby Fabric Git, potrebujete:

Rozhrania REST API môžete použiť bez prostredia PowerShell, ale skripty v tomto článku používajú prostredie PowerShell. Ak chcete spustiť skripty, musíte vykonať nasledujúce kroky:

Funkcie rozhrania API na integráciu so službou Git

Rozhrania REST API pre integráciu so službou Git vám môžu pomôcť dosiahnuť nepretržitú integráciu a priebežné doručovanie vášho obsahu (CI/CD). Tu je niekoľko príkladov toho, čo možno urobiť pomocou rozhraní API:

Príklady

Nasledujúce skripty PowerShell môžete použiť na pochopenie vykonávania niekoľkých bežných procesov automatizácie. Ak chcete zobraziť alebo skopírovať text v ukážke prostredia PowerShell, použite prepojenia v tejto časti. Môžete si tiež pozrieť všetky príklady v odkladacom priestore Git na integráciu fabric Git.

Pripojenie a aktualizácia

Táto časť popisuje kroky spojené s pripojením a aktualizáciou pracovného priestoru so systémom Git.

Úplný skript nájdete v téme Pripojenie a aktualizácia z Git.

  1. Prihláste sa a získajte prístupový token – prihláste sa do služby Fabric ako používateľ (nie ako objekt služby). Na prihlásenie použite príkaz Connect-AzAccount. Ak chcete získať prístupový token, použite príkaz Get-AzAccessToken .

    Váš kód by mal vyzerať približne takto:

    $global:resourceUrl = "https://api.fabric.microsoft.com"
    
    $global:fabricHeaders = @{}
    
    function SetFabricHeaders() {
    
        #Login to Azure
        Connect-AzAccount | Out-Null
    
        # Get authentication
        $fabricToken = (Get-AzAccessToken -AsSecureString -ResourceUrl $global:resourceUrl).Token
    
    $global:fabricHeaders = @{
            'Content-Type' = "application/json"
            'Authorization' = "Bearer {0}" -f $fabricToken
        }
    }
    
  2. Zavolajte rozhranie API Connect , aby ste mohli pripojiť pracovný priestor k odkladaciemu priestoru a vetve Git.

    
    # 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. Volajte rozhranie API na inicializáciu pripojenia na inicializáciu pripojenia medzi pracovným priestorom a odkladacím priestorom/vetvou Git.

     # 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. Na základe odpovede z rozhrania API na inicializáciu pripojenia zavolajte buď aktualizáciu z rozhrania Git API, aby ste dokončili aktualizáciu, alebo ak nie je potrebná žiadna akcia.

    Nasledujúci skript aktualizuje a monitoruje priebeh:

    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"))
    }
    

Aktualizácia z Git

V tejto časti popíšeme kroky spojené s aktualizáciou pracovného priestoru zmenami v systéme Git. V tomto skripte aktualizujeme položky pracovného priestoru zmenami zo systému Git, odkladací priestor Git však necháme nezmenený.

Úplný skript nájdete v téme Aktualizácia pracovného priestoru z Git.

  1. Prihláste sa do systému Git a získajte overenie.
  2. Volajte rozhranie Get Status API a vytvorte aktualizáciu z tela požiadavky Git.
  3. Volaním aktualizácie z rozhrania Git API aktualizujte pracovný priestor potvrdeniami doručenými do pripojenej vetvy.

Potvrdiť všetko

V tejto časti sa uvádzajú podrobné informácie o tom, ako pomocou programovania potvrdiť všetky zmeny z pracovného priestoru do systému Git.

Úplný skript nájdete v téme Potvrdenie všetkých zmien do systému Git.

  1. Prihláste sa do systému Git a získajte overenie.
  2. Pripojenie k pracovnému priestoru.
  3. Volajte tlačidlo Potvrdiť v rozhraní Git REST API.
  4. Získajte hodnotu Long Running OperationId na vzorkovanie stavu operácie.

Selektívne potvrdenie

Táto časť popisuje kroky spojené s záväzkom iba konkrétnych zmien z pracovného priestoru do systému Git.

Úplný skript nájdete v téme Potvrdenie zmien v Git.

  1. Prihláste sa do systému Git a získajte overenie.
  2. Pripojenie k pracovnému priestoru.
  3. Ak chcete zistiť, ktoré položky pracovného priestoru sa zmenili, zavolajte rozhranie Get status API.
  4. Vyberte konkrétne položky, ktoré sa majú potvrdiť.
  5. Vyvolajte tlačidlo Potvrdiť v rozhraní Git API na potvrdenie vybratých zmien z pracovného priestoru k pripojenej vzdialenej vetve.

Monitorovanie priebehu dlhotrvajúcich operácií

Úplný skript nájdete v téme Anketa dlhotrvajúcej operácie.

  1. Načítajte operationId z Aktualizovať zo systému Git alebo zo skriptu Potvrdiť v systéme Git .
  2. Zavolajte rozhranie Get LRO Status API v zadaných intervaloch (v sekundách) a vytlačte stav.

Dôležité informácie a obmedzenia

  • Na integráciu systému Git pomocou rozhraní API sa vzťahujú rovnaké obmedzenia ako používateľské rozhranie integrácie Git.
  • Objekt služby nie je podporovaný.
  • Obnovenie sémantického modelu pomocou rozšíreného rozhrania API obnovenia spôsobí po každom obnovení rozdiel Git.