เชื่อมต่อและยกเลิกการเชื่อมต่อ Dataverse จากที่เก็บ Git โดยใช้โค้ด

ใช้ ConnectToGit และ DisconnectFromGit API ในการรวมสภาพแวดล้อม Microsoft Dataverse ของคุณกับตัวควบคุมต้นฉบับ Git ด้วยวิธีการทางโปรแกรม ด้วยการใช้ API เหล่านี้ คุณสามารถเชื่อมต่อโซลูชันแต่ละรายการหรือสภาพแวดล้อมทั้งหมดไปยังที่เก็บ Git ที่ได้รับการสนับสนุน และจัดการการเชื่อมต่อเหล่านั้นผ่านรหัส

ข้อกําหนดเบื้องต้น

ก่อนที่จะใช้ API เหล่านี้ ตรวจสอบให้แน่ใจว่าคุณมี:

  • การเข้าถึงสภาพแวดล้อม Microsoft Dataverse
  • สิทธิ์ของผู้ดูแลระบบ
  • การเข้าถึงแบบอ่านและเขียนไปยังที่เก็บ Git

ConnectToGit API

สร้างการเชื่อมต่อระหว่างโซลูชัน Dataverse หรือสภาพแวดล้อมและที่เก็บ Git โดยการใช้การเชื่อมต่อนี้ คุณสามารถจัดการตัวควบคุมแหล่งข้อมูลสําหรับคอมโพเนนต์ Dataverse ของคุณได้

พารามิเตอร์

ConnectToGit API ยอมรับพารามิเตอร์ต่อไปนี้:

พารามิเตอร์ ชนิด ต้องระบุ รายละเอียด
GitFolder สตริง ใช่ ชื่อของโฟลเดอร์ที่คุณต้องการผูกโซลูชันหรือสภาพแวดล้อมของคุณ
Branch สตริง ใช่ ชื่อของสาขาที่คุณต้องการเชื่อมต่อ
ConnectionType เลขจำนวนเต็ม ไม่ ระบุสิ่งที่จะเชื่อมต่อ ดูพารามิเตอร์ ConnectionType
GitProvider เลขจำนวนเต็ม ไม่ ผู้ให้บริการ Git ดูพารามิเตอร์ GitProvider
Organization สตริง ไม่ ชื่อขององค์กรที่คุณต้องการเชื่อมต่อ
Project สตริง ไม่ ชื่อของโครงการที่คุณต้องการเชื่อมต่อ
Repository สตริง ไม่ ชื่อของที่เก็บที่คุณต้องการเชื่อมต่อ
RootFolder สตริง ไม่ ชื่อของโฟลเดอร์รากที่โซลูชันทั้งหมดของคุณอยู่ในขอบเขตโซลูชัน
SolutionUniqueName สตริง ไม่ ชื่อเฉพาะของโซลูชันที่คุณต้องการเชื่อมต่อกับ git
UpstreamBranch สตริง ไม่ ชื่อของสาขาอัพสตรีมที่คุณต้องการเชื่อมต่อ ค่าเริ่มต้นเป็นสาขาเริ่มต้นของที่เก็บข้อมูล
GitHubConnectionId สตริง ไม่ รหัสการเชื่อมต่อสำหรับการเชื่อมต่อ GitHub ของ Power Platform จําเป็นเมื่อGitProviderเป็น1เว้นแต่ว่าคุณระบุGitHubPAT ไม่สามารถใช้ได้เมื่อเปิดใช้งานการสนับสนุนเครือข่ายเสมือน (VNET) สําหรับสภาพแวดล้อม Dataverse
GitHubPAT สตริง ไม่ โทเค็นการเข้าถึงส่วนบุคคลของ GitHub ที่มีสิทธิ์เข้าถึงที่เก็บเป้าหมาย จําเป็นเมื่อGitProviderเป็น1เว้นแต่ว่าคุณระบุGitHubConnectionId จําเป็นต้องมีเมื่อมีการเปิดใช้งานการสนับสนุนเครือข่ายเสมือน (VNET) สําหรับสภาพแวดล้อม Dataverse
GitHubAppConfigId สตริง ไม่ อ้างอิงไปยังระเบียนการกําหนดค่าแอป GitHub จําเป็นต้องมีเมื่อ GitProvider เป็น1 ใช้รูปแบบ githubappconfigs(<recordId>)

พารามิเตอร์ ConnectionType

พารามิเตอร์ ConnectionType จะควบคุมว่าจะเชื่อมต่อกับสภาพแวดล้อม Dataverse ทั้งหมดหรือโซลูชันเฉพาะ

มูลค่า ป้ายชื่อ รายละเอียด
0 โซลูชัน เชื่อมต่อโซลูชัน Dataverse เฉพาะกับ Git
1 สิ่งแวดล้อม เชื่อมต่อสภาพแวดล้อม Dataverse ทั้งหมดกับ Git

พารามิเตอร์ GitProvider

GitProviderใช้พารามิเตอร์เพื่อระบุประเภทของผู้ให้บริการ Git ที่คุณใช้อยู่ ไม่ว่าจะเป็น Azure DevOps หรือ GitHub

มูลค่า ป้ายชื่อ รายละเอียด
0 Azure DevOps ใช้สําหรับที่เก็บที่โฮสต์บน Azure DevOps
1 GitHub ใช้สําหรับที่เก็บที่โฮสต์บน GitHub

DisconnectFromGit API

ลบการเชื่อมต่อ Git ออกจากโซลูชัน Dataverse หรือสภาพแวดล้อม และปิดใช้งานการรวมตัวควบคุมแหล่งข้อมูล

พารามิเตอร์

DisconnectFromGit API มีพารามิเตอร์เดียวเท่านั้น

พารามิเตอร์ ชนิด ต้องระบุ รายละเอียด
SolutionUniqueName สตริง ไม่ ชื่อเฉพาะของโซลูชันที่คุณต้องการยกเลิกการเชื่อมต่อจาก Git ไม่ต้องทำการยกเลิกการเชื่อมต่อโซลูชันหรือสภาพแวดล้อมทั้งหมด

ข้อมูลเพิ่มเติม

ต่อไปนี้เป็นตัวเลือกค่าพารามิเตอร์สองสามตัวเพื่อระบุเมื่อเรียกใช้DisconnectFromGit

  • ยกเลิกการเชื่อมต่อโซลูชันเดียว: ให้ SolutionUniqueName เพื่อยกเลิกการเชื่อมต่อโซลูชันเฉพาะ
  • ยกเลิกการเชื่อมต่อโซลูชันทั้งหมด: ไม่มีพารามิเตอร์เพื่อยกเลิกการเชื่อมต่อระดับโซลูชันทั้งหมด
  • สภาพแวดล้อมที่ยกเลิกการเชื่อมต่อ: ไม่มีพารามิเตอร์เพื่อยกเลิกการเชื่อมต่อระดับสภาพแวดล้อม

ตัวอย่าง

ตัวอย่างต่อไปนี้อธิบายสถานการณ์สําหรับการใช้ ConnectToGit และ DisconnectFromGit API:

เชื่อมต่อสภาพแวดล้อม Dataverse ทั้งหมดของคุณกับที่เก็บ Azure DevOps

การเชื่อมต่อนี้จะเปิดใช้งานตัวควบคุมแหล่งข้อมูลสําหรับการกําหนดค่าและคอมโพเนนต์ระดับสภาพแวดล้อมทั้งหมด

อย่าใช้พารามิเตอร์เหล่านี้กับการเชื่อมต่อนี้:

  • RootFolder
  • SolutionUniqueName
  • UpstreamBranch

ตัวอย่างนี้แสดงวิธีการใช้ การดําเนินการ ConnectToGit เพื่อเชื่อมต่อสภาพแวดล้อม Dataverse ทั้งหมดของคุณไปยังที่เก็บ Azure DevOps

คำขอ

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

การตอบสนอง

HTTP/1.1 204 No Content
OData-Version: 4.0

เรียนรู้วิธีเรียกใช้การดําเนินการ API เว็บ

เชื่อมต่อกับที่เก็บ GitHub

ก่อนที่คุณจะใช้ API เพื่อเชื่อมต่อกับ GitHub ทําตามขั้นตอนการตั้งค่าเพื่อสร้างแอป GitHub ให้ติดตั้งในที่เก็บเป้าหมาย นําเข้าคีย์ส่วนตัวลงใน Azure Key Vault และสร้างการเชื่อมต่อ Power Platform GitHub สําหรับข้อมูลเพิ่มเติม ให้ดู เชื่อมต่อกับ GitHub

สร้างเรกคอร์ดการกําหนดค่าแอป GitHub โดยใช้ API เว็บ

ใช้ Dataverse OData Web API เพื่อสร้าง githubappconfig ระเบียน ส่งคําขอ POST ด้วย ID ไคลเอ็นต์ของแอป GitHub Key Vault URI และชื่อคีย์

คุณสามารถใช้ไคลเอ็นต์ HTTP เช่น Insomnia, Visual Studio Code REST Client หรือ curl เพื่อเรียกใช้เหล่านี้ คุณต้องมีโทเค็นแบบแบเรอร์สําหรับการรับรองความถูกต้อง สําหรับข้อมูลเพิ่มเติม ให้ดู ใช้ Microsoft Dataverse Web API

POST {{DataverseOrgUrl}}/api/data/v9.2/githubappconfigs
Authorization: Bearer {{token}}
Content-Type: application/json

{
    "githubappid": "Iv23liBWoH9sf7xDrRe6",
    "keyvaulturi": "{{KeyVaultUri}}",
    "keyname": "demoGitHubKey"
}

สําคัญ

สังเกตรหัสเรกคอร์ดที่ส่งกลับในส่วนหัวของคําตอบ คุณต้องใช้ค่านี้เพื่อระบุข้อมูลประจําตัวที่มีการจัดการ กําหนดค่า RBAC และเรียกใช้ConnectToGit รหัสเรกคอร์ดใช้รูปแบบ เช่น13d565bb-4c22-f111-a546-7ced8d6e3e85

หลังจากสร้างบันทึกการกําหนดค่าแอป GitHub แล้ว ให้กําหนดบทบาทผู้ใช้ที่เข้ารหัสลับ Key Vault ให้กับข้อมูลประจําตัวที่มีการจัดการ Dataverse ตามที่อธิบายไว้ใน กําหนดค่า Key Vault การควบคุมการเข้าถึงตามบทบาท (RBAC)

เรียกใช้ ConnectToGit API

หลังจากที่คุณสร้างgithubappconfigบันทึกและกําหนดค่า Key Vault RBAC แล้ว ให้ใช้ Dataverse Web API เพื่อสร้างการเชื่อมต่อตัวควบคุมแหล่งข้อมูลโดยเรียกใช้ConnectToGitการดําเนินการ

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

สําคัญ

แบรนช์ต้องมีอยู่แล้วในที่เก็บข้อมูล สร้างใน GitHub ก่อนถ้าจําเป็น ค่า GitHubAppConfigId ต้องใช้รูปแบบgithubappconfigs(<recordId>)

สกรีนช็อตของเนื้อความคําขอ HTTP สําหรับ ConnectToGit API ที่มีพารามิเตอร์ GitHub

ถ้าคุณได้รับการตอบสนองที่สําเร็จ สภาพแวดล้อมจะเชื่อมต่อกับ GitHub

เชื่อมต่อกับที่เก็บ GitHub โดยใช้ PowerShell

ตัวอย่าง PowerShell ต่อไปนี้สร้างบันทึกการกําหนดค่าแอป GitHub รอให้ข้อมูลประจําตัวที่มีการจัดการ Dataverse ปรากฏใน Microsoft Entra ID กําหนดบทบาท Key Vault ผู้ใช้ Crypto ให้กับข้อมูลประจําตัวที่มีการจัดการและเรียกใช้ConnectToGitการดําเนินการ ถ้าคุณมีเรกคอร์ดการกําหนดค่าแอป GitHub อยู่แล้ว ให้ระบุ GitHubAppConfigId เพื่อข้ามขั้นตอนการกําหนดค่าและ Key Vault การกําหนดบทบาท

ติดตั้งและนําเข้า Az.Accountsโมดูล , Az.KeyVaultและ Az.Resources PowerShell ก่อนที่คุณจะเรียกใช้ตัวอย่าง ลงชื่อเข้าใช้ด้วยConnect-AzAccountบัญชีที่มีสิทธิ์เข้าถึงสภาพแวดล้อม Dataverse และสิทธิ์ในการกําหนดบทบาท Key Vault

ถ้ามีการเปิดใช้งานการสนับสนุนเครือข่ายเสมือน (VNET) สําหรับสภาพแวดล้อม Dataverse ให้ระบุGitHubPAT การเชื่อมต่อ GitHub ไม่สามารถใช้กับการสนับสนุนเครือข่ายเสมือนได้

[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."

ยกเลิกการเชื่อมต่อสภาพแวดล้อม Dataverse ทั้งหมดของคุณจากตัวควบคุมแหล่งข้อมูล Git

การดําเนินการนี้จะเป็นการลบการเชื่อมต่อ Git ระดับสภาพแวดล้อม อย่าใช้ SolutionUniqueName พารามิเตอร์ สําหรับการดําเนินการนี้ Dataverse ระบุและลบการเชื่อมต่อ Git ระดับสภาพแวดล้อมโดยอัตโนมัติ

ตัวอย่างนี้แสดงวิธีการใช้ การดําเนินการ DisconnectFromGit เพื่อยกเลิกการเชื่อมต่อสภาพแวดล้อม Dataverse ทั้งหมดของคุณจากตัวควบคุมแหล่งข้อมูล Git

คำขอ

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

การตอบสนอง

HTTP/1.1 204 No Content
OData-Version: 4.0

เรียนรู้วิธีเรียกใช้การดําเนินการ API เว็บ

เชื่อมต่อโซลูชันแรกกับที่เก็บ Git

การเชื่อมต่อนี้จะสร้างลิงก์ที่เก็บข้อมูลและโครงสร้างโฟลเดอร์สําหรับตัวควบคุมแหล่งข้อมูลระดับโซลูชันกับโซลูชันแรกในสภาพแวดล้อม

คุณจําเป็นต้องใส่ค่าสําหรับพารามิเตอร์เหล่านี้เพื่อระบุโซลูชัน:

  • RootFolder
  • SolutionUniqueName

ตัวอย่างนี้แสดงวิธีการใช้ การดําเนินการ ConnectToGit เพื่อเชื่อมต่อโซลูชันแรกกับที่เก็บ Git

คำขอ

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

การตอบสนอง

HTTP/1.1 204 No Content
OData-Version: 4.0

เรียนรู้วิธีเรียกใช้การดําเนินการ API เว็บ

เชื่อมต่อโซลูชันเพิ่มเติมไปยังที่เก็บ Git เดียวกันหลังจากที่คุณเชื่อมต่อโซลูชันเริ่มต้น

หลังจากที่คุณเชื่อมต่อโซลูชันแรก คุณต้องการเฉพาะพารามิเตอร์เฉพาะโซลูชันเท่านั้น คุณได้รับรายละเอียดการเชื่อมต่อที่เก็บจากการเชื่อมต่อเริ่มต้น

ตั้งค่าพารามิเตอร์เหล่านี้เท่านั้น:

  • SolutionUniqueName
  • Branch
  • GitFolder

สําคัญ

คุณต้องเชื่อมต่อโซลูชันแรกก่อนที่สิ่งนี้จะทำงานได้ ดูที่ เชื่อมต่อโซลูชันแรกกับที่เก็บ Git

ตัวอย่างนี้แสดงวิธีการใช้ การดําเนินการ ConnectToGit เพื่อเชื่อมต่อโซลูชันที่ตามมากับที่เก็บ Git

คำขอ

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

การตอบสนอง

HTTP/1.1 204 No Content
OData-Version: 4.0

เรียนรู้วิธีเรียกใช้การดําเนินการ API เว็บ

ยกเลิกการเชื่อมต่อโซลูชันเฉพาะจากตัวควบคุมแหล่งข้อมูล Git ในขณะที่ยังคงเชื่อมต่อโซลูชันอื่น ๆ อยู่

ใช้วิธีการนี้เพื่อเอาตัวควบคุมแหล่งข้อมูลสําหรับโซลูชันหนึ่งออกโดยไม่กระทบต่อโซลูชันอื่น

ตัวอย่างนี้แสดงวิธีการใช้ การดําเนินการ DisconnectFromGit เพื่อเอาตัวควบคุมแหล่งข้อมูลสําหรับโซลูชันหนึ่งออกโดยไม่กระทบต่อโซลูชันอื่น

คำขอ

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

การตอบสนอง

HTTP/1.1 204 No Content
OData-Version: 4.0

เรียนรู้วิธีเรียกใช้การดําเนินการ API เว็บ

การจัดการข้อผิดพลาด

ไม่มีทั้ง ConnectToGit หรือ DisconnectFromGit API ส่งคืนค่าเมื่อดำเนินการสำเร็จ เมื่อ API ล้มเหลว จะส่งกลับข้อผิดพลาด

สถานการณ์ข้อผิดพลาดทั่วไปประกอบด้วย:

  • ข้อมูลประจําตัวไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าคุณมีการรับรองความถูกต้องที่ถูกต้องไปยังผู้ให้บริการ Git
  • ไม่พบที่เก็บข้อมูล: ตรวจสอบชื่อองค์กร โครงการ และที่เก็บ
  • ปฏิเสธสิทธิ์: ตรวจสอบให้แน่ใจว่าบัญชี Dataverse ของคุณมีสิทธิ์การจัดการตัวควบคุมแหล่งข้อมูล
  • ไม่พบโซลูชัน: ตรวจสอบว่ามี SolutionUniqueName อยู่ในสภาพแวดล้อมของคุณ
  • ไม่มีสาขาอยู่: ยืนยันว่ามีสาขาที่ระบุอยู่ในที่เก็บ

การสนับสนุนและแหล่งข้อมูลเพิ่มเติม

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการรวมตัวควบคุมแหล่งข้อมูลกับ Dataverse โปรดดู: