Git - Commit To Git

將工作區中所做的變更認可到連線的遠端分支。
此 API 支援 長時間執行的作業 (LRO)

若要使用此 API,呼叫端的 Git 認證必須使用 更新我的 Git 認證 API 來設定。 您可以使用 取得我的 Git 認證 API 來檢查 Git 認證組態。

你可以選擇使用 FileLevelSelective 模式,提交所有變更、特定項目或特定檔案。 若要第一次同步處理工作區,請在 連線初始化連線 API 之後使用此 API。

權限

呼叫者必須具有 參與者 或更高的工作區角色。

必要的委派範圍

Workspace.GitCommit.All。

Microsoft Entra 支援的身分識別

此 API 支援本節中列出的Microsoft 身分識別

身份 支援
使用者 是的
服務主體受控識別 只有在作業中涉及的所有 專案 都支援服務主體時才支援

介面

POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/git/commitToGit

URI 參數

名稱 位於 必要 類型 Description
workspaceId
path True

string (uuid)

工作區標識碼。

要求本文

名稱 必要 類型 Description
mode True

CommitMode

認可作業的模式。

comment

string

maxLength: 300

此認可的呼叫端無批注。 最大長度為 300 個字元。 如果呼叫端未提供任何批注,請使用預設 Git 提供者批注。

items

ItemIdentifier[]

要認可的特定專案。 這只適用於選擇性提交模式。 與 itemsWithFileSelection 互斥。 您可以從 Git 狀態 API 擷取專案。

itemsWithFileSelection

ItemIdentifierWithFileSelection[]

FileLevelSelective 提交模式中,具有逐檔案選擇的項目。 與物品互斥。 每個項目指定一個項目,並可選擇提交檔案路徑清單。 如果 selectFiles 對某項目為空或為空,則該項目的所有檔案都會被提交。

workspaceHead

string

工作區同步處理的完整SHA哈希。 哈希可以從 Git 狀態 API 擷取。

回應

名稱 類型 Description
200 OK

要求成功完成。

202 Accepted

要求已接受,認可至 Git 進行中。

標題

  • Location: string
  • x-ms-operation-id: string
  • Retry-After: integer
429 Too Many Requests

ErrorResponse

服務費率上限被超標。 伺服器會回傳一個 Retry-After 標頭,以秒數表示客戶端在發送額外請求前必須等待多久。

標題

Retry-After: integer

Other Status Codes

ErrorResponse

常見的錯誤碼:

  • WorkspaceNotConnectedToGit - 工作區未連線到 git。

  • WorkspaceHasNoCapacityAssigned - 未將容量轉為工作區。

  • WorkspaceHeadMismatch - 要求中的前端不符合系統中的前端。

  • WorkspacePreviousOperationInProgress - 先前的作業仍在進行中。

  • InsufficientPrivileges - 呼叫端沒有足夠的工作區許可權。

  • PrincipalTypeNotSupported - 不支援呼叫端身分識別類型。

範例

Commit all to Git example
Commit file-level selective to Git example
Commit selective items to Git example

Commit all to Git example

範例要求

POST https://api.fabric.microsoft.com/v1/workspaces/1565e6a3-c020-4c0c-dda7-92bafe99eec5/git/commitToGit

{
  "mode": "All",
  "workspaceHead": "eaa737b48cda41b37ffefac772ea48f6fed3eac4",
  "comment": "I'm committing all my changes."
}

範例回覆

Location: https://api.fabric.microsoft.com/v1/operations/431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7
x-ms-operation-id: 431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7
Retry-After: 30

Commit file-level selective to Git example

範例要求

POST https://api.fabric.microsoft.com/v1/workspaces/1565e6a3-c020-4c0c-dda7-92bafe99eec5/git/commitToGit

{
  "mode": "FileLevelSelective",
  "workspaceHead": "eaa737b48cda41b37ffefac772ea48f6fed3eac4",
  "comment": "Commit only the metadata change from MyNotebook",
  "itemsWithFileSelection": [
    {
      "objectId": "cfafbeb1-8037-4d0c-896e-28c4f2e65573",
      "selectedFiles": [
        "metadata.json"
      ]
    },
    {
      "objectId": "d5a2b3c4-1234-5678-abcd-ef0123456789",
      "selectedFiles": []
    }
  ]
}

範例回覆

Location: https://api.fabric.microsoft.com/v1/operations/431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7
x-ms-operation-id: 431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7
Retry-After: 30

Commit selective items to Git example

範例要求

POST https://api.fabric.microsoft.com/v1/workspaces/1565e6a3-c020-4c0c-dda7-92bafe99eec5/git/commitToGit

{
  "mode": "Selective",
  "workspaceHead": "eaa737b48cda41b37ffefac772ea48f6fed3eac4",
  "comment": "I'm committing specific changes.",
  "items": [
    {
      "logicalId": "111e8d7b-4a95-4c02-8ccd-6faef5ba1bd1",
      "objectId": "1153f3b4-dbb8-33c1-a84f-6ae4d776362d"
    },
    {
      "objectId": "7753f3b4-dbb8-44c1-a94f-6ae4d776369e"
    }
  ]
}

範例回覆

Location: https://api.fabric.microsoft.com/v1/operations/431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7
x-ms-operation-id: 431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7
Retry-After: 30

定義

名稱 Description
CommitMode

認可作業的模式。 可能會隨著時間新增其他模式。

CommitToGitRequest

包含認可要求。

ErrorRelatedResource

錯誤相關的資源詳細資料物件。

ErrorResponse

錯誤回應。

ErrorResponseDetails

錯誤回應詳細數據。

ItemIdentifier

包含項目識別碼。 至少必須定義其中一個屬性。

ItemIdentifierWithFileSelection

包含項目識別碼,並可選擇用於提交操作的檔案層級選擇。

CommitMode

認可作業的模式。 可能會隨著時間新增其他模式。

Description
All

認可所有未認可的變更。 呼叫端不需要提供要認可的項目清單。

Selective

提交一份指定且未提交變更的項目清單。 利用屬性 items 來指定項目。

FileLevelSelective

在指定項目中提交指定的檔案。 使用屬性 itemsWithFileSelection 來指定項目和檔案。

CommitToGitRequest

包含認可要求。

名稱 類型 Description
comment

string

maxLength: 300

此認可的呼叫端無批注。 最大長度為 300 個字元。 如果呼叫端未提供任何批注,請使用預設 Git 提供者批注。

items

ItemIdentifier[]

要認可的特定專案。 這只適用於選擇性提交模式。 與 itemsWithFileSelection 互斥。 您可以從 Git 狀態 API 擷取專案。

itemsWithFileSelection

ItemIdentifierWithFileSelection[]

FileLevelSelective 提交模式中,具有逐檔案選擇的項目。 與物品互斥。 每個項目指定一個項目,並可選擇提交檔案路徑清單。 如果 selectFiles 對某項目為空或為空,則該項目的所有檔案都會被提交。

mode

CommitMode

認可作業的模式。

workspaceHead

string

工作區同步處理的完整SHA哈希。 哈希可以從 Git 狀態 API 擷取。

ErrorRelatedResource

錯誤相關的資源詳細資料物件。

名稱 類型 Description
resourceId

string

發生錯誤的資源識別碼。

resourceType

string

發生錯誤的資源類型。

ErrorResponse

錯誤回應。

名稱 類型 Description
errorCode

string

提供錯誤狀況相關信息的特定標識碼,允許服務與其使用者之間的標準化通訊。

isRetriable

boolean

若屬實,請求可重新嘗試。 如果有延遲,請使用 Retry-After 回應標頭來判斷延遲。

message

string

錯誤的人類可讀取表示法。

moreDetails

ErrorResponseDetails[]

其他錯誤詳細數據的清單。

relatedResource

ErrorRelatedResource

錯誤相關的資源詳細數據。

requestId

string (uuid)

與錯誤相關聯的要求標識碼。

ErrorResponseDetails

錯誤回應詳細數據。

名稱 類型 Description
errorCode

string

提供錯誤狀況相關信息的特定標識碼,允許服務與其使用者之間的標準化通訊。

message

string

錯誤的人類可讀取表示法。

relatedResource

ErrorRelatedResource

錯誤相關的資源詳細數據。

ItemIdentifier

包含項目識別碼。 至少必須定義其中一個屬性。

名稱 類型 Description
logicalId

string (uuid)

項目的邏輯標識碼。 當邏輯識別碼無法使用,因為專案尚未新增至工作區時,您可以使用對象識別碼。

objectId

string (uuid)

項目的物件識別碼。 因為專案從工作區中刪除,因此無法使用物件識別碼時,您可以使用邏輯標識碼。

ItemIdentifierWithFileSelection

包含項目識別碼,並可選擇用於提交操作的檔案層級選擇。

名稱 類型 Description
logicalId

string (uuid)

項目的邏輯標識碼。 當邏輯識別碼無法使用,因為專案尚未新增至工作區時,您可以使用對象識別碼。

objectId

string (uuid)

項目的物件識別碼。 因為專案從工作區中刪除,因此無法使用物件識別碼時,您可以使用邏輯標識碼。

selectedFiles

string[]

相對於項目根的檔案路徑,要提交。 路徑僅使用前斜線,不使用前斜線,僅完整檔案路徑(不使用目錄或萬用字元),不使用空或僅留白的段落,且段落結尾不得有點或後方空白。 若為空或空,則該項目的所有檔案都會被提交。