Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
-ja ConnectToGit -DisconnectFromGitohjelmointirajapintojen avulla voit integroida Microsoft Dataverse -ympäristösi Git-lähteen hallinnan kanssa. Näiden ohjelmointirajapintojen avulla voit yhdistää yksittäisiä ratkaisuja tai kokonaisia ympäristöjä tuettuihin Git-säilöihin ja hallita näitä yhteyksiä koodin avulla.
Edellytykset
Varmista ennen näiden ohjelmointirajapintojen käyttöä, että sinulla on seuraavat asiat:
- Pääsy Microsoft Dataverse -ympäristöön
- Järjestelmänvalvojan oikeudet
- Git-säilön luku- ja kirjoitusoikeudet
ConnectToGit-ohjelmointirajapinta
Luo yhteyden Dataverse-ratkaisun tai ympäristön ja Git-säilön välille. Käyttämällä tätä yhteyttä voit hallita Dataverse-osien lähdeohjausobjektia.
Parametrit
Ohjelmointirajapinta ConnectToGit hyväksyy seuraavat parametrit:
| Parametri | Kirjoita | Pakollinen | Description |
|---|---|---|---|
GitFolder |
Merkkijono | Kyllä | Sen kansion nimi, johon haluat sitoa ratkaisusi tai ympäristösi. |
Branch |
Merkkijono | Kyllä | Sen haaran nimi, johon haluat muodostaa yhteyden. |
ConnectionType |
Kokonaisluku | No | Määrittää, mihin yhteys muodostetaan. Katso ConnectionType-parametri. |
GitProvider |
Kokonaisluku | No | Git-palvelussa. Katso GitProvider-parametri. |
Organization |
Merkkijono | No | Sen organisaation nimi, johon haluat muodostaa yhteyden. |
Project |
Merkkijono | No | Sen projektin nimi, johon haluat muodostaa yhteyden. |
Repository |
Merkkijono | No | Sen säilön nimi, johon haluat muodostaa yhteyden. |
RootFolder |
Merkkijono | No | Sen pääkansion nimi, jossa kaikki ratkaisusi sijaitsevat ratkaisun vaikutusalueella. |
SolutionUniqueName |
Merkkijono | No | Sen ratkaisun yksilöivä nimi, johon haluat muodostaa yhteyden Gitiin. |
UpstreamBranch |
Merkkijono | No | Sen yläpuolisen haaran nimi, johon haluat muodostaa yhteyden. Saa oletusarvoksi säilön oletushaaran. |
GitHubConnectionId |
Merkkijono | No | Power Platform GitHub yhteyden yhteystunnus. Pakollinen, kun GitProvider on 1, ellet anna GitHubPAT. Ei voi käyttää, kun näennäisverkon (VNET) tuki on käytössä Dataverse-ympäristössä. |
GitHubPAT |
Merkkijono | No | GitHub henkilökohtaista käyttöoikeustietuetta, jolla on käyttöoikeus kohdesäilöön. Pakollinen, kun GitProvider on 1, ellet anna GitHubConnectionId. Pakollinen, kun näennäisverkon (VNET) tuki on käytössä Dataverse-ympäristössä. |
GitHubAppConfigId |
Merkkijono | No | Viittaus GitHub sovelluksen määritystietuetta. Pakollinen, kun GitProvider on 1. Käytä muotoa githubappconfigs(<recordId>). |
ConnectionType-parametri
ConnectionType Parametri määrittää, muodostetaanko yhteys koko Dataverse-ympäristöön vai tiettyyn ratkaisuun.
| Arvo | Selite | Description |
|---|---|---|
| 0 | Ratkaisu | Yhdistää tietyn Dataverse-ratkaisun Gitiin. |
| 1 | Ympäristö | Yhdistää koko Dataverse-ympäristön Gitiin. |
GitProvider-parametri
-parametrin GitProvider avulla voit määrittää käyttämäsi Git-palvelun tyypin( joko Azure DevOps tai GitHub).
| Arvo | Selite | Description |
|---|---|---|
| 0 | Azure DevOps | Käyttö Azure DevOpsissa isännöidyissä säilöissä |
| 1 | GitHub | Käytä GitHubissa isännöitävissä tietovarastoissa |
DisconnectFromGit-ohjelmointirajapinta
Poistaa Git-yhteyden Dataverse-ratkaisusta tai -ympäristöstä ja poistaa lähteen hallinnan integroinnin käytöstä.
Parametri
-ohjelmointirajapinnalla DisconnectFromGit on vain yksi parametri.
| Parametri | Kirjoita | Pakollinen | Description |
|---|---|---|---|
SolutionUniqueName |
Merkkijono | No | Sen ratkaisun yksilöivä nimi, jonka haluat katkaista Git-yhteyden kanssa. Kaikkien ratkaisujen tai ympäristön yhteyksiä ei katkaista. |
Lisätietoja
Seuraavassa on muutamia parametriarvoasetuksia, jotka määritetään käynnistäessäsi DisconnectFromGit.
-
Katkaise yhteys yksittäiseen ratkaisuun: Anna
SolutionUniqueName, jos haluat katkaista tietyn ratkaisun. - Katkaise kaikki ratkaisut: Älä anna parametreja kaikkien ratkaisutason yhteyksien katkaisemiseksi.
- Ympäristön katkaiseminen: Älä anna parametreja ympäristötason yhteyden katkaisemiseksi.
Esimerkit
Seuraavissa esimerkeissä kuvataan -ja DisconnectFromGit -ConnectToGitohjelmointirajapintojen käyttöskenaarioita:
- Koko Dataverse-ympäristön yhdistäminen Azure DevOps -säilöön
- Yhdistäminen GitHub säilöön
- Yhteyden muodostaminen GitHub säilöön PowerShellin avulla
- Koko Dataverse-ympäristön katkaiseminen Git-lähdeohjausobjektista
- Ensimmäisen ratkaisun yhdistäminen Git-säilöön
- Yhdistä ylimääräiset ratkaisut samaan Git-säilöön sen jälkeen, kun olet muodostanut yhteyden alkuperäiseen ratkaisuun
- Eristä ratkaisu Git-lähteen ohjausobjektista pitäen muut ratkaisut yhdistettynä
Koko Dataverse-ympäristön yhdistäminen Azure DevOps -säilöön
Tämä yhteys mahdollistaa lähdehallinnan kaikissa ympäristötason määrityksissä ja komponenteissa.
Älä käytä näitä parametreja tässä yhteydessä:
RootFolderSolutionUniqueNameUpstreamBranch
Tässä esimerkissä näytetään, miten voit ConnectToGit-toiminnon avulla yhdistää koko Dataverse-ympäristön Azure DevOps -säilöön.
Pyyntö
POST [Organization URI]/api/data/v9.2/ConnectToGit HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"GitFolder": "yourGitfolderName",
"Branch": "yourBranchName",
"ConnectionType": 1,
"GitProvider": 0,
"Organization": "yourOrganizationName",
"Project": "yourProjectName",
"Repository": "yourRepositoryName"
}
Vastaus
HTTP/1.1 204 No Content
OData-Version: 4.0
Lue, miten voit käynnistää WWW-ohjelmointirajapinnan toimintoja
Yhdistäminen GitHub säilöön
Ennen kuin käytät ohjelmointirajapintaa yhteyden muodostamiseen GitHub, suorita asennusvaiheet GitHub sovelluksen luomiseksi, asenna se kohdesäilöön, tuo sen yksityinen avain Azure Key Vault ja luo Power Platform GitHub -yhteys. Lisätietoja on artikkelissa GitHub yhdistäminen.
GitHub sovelluksen määritystietueen luominen WWW-ohjelmointirajapinnan avulla
Luo tietue Dataverse OData Web -ohjelmointirajapinnan githubappconfig avulla. Lähetä POST-pyyntö, joka sisältää GitHub Sovelluksen asiakastunnuksen, Key Vault URI-tunnuksen ja avaimen nimen.
Voit käyttää näitä kutsuja millä tahansa HTTP-asiakasohjelmalla, kuten Insomnialla, Visual Studio Code REST-asiakasohjelmalla tai curlilla. Tarvitset haltijatunnuksen todennusta varten. Lisätietoja on kohdassa Microsoft Dataverse WWW-ohjelmointirajapinnan käyttäminen.
POST {{DataverseOrgUrl}}/api/data/v9.2/githubappconfigs
Authorization: Bearer {{token}}
Content-Type: application/json
{
"githubappid": "Iv23liBWoH9sf7xDrRe6",
"keyvaulturi": "{{KeyVaultUri}}",
"keyname": "demoGitHubKey"
}
Tärkeää
Huomaa vastausotsikossa palautettu tietuetunnus. Tarvitset tämän arvon hallittujen käyttäjätietojen tunnistamiseen, RBAC:n määrittämiseen ja kutsumiseen ConnectToGit. Tietuetunnus käyttää muotoa, kuten 13d565bb-4c22-f111-a546-7ced8d6e3e85.
Kun olet luonut GitHub sovelluksen määritystietueen, määritä Key Vault-salauskäyttäjärooli Dataversen hallittuihin käyttäjätietoihin artikkelissa Roolipohjaisen käytön hallinnan Key Vault (RBAC) kuvatulla tavalla.
ConnectToGit-ohjelmointirajapinnan kutsuminen
Kun olet luonut tietueen githubappconfig ja määrittänyt Key Vault RBAC:lle, muodosta lähteen hallintayhteys Dataverse Web API:n avulla kutsumalla ConnectToGit toimintoa.
POST {{DataverseOrgUrl}}/api/data/v9.2/ConnectToGit
Authorization: Bearer {{token}}
Content-Type: application/json
{
"GitProvider": 1,
"ConnectionType": 1,
"Organization": "YourGitHubOrg",
"Repository": "YourRepo",
"Project": "placeholder",
"Branch": "yourBranch",
"UpstreamBranch": "main",
"GitFolder": "YourFolder",
"GitHubConnectionId": "<connectionId>",
"GitHubAppConfigId": "githubappconfigs(<recordId>)"
}
Tärkeää
Haaran on jo oltava olemassa säilössä. Luo se ensin GitHub tarvittaessa. Arvon GitHubAppConfigId on käytettävä muotoa githubappconfigs(<recordId>).
Jos saat onnistuneen vastauksen, ympäristö on yhdistetty GitHub.
Yhteyden muodostaminen GitHub säilöön PowerShellin avulla
Seuraava PowerShell-esimerkki luo GitHub sovelluksen määritystietueen, odottaa Dataversen hallittujen käyttäjätietojen näkymistä Microsoft Entra ID, määrittää Key Vault Crypto-käyttäjäroolin hallituille käyttäjätiedoilla ja kutsuu ConnectToGit toimintoa. Jos sinulla on jo GitHub Sovelluksen määritystietue, ohita GitHubAppConfigId määritys ja Key Vault roolimääritysvaiheet.
Asenna ja tuo Az.Accounts-, Az.KeyVault- ja Az.Resources PowerShell-moduulit, ennen esimerkin suorittamista. Kirjaudu sisään käyttämällä tiliä, jolla Connect-AzAccount on pääsy Dataverse-ympäristöön ja oikeus määrittää Key Vault roolia.
Jos näennäisverkon (VNET) tuki on käytössä Dataverse-ympäristössä, anna GitHubPAT. GitHub yhteyksiä ei voi käyttää näennäisverkon tuen kanssa.
[CmdletBinding()]
param(
[Parameter(Mandatory)]
[string]$DataverseOrgUrl,
[Parameter(Mandatory)]
[string]$GitHubOrg,
[Parameter(Mandatory)]
[string]$GitHubRepo,
[Parameter(Mandatory)]
[string]$Branch,
[Parameter(Mandatory)]
[string]$GitFolder,
[string]$GitHubAppClientId,
[string]$KeyVaultName,
[string]$KeyVaultKeyName,
[string]$GitHubAppConfigId,
[string]$GitHubConnectionId,
[string]$GitHubPAT,
[ValidateSet(0, 1)]
[int]$ConnectionType = 1,
[string]$UpstreamBranch,
[string]$RootFolder,
[string]$SolutionUniqueName
)
Set-StrictMode -Version 3.0
$ErrorActionPreference = "Stop"
if (($GitHubConnectionId -and $GitHubPAT) -or (-not $GitHubConnectionId -and -not $GitHubPAT)) {
throw "Specify either -GitHubConnectionId or -GitHubPAT, but not both."
}
if (-not $GitHubAppConfigId) {
foreach ($name in @('GitHubAppClientId', 'KeyVaultName', 'KeyVaultKeyName')) {
if ([string]::IsNullOrWhiteSpace((Get-Variable -Name $name -ValueOnly))) {
throw "Specify -$name when -GitHubAppConfigId is not provided."
}
}
}
$dataverseResource = $DataverseOrgUrl.TrimEnd('/')
$tokenResult = Get-AzAccessToken -ResourceUrl $dataverseResource -AsSecureString
$dataverseToken = [System.Net.NetworkCredential]::new('', $tokenResult.Token).Password
function Invoke-DataverseApi {
param(
[Parameter(Mandatory)]
[string]$Method,
[Parameter(Mandatory)]
[string]$Endpoint,
[object]$Body,
[switch]$ReturnHeaders
)
$headers = @{
Authorization = "Bearer $dataverseToken"
"OData-MaxVersion" = "4.0"
"OData-Version" = "4.0"
}
$request = @{
Method = $Method
Uri = "$dataverseResource/api/data/v9.2/$Endpoint"
Headers = $headers
ContentType = "application/json; charset=utf-8"
}
if ($Body) {
$request.Body = $Body | ConvertTo-Json -Depth 10
}
if ($ReturnHeaders) {
return (Invoke-WebRequest @request).Headers
}
Invoke-RestMethod @request
}
$appConfigRecordId = $GitHubAppConfigId
if (-not $appConfigRecordId) {
$keyVault = Get-AzKeyVault -VaultName $KeyVaultName
$keyVaultUri = 'https://' + $KeyVaultName + '.vault.azure.net/'
$appConfigBody = @{
githubappid = $GitHubAppClientId
keyvaulturi = $keyVaultUri
keyname = $KeyVaultKeyName
}
$responseHeaders = Invoke-DataverseApi `
-Method POST `
-Endpoint "githubappconfigs" `
-Body $appConfigBody `
-ReturnHeaders
$entityIdHeader = [string]$responseHeaders["OData-EntityId"]
if ($entityIdHeader -notmatch '\(([0-9a-f-]+)\)') {
throw "Could not read the GitHub App configuration record ID from the Dataverse response."
}
$appConfigRecordId = $Matches[1]
$managedIdentityName = "PPMI-githubappconfigmanagedidentity-$appConfigRecordId"
$servicePrincipal = $null
for ($attempt = 1; $attempt -le 60; $attempt++) {
$servicePrincipal = Get-AzADServicePrincipal -DisplayName $managedIdentityName -ErrorAction SilentlyContinue
if ($servicePrincipal) {
break
}
Start-Sleep -Seconds 1
}
if (-not $servicePrincipal) {
throw "The Dataverse managed identity was not found in Microsoft Entra ID. Check Dataverse System Jobs for GitHub App configuration errors."
}
$keyVaultScope = $keyVault.ResourceId
if (-not $keyVaultScope) {
$subscriptionId = (Get-AzContext).Subscription.Id
$keyVaultScope = "/subscriptions/$subscriptionId/resourceGroups/$($keyVault.ResourceGroupName)/providers/Microsoft.KeyVault/vaults/$KeyVaultName"
}
$keyVaultCryptoUserRoleId = "12338af0-0e69-4776-bea7-57ae8d297424"
$existingAssignment = Get-AzRoleAssignment `
-ObjectId $servicePrincipal.Id `
-RoleDefinitionId $keyVaultCryptoUserRoleId `
-Scope $keyVaultScope `
-ErrorAction SilentlyContinue
if (-not $existingAssignment) {
New-AzRoleAssignment `
-ObjectId $servicePrincipal.Id `
-RoleDefinitionId $keyVaultCryptoUserRoleId `
-Scope $keyVaultScope | Out-Null
}
}
$connectBody = @{
GitProvider = 1
ConnectionType = $ConnectionType
Organization = $GitHubOrg
Repository = $GitHubRepo
Project = "placeholder"
Branch = $Branch
GitFolder = $GitFolder
GitHubAppConfigId = "githubappconfigs($appConfigRecordId)"
}
if ($GitHubConnectionId) { $connectBody.GitHubConnectionId = $GitHubConnectionId }
if ($GitHubPAT) { $connectBody.GitHubPAT = $GitHubPAT }
if ($UpstreamBranch) { $connectBody.UpstreamBranch = $UpstreamBranch }
if ($RootFolder) { $connectBody.RootFolder = $RootFolder }
if ($SolutionUniqueName) { $connectBody.SolutionUniqueName = $SolutionUniqueName }
Invoke-DataverseApi -Method POST -Endpoint "ConnectToGit" -Body $connectBody
Write-Host "Connected Dataverse Git integration to GitHub."
Koko Dataverse-ympäristön katkaiseminen Git-lähdeohjausobjektista
Tämä toiminto poistaa ympäristötason Git-yhteyden. Älä käytä parametria SolutionUniqueName tälle toiminnolle. Dataverse tunnistaa ja poistaa ympäristötason Git-yhteyden automaattisesti.
Tässä esimerkissä näytetään, miten voit DisconnectFromGit-toiminnon avulla katkaista koko Dataverse-ympäristön yhteyden Git-lähteen ohjausobjektiin.
Pyyntö
POST [Organization URI]/api/data/v9.2/DisconnectFromGit HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Vastaus
HTTP/1.1 204 No Content
OData-Version: 4.0
Lue, miten voit käynnistää WWW-ohjelmointirajapinnan toimintoja
Ensimmäisen ratkaisun yhdistäminen Git-säilöön
Tämä yhteys muodostaa säilön linkin ja kansiorakenteen ratkaisutason lähteen hallintaa varten ympäristön ensimmäiseen ratkaisuun.
Sinun on sisällytettävä arvot seuraaville parametreille ratkaisun määrittämiseksi:
RootFolderSolutionUniqueName
Tässä esimerkissä näytetään, miten voit ConnectToGit-toiminnon avulla yhdistää ensimmäisen ratkaisun Git-säilöön.
Pyyntö
POST [Organization URI]/api/data/v9.2/ConnectToGit HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"GitFolder": "yourGitfolderName",
"Branch": "yourBranchName",
"ConnectionType": 1,
"GitProvider": 0,
"Organization": "yourOrganizationName",
"Project": "yourProjectName",
"Repository": "yourRepositoryName",
"RootFolder": "yourRootFolderName",
"SolutionUniqueName": "yourSolutionUniqueName"
}
Vastaus
HTTP/1.1 204 No Content
OData-Version: 4.0
Lue, miten voit käynnistää WWW-ohjelmointirajapinnan toimintoja
Yhdistä ylimääräiset ratkaisut samaan Git-säilöön sen jälkeen, kun olet muodostanut yhteyden alkuperäiseen ratkaisuun
Kun olet muodostanut yhteyden ensimmäiseen ratkaisuun, tarvitset vain ratkaisukohtaiset parametrit. Perit säilön yhteyden tiedot ensiyhteyden kautta.
Määritä vain nämä parametrit:
SolutionUniqueNameBranchGitFolder
Tärkeää
Sinun on ensin yhdistettävä ensimmäinen ratkaisu, ennen kuin tämä toimii. Katso Ensimmäisen ratkaisun yhdistäminen Git-säilöön.
Tässä esimerkissä näytetään, miten voit ConnectToGit-toiminnon avulla yhdistää seuraavat ratkaisut Git-säilöön.
Pyyntö
POST [Organization URI]/api/data/v9.2/ConnectToGit HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"GitFolder": "yourGitfolderName",
"Branch": "yourBranchName",
"SolutionUniqueName": "yourSolutionUniqueName"
}
Vastaus
HTTP/1.1 204 No Content
OData-Version: 4.0
Lue, miten voit käynnistää WWW-ohjelmointirajapinnan toimintoja
Eristä ratkaisu Git-lähteen ohjausobjektista pitäen muut ratkaisut yhdistettynä
Tämän lähestymistavan avulla voit poistaa lähteen hallinnan yhdestä ratkaisusta vaikuttamatta muihin.
Tässä esimerkissä näytetään, miten Voit DisconnectFromGit-toiminnon avulla poistaa lähdeohjausobjektin yhdestä ratkaisusta vaikuttamatta muihin.
Pyyntö
POST [Organization URI]/api/data/v9.2/DisconnectFromGit HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"SolutionUniqueName": "yourSolutionUniqueName"
}
Vastaus
HTTP/1.1 204 No Content
OData-Version: 4.0
Lue, miten voit käynnistää WWW-ohjelmointirajapinnan toimintoja
Virheen käsittely
ConnectToGit- ja -DisconnectFromGitohjelmointirajapinta eivät palauta arvoa, kun se on suoritettu onnistuneesti. Kun ohjelmointirajapinta epäonnistuu, se palauttaa virheen.
Yleisiä virhetilanteita ovat seuraavat:
- Virheelliset tunnistetiedot: Varmista, että sinulla on kelvollinen todennus Git-palveluun.
- Säilöä ei löydy: Tarkista organisaation, projektin ja säilön nimet.
- Käyttöoikeus estetty: Varmista, että Dataverse-tililläsi on lähteen hallinnan hallintaoikeudet.
-
Ratkaisua ei löydy: Varmista, että
SolutionUniqueNameympäristösi on olemassa. - Haaraa ei ole: Varmista, että määritetty haara on olemassa säilössä.
Tuki ja lisäresurssit
Lisätietoja lähteen hallinnan integroinnista Dataverseen on ohjeaiheessa: