노트 API
노트는 다음과 같은 항목들에 대한 코멘트입니다:
이에는 시스템 노트도 포함되며, 시스템 노트는 객체에 대한 변경 사항에 대한 노트입니다(예: 담당자 변경 시 GitLab이 시스템 노트를 게시합니다).
리소스 이벤트
- GitLab 13.3에 도입: 상태, 마일스톤 및 가중치 이벤트를 위함
- GitLab 13.4에 도입: 이터레이션 이벤트를 위함
일부 시스템 노트는 이 API의 일부가 아니지만 별도의 이벤트로 기록됩니다:
노트 페이징
기본적으로 GET
요청은 API 결과가 페이지화되기 때문에 한 번에 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
},
{
"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
}
]
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 인코딩된 경로 |
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 인코딩된 경로 |
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 인코딩된 경로 |
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
}
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/snippets/11/notes/11"
새로운 스니펫 노트 생성
단일 스니펫에 대한 새로운 노트를 생성합니다. 스니펫 노트는 스니펫에 대한 사용자 코멘트입니다. 만약 본문에 이모지 reaction만 포함된 노트를 생성하면, GitLab은 이 객체를 반환합니다.
POST /projects/:id/snippets/:snippet_id/notes
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
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 인코딩된 경로 |
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 인코딩 경로 |
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 인코딩 경로 |
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": "Merge Request에 대한 코멘트",
"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의 커밋에 코멘트 달기 및 토론 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
| 문자열 | 아니오 |
/merge 빠른 동작에 필요합니다. Merge Request이 API 요청 이후에 업데이트되지 않았음을 보장하는 head 커밋의 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"
에픽
모든 에픽 노트 디렉터리
단일 에픽의 모든 노트 디렉터리을 가져옵니다. 에픽 노트는 사용자가 에픽에 게시할 수 있는 코멘트입니다.
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
}
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
| 문자열 | 예 | 노트의 내용. 1,000,000자로 제한됩니다. |
epic_id
| 정수 | 예 | 에픽의 ID |
id
| 정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩 된 경로 |
confidential
| 부울 | 아니요 |
잠정 폐기됨: GitLab 16.0에서 제거 예정이며 internal 로 이름이 변경됩니다. 노트의 비밀 여부. 기본값은 false 입니다.
|
internal
| 부울 | 아니요 | 노트의 내부 플래그. 두 매개변수가 모두 제출되면 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
| 정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
epic_id
| 정수 | 예 | 에픽의 ID |
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/groups/5/epics/11/notes/1?body=note"
Epic 노트 삭제
기존 Epic 노트를 삭제합니다.
DELETE /groups/:id/epics/:epic_id/notes/:note_id
매개변수:
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
epic_id
| 정수 | 예 | Epic의 ID |
note_id
| 정수 | 예 | 노트의 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/52/notes/1659"