Git - Commit To Git

작업 영역에서 변경한 내용을 연결된 원격 분기에 커밋합니다.
이 API는 LRO(장기 실행 작업)지원합니다.

이 API를 사용하려면 내 Git 자격 증명 업데이트 API를 사용하여 호출자의 Git 자격 증명을 구성해야 합니다. 내 Git 자격 증명 가져오기 API를 사용하여 Git 자격 증명 구성을 확인할 수 있습니다.

FileLevelSelective 모드를 사용하여 항목 내의 모든 변경 내용, 특정 항목 또는 특정 파일을 커밋하도록 선택할 수 있습니다. 작업 영역을 처음으로 동기화하려면 연결 후 이 API를 사용하고 연결 API 를 초기화 합니다.

권한

호출자에게는 기여자 이상의 작업 영역 역할이 있어야 합니다.

필요한 위임된 범위

Workspace.GitCommit.All.

Microsoft Entra 지원 식별자

이 API는 이 섹션에 나열된 Microsoft ID 지원합니다.

아이덴티티 지원
사용자
서비스 주체관리 ID 작업에 관련된 모든 항목 이 서비스 주체를 지원하는 경우에만 지원됩니다.

인터페이스

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

URI 매개 변수

Name In(다음 안에) 필수 형식 Description
workspaceId
path True

string (uuid)

작업 영역 ID입니다.

요청 본문

Name 필수 형식 Description
mode True

CommitMode

커밋 작업의 모드입니다.

comment

string

maxLength: 300

이 커밋에 대한 호출자 없는 주석입니다. 최대 길이는 300자입니다. 호출자가 주석을 제공하지 않으면 기본 Git 공급자 주석을 사용합니다.

items

ItemIdentifier[]

커밋할 특정 항목입니다. 이는 선택적 커밋 모드에만 관련됩니다. itemsWithFileSelection과 함께 사용할 수 없습니다. Git 상태 API에서 항목을 검색할 수 있습니다.

itemsWithFileSelection

ItemIdentifierWithFileSelection[]

FileLevelSelective 커밋 모드에 대한 파일별 선택 항목입니다. 항목과 함께 사용할 수 없습니다. 각 항목은 항목을 지정하고 필요에 따라 커밋할 파일 경로 목록을 지정합니다. selectedFiles가 항목에 대해 null이거나 비어 있으면 해당 항목에 대한 모든 파일이 커밋됩니다.

workspaceHead

string

작업 영역이 동기화되는 전체 SHA 해시입니다. 해시는 Git 상태 API에서 검색할 수 있습니다.

응답

Name 형식 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 - 호출자 ID 형식은 지원되지 않습니다.

예제

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

정의

Name Description
CommitMode

커밋 작업의 모드입니다. 시간이 지남에 따라 추가 모드가 추가될 수 있습니다.

CommitToGitRequest

커밋 요청을 포함합니다.

ErrorRelatedResource

오류 관련 리소스 세부 정보 개체입니다.

ErrorResponse

오류 응답입니다.

ErrorResponseDetails

오류 응답 세부 정보입니다.

ItemIdentifier

항목 식별자를 포함합니다. 하나 이상의 속성을 정의해야 합니다.

ItemIdentifierWithFileSelection

커밋 작업에 대한 선택적 파일 수준 선택 항목 식별자를 포함합니다.

CommitMode

커밋 작업의 모드입니다. 시간이 지남에 따라 추가 모드가 추가될 수 있습니다.

Description
All

커밋되지 않은 모든 변경 내용을 커밋합니다. 호출자는 커밋할 항목 목록을 제공할 필요가 없습니다.

Selective

커밋되지 않은 변경 내용이 있는 항목의 지정된 목록을 커밋합니다. items 속성을 사용하여 항목을 지정합니다.

FileLevelSelective

지정된 항목 내에서 지정된 파일을 커밋합니다. itemsWithFileSelection 속성을 사용하여 항목 및 파일을 지정합니다.

CommitToGitRequest

커밋 요청을 포함합니다.

Name 형식 Description
comment

string

maxLength: 300

이 커밋에 대한 호출자 없는 주석입니다. 최대 길이는 300자입니다. 호출자가 주석을 제공하지 않으면 기본 Git 공급자 주석을 사용합니다.

items

ItemIdentifier[]

커밋할 특정 항목입니다. 이는 선택적 커밋 모드에만 관련됩니다. itemsWithFileSelection과 함께 사용할 수 없습니다. Git 상태 API에서 항목을 검색할 수 있습니다.

itemsWithFileSelection

ItemIdentifierWithFileSelection[]

FileLevelSelective 커밋 모드에 대한 파일별 선택 항목입니다. 항목과 함께 사용할 수 없습니다. 각 항목은 항목을 지정하고 필요에 따라 커밋할 파일 경로 목록을 지정합니다. selectedFiles가 항목에 대해 null이거나 비어 있으면 해당 항목에 대한 모든 파일이 커밋됩니다.

mode

CommitMode

커밋 작업의 모드입니다.

workspaceHead

string

작업 영역이 동기화되는 전체 SHA 해시입니다. 해시는 Git 상태 API에서 검색할 수 있습니다.

ErrorRelatedResource

오류 관련 리소스 세부 정보 개체입니다.

Name 형식 Description
resourceId

string

오류와 관련된 리소스 ID입니다.

resourceType

string

오류와 관련된 리소스의 형식입니다.

ErrorResponse

오류 응답입니다.

Name 형식 Description
errorCode

string

오류 조건에 대한 정보를 제공하여 서비스와 사용자 간의 표준화된 통신을 허용하는 특정 식별자입니다.

isRetriable

boolean

true이면 요청을 다시 시도 할 수 있습니다. 응답 헤더를 Retry-After 사용하여 가능한 경우 지연을 확인합니다.

message

string

사용자가 읽을 수 있는 오류 표현입니다.

moreDetails

ErrorResponseDetails[]

추가 오류 세부 정보 목록입니다.

relatedResource

ErrorRelatedResource

오류 관련 리소스 세부 정보입니다.

requestId

string (uuid)

오류와 연결된 요청의 ID입니다.

ErrorResponseDetails

오류 응답 세부 정보입니다.

Name 형식 Description
errorCode

string

오류 조건에 대한 정보를 제공하여 서비스와 사용자 간의 표준화된 통신을 허용하는 특정 식별자입니다.

message

string

사용자가 읽을 수 있는 오류 표현입니다.

relatedResource

ErrorRelatedResource

오류 관련 리소스 세부 정보입니다.

ItemIdentifier

항목 식별자를 포함합니다. 하나 이상의 속성을 정의해야 합니다.

Name 형식 Description
logicalId

string (uuid)

항목의 논리적 ID입니다. 항목이 작업 영역에 아직 추가되지 않았기 때문에 논리 ID를 사용할 수 없는 경우 개체 ID를 사용할 수 있습니다.

objectId

string (uuid)

항목의 개체 ID입니다. 작업 영역에서 항목이 삭제되어 개체 ID를 사용할 수 없는 경우 논리 ID를 사용할 수 있습니다.

ItemIdentifierWithFileSelection

커밋 작업에 대한 선택적 파일 수준 선택 항목 식별자를 포함합니다.

Name 형식 Description
logicalId

string (uuid)

항목의 논리적 ID입니다. 항목이 작업 영역에 아직 추가되지 않았기 때문에 논리 ID를 사용할 수 없는 경우 개체 ID를 사용할 수 있습니다.

objectId

string (uuid)

항목의 개체 ID입니다. 작업 영역에서 항목이 삭제되어 개체 ID를 사용할 수 없는 경우 논리 ID를 사용할 수 있습니다.

selectedFiles

string[]

항목 루트를 기준으로 커밋할 파일 경로입니다. 경로는 슬래시만 사용하고, 선행 슬래시가 없으며, 전체 파일 경로만(디렉터리 또는 와일드카드 없음), 빈 세그먼트 또는 공백 전용 세그먼트가 없으며 세그먼트는 점 또는 후행 공백으로 끝날 수 없습니다. null이거나 비어 있으면 이 항목의 모든 파일이 커밋됩니다.