Automatisation de l’intégration de Git à l’aide d’API
L’outil d’intégration Git de Microsoft Fabric permet aux équipes de travailler ensemble en utilisant le contrôle de code source pour créer un processus de publication efficace et réutilisable pour leur contenu Fabric.
Avec les API REST de Microsoft Fabric, vous pouvez automatiser les procédures et les processus Fabric afin d’accomplir les tâches plus rapidement et avec moins d’erreurs. Cette efficacité permet de réduire les coûts et d’améliorer la productivité.
Cet article explique comment utiliser les API REST d’intégration Git pour automatiser l’intégration Git dans Microsoft Fabric.
Prérequis
Pour travailler avec les API Git Fabric, vous avez besoin de :
Les mêmes conditions préalables que celles dont vous avez besoin pour utiliser l’intégration Git dans l’IU.
Un jeton Microsoft Entra pour le service Fabric. Utiliser ce jeton dans l’en-tête d’autorisation de l’appel d’API. Pour plus d’informations sur l’obtention d’un jeton, consultez Démarrage rapide avec l’API Fabric.
Vous pouvez utiliser les API REST sans PowerShell, mais les scripts de cet article utilisent PowerShell. Pour exécuter les scripts, vous devez suivre les étapes suivantes :
- Installez PowerShell.
- Installez le module Azure PowerShell Az.
Fonctions API d’intégration Git
Les API REST d’intégration Git peuvent vous aider à réaliser l’intégration continue et la livraison continue (CI/CD) de votre contenu. Voici quelques exemples de ce qu’il est possible de faire en utilisant les API :
Voir quels éléments ont des modifications entrantes et quels éléments ont des modifications qui n’ont pas encore été validées dans Git avec l’API d’état de Git.
Obtenir les détails de la connexion pour l’espace de travail spécifié.
Connecter et déconnecter un espace de travail spécifique du référentiel Git et de la branche qui lui est connectée.
Mettez à jour mes informations d’identification Git pour mettre à jour les détails de configuration de vos informations d’identification Git.
Obtenez mes informations d’identification Git pour obtenir les détails de configuration de vos informations d’identification Git.
Initialiser une connexion pour un espace de travail qui est connecté à Git.
Valider les modifications effectuées dans l’espace de travail vers la branche distante connectée.
Mettre à jour l’espace de travail avec les validations envoyées à la branche connectée.
Exemples
Utilisez les scripts PowerShell suivants pour comprendre comment exécuter plusieurs processus d’automatisation. Pour visualiser ou copier le texte d’un exemple PowerShell, utilisez les liens fournis dans cette section. Vous pouvez également voir tous les exemples dans le référentiel GitHub Exemples d’intégration de Git Fabric.
Se connecter et mettre à jour
Cette section décrit les étapes de la connexion et de la mise à jour d’un espace de travail avec Git.
Pour obtenir le script complet, consultez Se connecter et mettre à jour à partir de Git.
Se connecter et obtenir un jeton d’accès – Connectez-vous à Fabric en tant qu’utilisateur (et non en tant que principal de service). Utilisez la commande Connect-AzAccount pour vous connecter. Pour obtenir un jeton d’accès, utilisez la commande Get-AzAccessToken.
Votre code doit ressembler à ceci :
$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 } }
Appelez l’API Connect pour connecter l’espace de travail à un référentiel et une branche 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
Appelez l’API Initialize Connection pour initialiser la connexion entre l’espace de travail et le référentiel/branche 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 "{}"
En fonction de la réponse de l’API Initialize Connection, appelez l’API Update From Git pour terminer la synchronisation, ou ne faites rien si aucune action n’est requise.
Le script suivant met à jour et surveille la progression :
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")) }
Mettre à jour à partir de Git
Dans cette section, nous décrivons les étapes de la mise à jour d’un espace de travail avec les modifications de Git. Dans ce script, nous mettons à jour les éléments de l’espace de travail avec les modifications de Git, mais nous laissons le référentiel Git inchangé.
Pour obtenir le script complet, consultez Mettre à jour l’espace de travail à partir de Git.
- Connectez-vous à Git et obtenez l’authentification.
- Appelez l’API Get Status pour générer la mise à jour depuis le corps de la demande Git.
- Appelez l’API Update From Git pour mettre à jour l’espace de travail avec les validations envoyées à la branche connectée.
Valider tout
Cette section fournit une description étape par étape de la validation programmatique de toutes les modifications de l’espace de travail vers Git.
Pour obtenir le script complet, consultez Commiter toutes les modifications apportées à Git.
- Connectez-vous à Git et obtenez l’authentification.
- Connectez-vous à l’espace de travail.
- Appelez l’API REST Commit to Git.
- Obtenez l’OperationId durable pour connaître l’état de l’opération.
Validation sélective
Cette section, nous décrit les étapes à suivre pour valider uniquement des modifications spécifiques de l’espace de travail vers Git.
Pour le script complet, consultez Valider les modifications sélectionnées vers Git.
- Connectez-vous à Git et obtenez l’authentification.
- Connectez-vous à l’espace de travail.
- Appelez l’API Get status pour voir quels éléments de l’espace de travail ont été modifiés.
- Sélectionnez les éléments spécifiques à valider.
- Appelez l’API Commit To Git pour valider les modifications sélectionnées de l’espace de travail vers la branche distante connectée.
Surveillance de l’état d’avancement des opérations durables
Pour obtenir le script complet, consultez Interroger une opération durable.
- Récupérez l’OperationId des scripts à partir de Update From Git ou Commit To Git.
- Appelez l’API Obtenir l’état LRO à intervalles spécifiés (en secondes) et imprimez l’état.
Observations et limitations
- L’intégration Git à l’aide d’API est soumise aux mêmes limitations que l’interface utilisateur de l’intégration Git.
- Le principal de service n’est pas pris en charge.
- L’actualisation d’un modèle sémantique en utilisant l’API Actualisation améliorée provoque une différence Git après chaque actualisation.