Automatize a integração do Git usando APIs
A ferramenta de integração do Microsoft Fabric Git permite que as equipes trabalhem juntas usando o controle do código-fonte para criar um processo de liberação eficiente e reutilizável para seu conteúdo do Fabric.
Com as APIs REST do Microsoft Fabric, você pode automatizar procedimentos e processos do Fabric para concluir tarefas mais rapidamente e com menos erros. Esta eficiência conduz a poupanças de custos e a uma maior produtividade.
Este artigo descreve como usar as APIs REST de integração do Git para automatizar a integração do Git no Microsoft Fabric.
Pré-requisitos
Para trabalhar com APIs do Fabric Git, você precisa:
Os mesmos pré-requisitos que você precisa para usar a integração do Git na interface do usuário.
Um token Microsoft Entra para o serviço Fabric. Use esse token no cabeçalho de autorização da chamada de API. Para obter informações sobre como obter um token, consulte Guia de início rápido da API de malha.
Você pode usar as APIs REST sem o PowerShell, mas os scripts neste artigo usam o PowerShell. Para executar os scripts, você precisa executar as seguintes etapas:
- Instale o PowerShell.
- Instale o módulo Az do Azure PowerShell.
Funções da API de integração do Git
As APIs REST de integração do Git podem ajudá-lo a alcançar a integração contínua e a entrega contínua (CI/CD) do seu conteúdo. Aqui estão alguns exemplos do que pode ser feito usando as APIs:
Veja quais itens têm alterações de entrada e quais itens têm alterações que ainda não foram confirmadas no Git com a API de status do Git.
Obtenha detalhes de conexão para o espaço de trabalho especificado.
Conecte e desconecte um espaço de trabalho específico do repositório Git e da ramificação conectada a ele.
Atualize minhas credenciais do Git para atualizar seus detalhes de configuração de credenciais do Git.
Obtenha minhas credenciais do Git para obter seus detalhes de configuração de credenciais do Git.
Inicialize uma conexão para um espaço de trabalho conectado ao Git.
Confirme as alterações feitas no espaço de trabalho na ramificação remota conectada.
Atualize o espaço de trabalho com confirmações enviadas por push para a ramificação conectada.
Exemplos
Use os seguintes scripts do PowerShell para entender como executar vários processos de automação comuns. Para exibir ou copiar o texto em um exemplo do PowerShell, use os links nesta seção. Você também pode ver todos os exemplos no repositório GitHub de exemplos de integração do Fabric GitHub.
Ligar e atualizar
Esta seção descreve as etapas envolvidas na conexão e atualização de um espaço de trabalho com o Git.
Para obter o script completo, consulte Conectar e atualizar do Git.
Entrar e obter token de acesso - Entre no Fabric como um usuário (não como uma entidade de serviço). Use o comando Connect-AzAccount para entrar. Para obter um token de acesso, use o comando Get-AzAccessToken .
Seu código deve ter esta aparência:
$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 } }
Chame a API Connect para conectar o espaço de trabalho a um repositório Git e ramificação.
# 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
Chame a API Initialize Connection para inicializar a conexão entre o espaço de trabalho e o repositório/ramificação 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 "{}"
Com base na resposta da API Initialize Connection, chame a Update From Git API para concluir a atualização ou não faça nada se nenhuma ação for necessária.
O script a seguir atualiza e monitora o progresso:
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")) }
Atualização do Git
Nesta seção, descrevemos as etapas envolvidas na atualização de um espaço de trabalho com as alterações do Git. Neste script, atualizamos os itens do espaço de trabalho com alterações do Git, mas deixamos o repositório Git inalterado.
Para obter o script completo, consulte Atualizar espaço de trabalho do Git.
- Faça login no Git e obtenha autenticação.
- Chame a API Get Status para criar a atualização a partir do corpo da solicitação do Git.
- Chame a atualização da API do Git para atualizar o espaço de trabalho com confirmações enviadas por push para a ramificação conectada.
Consolidar tudo
Esta seção fornece uma descrição passo a passo de como confirmar programaticamente todas as alterações do espaço de trabalho para o Git.
Para obter o script completo, consulte Confirmar todas as alterações no Git.
- Faça login no Git e obtenha autenticação.
- Conecte-se ao espaço de trabalho.
- Chame a API REST Commit to Git .
- Obtenha o OperationId de longa duração para sondar o status da operação.
Confirmação seletiva
Esta seção descreve as etapas envolvidas na confirmação apenas de alterações específicas do espaço de trabalho para o Git.
Para obter o script completo, consulte Confirmar selecionar alterações no Git.
- Faça login no Git e obtenha autenticação.
- Conecte-se ao espaço de trabalho.
- Chame a API Get status para ver quais itens foram alterados.
- Selecione os itens específicos a serem confirmados.
- Chame a API Commit to Git para confirmar as alterações selecionadas do espaço de trabalho para a ramificação remota conectada.
Monitorar o progresso de operações de longa duração
Para obter o script completo, consulte Sondar uma operação de longa duração.
- Recupere o operationId do script Update From Git ou Commit to Git .
- Chame a API Get LRO Status em intervalos especificados (em segundos) e imprima o status.
Considerações e limitações
- A integração do Git usando APIs está sujeita às mesmas limitações da interface do usuário de integração do Git.
- A entidade de serviço não é suportada.
- A atualização de um modelo semântico usando a API de atualização aprimorada causa uma comparação do Git após cada atualização.