Notes API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

노트는 다음과 같은 내용의 코멘트입니다:

이에는 객체에 대한 변경 사항에 대한 시스템 노트도 포함됩니다(예: 담당자 변경할 때 GitLab이 시스템 노트를 게시합니다).

리소스 이벤트

일부 시스템 노트는 이 API의 일부가 아니지만 별도의 이벤트로 기록됩니다:

노트 페이지네이션

기본적으로 GET 요청은 페이징 처리되어 한 번에 20개의 결과를 반환합니다.

자세한 내용은 페이지네이션을 참조하십시오.

요금 한도

남용을 방지하기 위해 사용자의 Create 요청을 분당 특정 횟수로 제한할 수 있습니다. 노트 요금 한도에 대한 자세한 내용은 노트 요금 한도를 참조하십시오.

이슈

프로젝트 이슈 노트 디렉터리

단일 이슈에 대한 모든 노트 디렉터리을 가져옵니다.

GET /projects/:id/issues/:issue_iid/notes
GET /projects/:id/issues/:issue_iid/notes?sort=asc&order_by=updated_at
속성 유형 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-인코딩 경로
issue_iid 정수 이슈의 IID
sort 문자열 아니요 이슈 노트를 asc 또는 desc 순서로 정렬하여 반환합니다. 기본값은 desc입니다.
order_by 문자열 아니요 이슈 노트를 created_at 또는 updated_at 필드로 정렬하여 반환합니다. 기본값은 created_at입니다.
[
  {
    "id": 302,
    "body": "closed",
    "attachment": null,
    "author": {
      "id": 1,
      "username": "pipin",
      "email": "admin@example.com",
      "name": "Pip",
      "state": "active",
      "created_at": "2013-09-30T13:46:01Z"
    },
    "created_at": "2013-10-02T09:22:45Z",
    "updated_at": "2013-10-02T10:22:45Z",
    "system": true,
    "noteable_id": 377,
    "noteable_type": "Issue",
    "project_id": 5,
    "noteable_iid": 377,
    "resolvable": false,
    "confidential": false,
    "internal": false,
    "imported": false,
    "imported_from": "none"
  },
  {
    "id": 305,
    "body": "Text of the comment\r\n",
    "attachment": null,
    "author": {
      "id": 1,
      "username": "pipin",
      "email": "admin@example.com",
      "name": "Pip",
      "state": "active",
      "created_at": "2013-09-30T13:46:01Z"
    },
    "created_at": "2013-10-02T09:56:03Z",
    "updated_at": "2013-10-02T09:56:03Z",
    "system": true,
    "noteable_id": 121,
    "noteable_type": "Issue",
    "project_id": 5,
    "noteable_iid": 121,
    "resolvable": false,
    "confidential": true,
    "internal": true,
    "imported": false,
    "imported_from": "none"
  }
]
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes"

단일 이슈 노트 가져오기

특정 프로젝트 이슈의 단일 노트를 반환합니다.

GET /projects/:id/issues/:issue_iid/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-인코딩 경로
issue_iid 정수 프로젝트 이슈의 IID
note_id 정수 이슈 노트의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/1"

새 이슈 노트 생성

단일 프로젝트 이슈에 새 노트를 생성합니다.

POST /projects/:id/issues/:issue_iid/notes

파라미터:

속성 유형 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-인코딩 경로.
issue_iid 정수 이슈의 IID.
body 문자열 노트의 내용. 1,000,000자로 제한됩니다.
confidential 불리언 아니요 폐기됨: GitLab 16.0에서 삭제될 예정이며 internal로 이름이 변경될 예정입니다. 노트의 비밀 여부. 기본값은 false입니다.
internal 불리언 아니요 노트의 내부 플래그. 두 매개변수가 제출될 때 confidential를 재정의합니다. 기본값은 false입니다.
created_at 문자열 아니요 날짜 및 시간 문자열로 ISO 8601 형식이어야 합니다. 1970-01-01 이후여야 합니다. 예시: 2016-03-11T03:45:40Z (관리자 또는 프로젝트/그룹 소유자 권한이 필요함)
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes?body=note"

기존 이슈 노트 수정

이슈의 기존 노트를 수정합니다.

PUT /projects/:id/issues/:issue_iid/notes/:note_id

파라미터:

속성 유형 필수 여부 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-인코딩 경로.
issue_iid 정수 이슈의 IID.
note_id 정수 노트의 ID.
body 문자열 아니요 노트의 내용. 1,000,000자로 제한됩니다.
confidential 불리언 아니요 폐기됨: GitLab 16.0에서 삭제될 예정입니다. 노트의 비밀 여부. 기본값은 false입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/636?body=note"
DELETE /projects/:id/issues/:issue_iid/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-encoded path
issue_iid 정수 이슈의 IID
note_id 정수 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/636"

스니펫

스니펫 노트 API는 프로젝트 수준의 스니펫을 위한 것이며, 개인 스니펫을 위한 것이 아닙니다.

모든 스니펫 노트 나열

단일 스니펫에 대한 모든 노트 디렉터리을 가져옵니다. 스니펫 노트는 사용자가 스니펫에 게시할 수있는 코멘트입니다.

GET /projects/:id/snippets/:snippet_id/notes
GET /projects/:id/snippets/:snippet_id/notes?sort=asc&order_by=updated_at
속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-encoded path
snippet_id 정수 프로젝트 스니펫의 ID
sort 문자열 아니오 asc 또는 desc 순서로 정렬된 스니펫 노트를 반환합니다. 기본값은 desc입니다.
order_by 문자열 아니오 created_at 또는 updated_at 필드 기준으로 정렬된 스니펫 노트를 반환합니다. 기본값은 created_at입니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes"

단일 스니펫 노트 가져오기

지정된 스니펫에 대한 단일 노트를 반환합니다.

GET /projects/:id/snippets/:snippet_id/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-encoded path
snippet_id 정수 프로젝트 스니펫의 ID
note_id 정수 스니펫 노트의 ID
{
  "id": 302,
  "body": "closed",
  "attachment": null,
  "author": {
    "id": 1,
    "username": "pipin",
    "email": "admin@example.com",
    "name": "Pip",
    "state": "active",
    "created_at": "2013-09-30T13:46:01Z"
  },
  "created_at": "2013-10-02T09:22:45Z",
  "updated_at": "2013-10-02T10:22:45Z",
  "system": true,
  "noteable_id": 377,
  "noteable_type": "Issue",
  "project_id": 5,
  "noteable_iid": 377,
  "resolvable": false,
  "confidential": false,
  "internal": false,
  "imported": false,
  "imported_from": "none"
}
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes/11"

새로운 스니펫 노트 생성

단일 스니펫에 대한 새로운 노트를 만듭니다. 스니펫 노트는 스니펫에 대한 사용자 코멘트입니다. 본문에 이모지 반응만 포함하는 노트를 생성하는 경우, GitLab은 이 개체를 반환합니다.

POST /projects/:id/snippets/:snippet_id/notes

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-encoded path
snippet_id 정수 스니펫의 ID
body 문자열 노트의 내용. 1,000,000자로 제한됩니다.
created_at 문자열 아니오 ISO 8601 형식의 날짜 및 시간 문자열. 예: 2016-03-11T03:45:40Z (관리자 또는 프로젝트/그룹 소유자 권한이 필요합니다)
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippet/11/notes?body=note"

기존 스니펫 노트 수정

스니펫의 기존 노트를 수정합니다.

PUT /projects/:id/snippets/:snippet_id/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-encoded path
snippet_id 정수 스니펫의 ID
note_id 정수 스니펫 노트의 ID
body 문자열 노트의 내용. 1,000,000자로 제한됩니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes/1659?body=note"

스니펫 노트 삭제

스니펫의 기존 노트를 삭제합니다.

DELETE /projects/:id/snippets/:snippet_id/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-encoded path
snippet_id 정수 스니펫의 ID
note_id 정수 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/52/notes/1659"

Merge Request

모든 Merge Request 노트 나열

단일 Merge Request에 대한 모든 노트 디렉터리을 가져옵니다.

GET /projects/:id/merge_requests/:merge_request_iid/notes
GET /projects/:id/merge_requests/:merge_request_iid/notes?sort=asc&order_by=updated_at
속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-encoded path
merge_request_iid 정수 프로젝트 Merge Request의 IID
sort 문자열 아니오 asc 또는 desc 순서로 정렬된 Merge Request 노트를 반환합니다. 기본값은 desc입니다.
order_by 문자열 아니오 created_at 또는 updated_at 필드 기준으로 정렬된 Merge Request 노트를 반환합니다. 기본값은 created_at입니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes"

단일 Merge Request 노트 가져오기

지정된 Merge Request에 대한 단일 노트를 반환합니다.

GET /projects/:id/merge_requests/:merge_request_iid/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-인코딩된 경로
merge_request_iid 정수 프로젝트 Merge Request의 IID
note_id 정수 Merge Request 노트의 ID
{
  "id": 301,
  "body": "MR에 대한 코멘트",
  "attachment": null,
  "author": {
    "id": 1,
    "username": "pipin",
    "email": "admin@example.com",
    "name": "Pip",
    "state": "active",
    "created_at": "2013-09-30T13:46:01Z"
  },
  "created_at": "2013-10-02T08:57:14Z",
  "updated_at": "2013-10-02T08:57:14Z",
  "system": false,
  "noteable_id": 2,
  "noteable_type": "MergeRequest",
  "project_id": 5,
  "noteable_iid": 2,
  "resolvable": false,
  "confidential": false,
  "internal": false
}
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes/1"

새로운 Merge Request 노트 생성

단일 Merge Request에 대한 새로운 노트를 생성합니다. 노트는 Merge Request의 특정 라인에 첨부되지 않습니다. 더 세분화된 제어 방법을 위해 다른 방법을 보려면 커밋에 주석 달기를 참조하십시오. 또한 표준 API에서 Merge Request 차이에 대한 새로운 스레드 생성을 참조하십시오.

본문에 이모지 반응만 포함된 노트를 만드는 경우 GitLab은 이러한 개체를 반환합니다.

POST /projects/:id/merge_requests/:merge_request_iid/notes

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-인코딩된 경로
merge_request_iid 정수 프로젝트 Merge Request의 IID
body 문자열 노트의 내용. 1,000,000자로 제한됨.
created_at 문자열 아니오 날짜 및 시간 문자열, ISO 8601 형식. 예: 2016-03-11T03:45:40Z (관리자 또는 프로젝트/그룹 소유자 권한 필요)
merge_request_diff_head_sha 문자열 아니오 /합병 빠른 작업을 위해 필요합니다. API 요청이 전송된 후 Merge Request이 업데이트되지 않았음을 보장하는 헤드 커밋의 SHA.

기존 Merge Request 노트 수정

Merge Request의 기존 노트를 수정합니다.

PUT /projects/:id/merge_requests/:merge_request_iid/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-인코딩된 경로
merge_request_iid 정수 프로젝트 Merge Request의 IID
note_id 정수 아니오 노트의 ID
body 문자열 노트의 내용. 1,000,000자로 제한됨.
confidential 부울 아니오 사용되지 않음: GitLab 16.0에서 삭제 예정. 노트의 기밀 플래그. 기본값은 false.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/notes/1?body=note"

Merge Request 노트 삭제

Merge Request의 기존 노트를 삭제합니다.

DELETE /projects/:id/merge_requests/:merge_request_iid/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL-인코딩된 경로
merge_request_iid 정수 Merge Request의 IID
note_id 정수 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/7/notes/1602"

에픽

Tier: Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

모든 에픽 노트 나열

단일 에픽에 대한 모든 노트를 가져옵니다. 에픽 노트는 사용자가 에픽에 게시할 수 있는 코멘트입니다.

note
에픽 노트 API는 에픽 IID대신 에픽 ID를 사용합니다. 에픽의 IID를 사용하는 경우, GitLab은 404 오류 또는 잘못된 에픽에 대한 노트를 반환합니다. 이슈 노트 APIMerge Request 노트 API와는 다릅니다.
GET /groups/:id/epics/:epic_id/notes
GET /groups/:id/epics/:epic_id/notes?sort=asc&order_by=updated_at
속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL-인코딩된 경로
epic_id 정수 그룹 에픽의 ID
sort 문자열 아니오 asc 또는 desc 순서로 정렬된 에픽 노트 반환. 기본값은 desc
order_by 문자열 아니오 created_at 또는 updated_at 필드별로 정렬된 에픽 노트 반환. 기본값은 created_at
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes"

단일 에픽 노트 가져오기

지정된 에픽에 대한 단일 노트를 반환합니다.

GET /groups/:id/epics/:epic_id/notes/:note_id

매개변수:

속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL-인코딩된 경로
epic_id 정수 에픽의 ID
note_id 정수 노트의 ID
{
  "id": 302,
  "body": "에픽 노트",
  "attachment": null,
  "author": {
    "id": 1,
    "username": "pipin",
    "email": "admin@example.com",
    "name": "Pip",
    "state": "active",
    "created_at": "2013-09-30T13:46:01Z"
  },
  "created_at": "2013-10-02T09:22:45Z",
  "updated_at": "2013-10-02T10:22:45Z",
  "system": true,
  "noteable_id": 11,
  "noteable_type": "Epic",
  "project_id": 5,
  "noteable_iid": 11,
  "resolvable": false,
  "confidential": false,
  "internal": false,
  "imported": false,
  "imported_from": "none"
}
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes/1"

새 에픽 노트 생성

단일 에픽을 위한 새 노트를 생성합니다. 에픽 노트는 사용자가 에픽에 게시할 수 있는 코멘트입니다. 본문이 이모지 반응만 포함하는 노트를 생성하는 경우, GitLab이 이 객체를 반환합니다.

POST /groups/:id/epics/:epic_id/notes

매개변수:

속성 타입 필수 여부 설명
body string 노트의 내용. 1,000,000자로 제한됩니다.
epic_id integer 에픽의 ID
id integer 또는 string 그룹의 ID 또는 URL 인코딩된 경로
confidential boolean 아니요 폐기 예정: GitLab 16.0에서 삭제 예정이며 internal로 이름이 변경됩니다. 노트의 기밀 플래그. 기본값은 false입니다.
internal boolean 아니요 노트의 내부 플래그. 두 매개변수가 제출될 때 confidential을 재정의합니다. 기본값은 false입니다.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes?body=note"

기존 에픽 노트 수정

에픽의 기존 노트를 수정합니다.

PUT /groups/:id/epics/:epic_id/notes/:note_id

매개변수:

속성 타입 필수 여부 설명
id integer 또는 string 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 에픽의 ID
note_id integer 노트의 ID
body string 노트의 내용. 1,000,000자로 제한됩니다.
confidential boolean 아니요 폐기 예정: GitLab 16.0에서 삭제 예정입니다. 노트의 기밀 플래그. 기본값은 false입니다.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes/1?body=note"

에픽 노트 삭제

기존 에픽의 노트를 삭제합니다.

DELETE /groups/:id/epics/:epic_id/notes/:note_id

매개변수:

속성 타입 필수 여부 설명
id integer 또는 string 그룹의 ID 또는 URL 인코딩된 경로
epic_id integer 에픽의 ID
note_id integer 노트의 ID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/52/notes/1659"