Git - Commit To Git

将工作区中所做的更改提交到连接的远程分支。
此 API 支持 长时间运行的作(LRO)。

若要使用此 API,必须使用 更新我的 Git 凭据 API 配置调用方 Git 凭据。 可以使用 “获取我的 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 参数

名称 在 必需 类型 说明
workspaceId
path True

string (uuid)

工作区 ID。

请求正文

名称 必需 类型 说明
mode True

CommitMode

提交作的模式。

comment

string

maxLength: 300

此提交的无调用方注释。 最大长度为 300 个字符。 如果调用方未提供注释,请使用默认的 Git 提供程序注释。

items

ItemIdentifier[]

要提交的特定项。 这仅适用于选择性提交模式。 与 itemsWithFileSelection 互斥。 可以从 Git 状态 API 检索项。

itemsWithFileSelection

ItemIdentifierWithFileSelection[]

对于 FileLevelSelective 提交模式,具有按文件选择的项。 与项互斥。 每个条目都指定要提交的项和文件路径列表。 如果 selectedFiles 为 null 或为空的项,则提交该项目的所有文件。

workspaceHead

string

工作区要同步到的完整 SHA 哈希。 可以从 Git 状态 API 检索哈希。

响应

名称 类型 说明
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

定义

名称 说明
CommitMode

提交作的模式。 可能会随着时间的推移添加其他模式。

CommitToGitRequest

包含提交请求。

ErrorParameter

一个结构化参数,提供有关错误的附加计算机可读上下文。

ErrorRelatedResource

与错误相关的资源详细信息对象。

ErrorResponse

错误响应。

ErrorResponseDetails

错误响应详细信息。

ItemIdentifier

包含项标识符。 必须至少定义一个属性。

ItemIdentifierWithFileSelection

包含项标识符,其中包含用于提交操作的可选文件级选择。

CommitMode

提交作的模式。 可能会随着时间的推移添加其他模式。

值 说明
All

提交所有未提交的更改。 调用方不需要提供要提交的项列表。

Selective

提交具有未提交更改的项的指定列表。 使用属性 items 指定项。

FileLevelSelective

提交指定项中的指定文件。 使用属性 itemsWithFileSelection 指定项和文件。

CommitToGitRequest

包含提交请求。

名称 类型 说明
comment

string

maxLength: 300

此提交的无调用方注释。 最大长度为 300 个字符。 如果调用方未提供注释,请使用默认的 Git 提供程序注释。

items

ItemIdentifier[]

要提交的特定项。 这仅适用于选择性提交模式。 与 itemsWithFileSelection 互斥。 可以从 Git 状态 API 检索项。

itemsWithFileSelection

ItemIdentifierWithFileSelection[]

对于 FileLevelSelective 提交模式,具有按文件选择的项。 与项互斥。 每个条目都指定要提交的项和文件路径列表。 如果 selectedFiles 为 null 或为空的项,则提交该项目的所有文件。

mode

CommitMode

提交作的模式。

workspaceHead

string

工作区要同步到的完整 SHA 哈希。 可以从 Git 状态 API 检索哈希。

ErrorParameter

一个结构化参数,提供有关错误的附加计算机可读上下文。

名称 类型 说明
message

string

参数含义的可读说明。

name

string

参数标识符。

value

string

参数值。

ErrorRelatedResource

与错误相关的资源详细信息对象。

名称 类型 说明
resourceId

string

错误中涉及的资源 ID。

resourceType

string

错误中涉及的资源的类型。

ErrorResponse

错误响应。

名称 类型 说明
errorCode

string

提供有关错误条件的信息的特定标识符,允许服务与其用户之间的标准化通信。

isRetriable

boolean

如果为 true,可以重试请求。 Retry-After使用响应标头确定延迟(如果可用)。

message

string

错误的人工可读表示形式。

moreDetails

ErrorResponseDetails[]

其他错误详细信息的列表。

parameters

ErrorParameter[]

提供有关错误的其他计算机可读上下文的结构化参数。

relatedResource

ErrorRelatedResource

与错误相关的资源详细信息。

requestId

string (uuid)

与错误关联的请求的 ID。

ErrorResponseDetails

错误响应详细信息。

名称 类型 说明
errorCode

string

提供有关错误条件的信息的特定标识符,允许服务与其用户之间的标准化通信。

message

string

错误的人工可读表示形式。

parameters

ErrorParameter[]

提供有关错误的其他计算机可读上下文的结构化参数。

relatedResource

ErrorRelatedResource

与错误相关的资源详细信息。

ItemIdentifier

包含项标识符。 必须至少定义一个属性。

名称 类型 说明
logicalId

string (uuid)

项的逻辑 ID。 如果逻辑 ID 不可用,因为该项尚未添加到工作区,则可以使用对象 ID。

objectId

string (uuid)

项的对象 ID。 当对象 ID 由于从工作区中删除了项而不可用时,可以使用逻辑 ID。

ItemIdentifierWithFileSelection

包含项标识符,其中包含用于提交操作的可选文件级选择。

名称 类型 说明
logicalId

string (uuid)

项的逻辑 ID。 如果逻辑 ID 不可用,因为该项尚未添加到工作区,则可以使用对象 ID。

objectId

string (uuid)

项的对象 ID。 当对象 ID 由于从工作区中删除了项而不可用时,可以使用逻辑 ID。

selectedFiles

string[]

要提交的文件路径,相对于项根目录。 路径仅使用正斜杠、无前导斜杠、仅完整文件路径(无目录或通配符)、无空或仅空格段,段不能以点或尾随空格结尾。 如果为 null 或为空,则提交此项目的所有文件。