การรวม Git โดยอัตโนมัติโดยใช้ API
เครื่องมือการรวม Microsoft Fabric Git ช่วยให้ทีมสามารถทํางานร่วมกันโดยใช้การควบคุมแหล่งที่มาเพื่อสร้างกระบวนการเผยแพร่ที่มีประสิทธิภาพและสามารถนํากลับมาใช้ใหม่ได้สําหรับเนื้อหา Fabric ของพวกเขา
ด้วย Microsoft Fabric REST API คุณสามารถทําให้ขั้นตอนและกระบวนการ Fabric ทํางานได้เร็วขึ้นและมีข้อผิดพลาดน้อยลงโดยอัตโนมัติ ประสิทธิภาพนี้นําไปสู่การประหยัดค่าใช้จ่ายและผลผลิตที่ดีขึ้น
บทความนี้อธิบายวิธีการใช้ REST API การรวม Git เพื่อทําให้การรวม Git ใน Microsoft Fabric เป็นอัตโนมัติ
ข้อกำหนดเบื้องต้น
เมื่อต้องการทํางานกับ Fabric Git API คุณจําเป็นต้องมี:
ข้อกําหนดเบื้องต้นเดียวกันที่คุณจําเป็นต้องใช้การรวม Git ใน UI
โทเค็น Microsoft Entra สําหรับบริการ Fabric ใช้โทเค็นนั้นในส่วนหัวการรับรองความถูกต้องของการเรียกใช้ API สําหรับข้อมูลเกี่ยวกับวิธีการรับโทเค็น ดู การเริ่มต้นใช้งานด่วน Fabric API
คุณสามารถใช้ REST API โดยไม่มี PowerShell ได้ แต่สคริปต์ในบทความนี้ใช้ PowerShell เพื่อเรียกใช้สคริปต์ คุณจําเป็นต้องทําตามขั้นตอนต่อไปนี้:
- ติดตั้ง PowerShell
- ติดตั้งโมดูล Azure PowerShell Az
ฟังก์ชัน API การรวม Git
การรวม Git REST API สามารถช่วยให้คุณบรรลุการผสานรวมอย่างต่อเนื่องและการจัดส่งแบบต่อเนื่อง (CI/CD) ของเนื้อหาของคุณ นี่คือตัวอย่างบางส่วนของสิ่งที่สามารถทําได้โดยใช้ API:
ดูรายการที่มีการเปลี่ยนแปลงที่เข้ามา และรายการที่มีการเปลี่ยนแปลงที่ยังไม่ได้มอบหมายให้กับ Git ด้วย API สถานะ Git
รับรายละเอียดการเชื่อมต่อ สําหรับพื้นที่ทํางานที่ระบุ
เชื่อมต่อ และ ยกเลิกการเชื่อมต่อ พื้นที่ทํางานเฉพาะจากที่เก็บข้อมูล Git และสาขาที่เชื่อมต่อพื้นที่ทํางานนั้น
อัปเดตข้อมูลประจําตัว Git ของฉันเพื่อปรับปรุงรายละเอียดการกําหนดค่าข้อมูลประจําตัว Git ของคุณ
รับข้อมูลประจําตัว Git ของฉันเพื่อรับรายละเอียดการกําหนดค่าข้อมูลประจําตัว Git ของคุณ
เริ่มต้นการเชื่อมต่อ สําหรับพื้นที่ทํางานที่เชื่อมต่อกับ Git
ยอมรับ การเปลี่ยนแปลงที่ทําในพื้นที่ทํางานไปยังสาขาระยะไกลที่เชื่อมต่อกัน
อัปเดตพื้นที่ทํางาน ด้วยยอมรับที่ส่งไปยังสาขาที่เชื่อมต่อกัน
ตัวอย่าง
ใช้สคริปต์ PowerShell ต่อไปนี้เพื่อทําความเข้าใจวิธีการดําเนินการอัตโนมัติทั่วไปหลายกระบวนการ หากต้องการดูหรือคัดลอกข้อความในตัวอย่างของ PowerShell ให้ใช้ลิงก์ในส่วนนี้ คุณยังสามารถดูตัวอย่าง ทั้งหมดในตัวอย่าง การรวม Fabric Git ของ Git repo
เชื่อมต่อและอัปเดต
ในส่วนนี้จะอธิบายขั้นตอนที่เกี่ยวข้องในการเชื่อมต่อและอัปเดตพื้นที่ทํางานด้วย Git
สําหรับสคริปต์ที่สมบูรณ์ ดูเชื่อมต่อและอัปเดตจาก Git
ลงชื่อเข้าใช้และรับโทเค็น การเข้าถึง - ลงชื่อเข้าใช้ Fabric ในฐานะ ผู้ใช้ (ไม่ใช่บริการหลัก) ใช้คําสั่ง Connect-AzAccount เพื่อลงชื่อเข้าใช้ เพื่อรับโทเค็นการเข้าถึง ให้ใช้คําสั่ง Get-AzAccessToken
โค้ดของคุณควรมีลักษณะดังนี้:
$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 } }
เรียกใช้ API เชื่อมต่อเพื่อเชื่อมต่อพื้นที่ทํางานกับที่เก็บ 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
เรียกใช้ API การเชื่อมต่อเริ่มต้นเพื่อเริ่มต้นการเชื่อมต่อระหว่างพื้นที่ทํางานและที่เก็บ 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 "{}"
โดยยึดตามการตอบสนองจาก API การเชื่อมต่อเริ่มต้น เรียกใช้การอัป เดจาก Git API เพื่อดําเนินการอัปเดตให้เสร็จสมบูรณ์ หรือไม่ต้องทําอะไรถ้าไม่มีการดําเนินการใด ๆ
สคริปต์ต่อไปนี้จะปรับปรุงและ ตรวจสอบความคืบหน้า:
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")) }
อัปเดตจาก Git
ในส่วนนี้ เราจะอธิบายขั้นตอนที่เกี่ยวข้องในการอัปเดตพื้นที่ทํางานด้วยการเปลี่ยนแปลงจาก Git ในสคริปต์นี้ เราอัปเดตรายการพื้นที่ทํางานด้วยการเปลี่ยนแปลงจาก Git แต่เราปล่อยให้ที่เก็บ Git ไม่เปลี่ยนแปลง
สําหรับสคริปต์ที่สมบูรณ์ ดูอัปเดตพื้นที่ทํางานจาก Git
- เข้าสู่ระบบ Git และรับการรับรองความถูกต้อง
- เรียกใช้ API รับสถานะเพื่อสร้างการอัปเดตจากเนื้อความของคําขอ Git
- เรียกใช้อัปเดตจาก Git API เพื่ออัปเดตพื้นที่ทํางานด้วยการยอมรับที่ส่งไปยังสาขาที่เชื่อมต่อแล้ว
ยอมรับทั้งหมด
ส่วนนี้ให้คําอธิบายทีละขั้นตอนเกี่ยวกับวิธีการบันทึกการเปลี่ยนแปลงทั้งหมดจากพื้นที่ทํางานไปยัง Git ทางโปรแกรม
สําหรับสคริปต์ที่สมบูรณ์ ดู ยอมรับการเปลี่ยนแปลงทั้งหมดไปยัง Git
- เข้าสู่ระบบ Git และรับการรับรองความถูกต้อง
- เชื่อมต่อกับพื้นที่ทํางาน
- เรียกใช้งาน Commit ไปยัง Git REST API
- รับ Long Running OperationId สําหรับการโพลล์สถานะของการดําเนินการ
ยอมรับที่เลือก
ในส่วนนี้จะอธิบายขั้นตอนที่เกี่ยวข้องในการกําหนดเฉพาะการเปลี่ยนแปลงที่เฉพาะเจาะจงจากพื้นที่ทํางานไปยัง Git
สําหรับสคริปต์ที่สมบูรณ์ ดู ยอมรับการเปลี่ยนแปลงที่เลือกไปยัง Git
- เข้าสู่ระบบ Git และรับการรับรองความถูกต้อง
- เชื่อมต่อกับพื้นที่ทํางาน
- เรียกใช้ API รับสถานะเพื่อดูว่าพื้นที่ทํางานรายการใดมีการเปลี่ยนแปลง
- เลือกรายการที่ระบุเพื่อดําเนินการ
- เรียกใช้การ ยอมรับไปยัง Git API เพื่อยอมรับการเปลี่ยนแปลงที่เลือกจากพื้นที่ทํางานไปยังสาขาระยะไกลที่เชื่อมต่อ
ตรวจสอบความคืบหน้าของการทํางานที่ใช้เวลานาน
สําหรับสคริปต์ที่สมบูรณ์ ดู สํารวจการทํางานที่ใช้เวลานาน
- เรียกใช้ operationId จากอัปเดตจาก Git หรือยืนยันกับสคริปต์ Git
- เรียกใช้ API รับสถานะ LRO ในช่วงเวลาที่ระบุ (เป็นวินาที) และพิมพ์สถานะ
ข้อควรพิจารณาและข้อจำกัด
- การรวม Git โดยใช้ API ขึ้นอยู่กับข้อจํากัดเดียวกันกับส่วนติดต่อผู้ใช้การรวม Git
- ไม่รองรับโครงร่างสําคัญของบริการ
- การรีเฟรชแบบจําลองความหมายโดยใช้ API การรีเฟรชที่ปรับปรุงแล้วจะทําให้เกิด Git diff หลังจากการรีเฟรชแต่ละครั้ง