Notes API
메모는 다음과 같습니다: - 커밋 - 에픽 - 이슈 - 병합 요청 - 스니펫
이에는 시스템 메모도 포함되며, 이는 대상 객체에 대한 변경 사항에 대한 메모입니다(예: 담당자가 변경될 때 GitLab이 시스템 메모를 게시합니다).
리소스 이벤트
일부 시스템 메모는 이 API의 일부가 아니지만 별도의 이벤트로 기록됩니다: - 리소스 라벨 이벤트 - 리소스 상태 이벤트 - 리소스 마일스톤 이벤트 - 리소스 가중치 이벤트 - 리소스 반복 이벤트
메모 페이지네이션
기본적으로 GET
요청은 API 결과가 페이지별로 반환되기 때문에 한 번에 20개의 결과가 반환됩니다.
pagination에서 자세히 알아보세요.
비율 제한
남용을 방지하기 위해 사용자의 생성
요청 수를 분당 특정 수로 제한할 수 있습니다.
메모 비율 제한을 확인하세요.
이슈
프로젝트 이슈 메모 목록
단일 이슈에 대한 모든 메모 목록을 가져옵니다.
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에서 제거 예정이며 내부 로 이름이 변경됩니다. 메모의 기밀 플래그입니다. 기본값은 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"
### 기존 이슈 노트 수정
이슈의 기존 노트를 수정합니다.
```plaintext
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,
"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 인코딩 된 경로 |
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"
병합 요청
모든 병합 요청 노트 나열
단일 병합 요청에 대한 모든 노트 목록을 가져옵니다.
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
| 정수 | 예 | 프로젝트 병합 요청의 IID |
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/merge_requests/11/notes"
단일 병합 요청 노트 가져오기
특정 병합 요청에 대한 단일 노트를 반환합니다.
GET /projects/:id/merge_requests/:merge_request_iid/notes/:note_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
merge_request_iid
| 정수 | 예 | 프로젝트 병합 요청의 IID |
note_id
| 정수 | 예 | 병합 요청 노트의 ID |
{
"id": 301,
"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-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"
새로운 병합 요청 노트 생성
단일 병합 요청에 대한 새로운 노트를 생성합니다. 노트는 병합 요청의 특정 라인에 첨부되지 않습니다. 더 세분화된 제어를 위한 다른 방법은 커밋 API의 커밋에 코멘트 달기 및 토론 API의 병합 요청 차이에 새로운 스레드 생성를 참조하세요.
노트의 내용이 이모지 반응만 포함하는 경우, GitLab은 이 객체를 반환합니다.
POST /projects/:id/merge_requests/:merge_request_iid/notes
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
merge_request_iid
| 정수 | 예 | 프로젝트 병합 요청의 IID |
body
| 문자열 | 예 | 노트의 내용. 1,000,000자로 제한됨. |
created_at
| 문자열 | 아니요 | 일시 문자열, ISO 8601 형식. 예: 2016-03-11T03:45:40Z (관리자 또는 프로젝트/그룹 소유자 권한 필요)
|
merge_request_diff_head_sha
| 문자열 | 아니요 |
/merge 빠른 조치를 위해 필요합니다. 헤드 커밋의 SHA로, API 요청 전에 병합 요청이 업데이트되지 않았음을 보장합니다.
|
기존 병합 요청 노트 수정
기존 병합 요청 노트를 수정합니다.
PUT /projects/:id/merge_requests/:merge_request_iid/notes/:note_id
매개변수:
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩 된 경로 |
merge_request_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/merge_requests/11/notes/1?body=note"
병합 요청 노트 삭제
기존 병합 요청의 노트를 삭제합니다.
DELETE /projects/:id/merge_requests/:merge_request_iid/notes/:note_id
매개변수:
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩 된 경로 |
merge_request_iid
| 정수 | 예 | 병합 요청의 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
경고: 이픽스 REST API는 deprecated 되었으며 GitLab 17.0에서 제거 예정이며 API의 v5에서 제거될 예정입니다. GitLab 17.4 이상의 버전에서, 만약 관리자가 이픽스를 위한 새로운 룩을 활성화했다면, Work Items API를 대신 사용하세요. 이 변경 사항은 변경 사항입니다.
모든 이픽 노트 나열
단일 이픽의 모든 노트를 가져옵니다. 이픽 노트는 사용자가 이픽에 작성할 수 있는 댓글입니다.
참고: 이픽 노트 API는 이픽의 IID 대신 이픽 ID를 사용합니다. 이픽의 IID를 사용하면, GitLab이 404 오류를 반환하거나 잘못된 이픽의 노트를 반환합니다. 이것은 이슈 노트 API 및 병합 요청 노트 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
| 문자열 | 예 | 노트 내용. 1,000,000자로 제한됩니다. |
epic_id
| 정수 | 예 | 이픽의 ID |
id
| 정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩 된 경로 |
confidential
| 부울 | 아니요 |
사용 중지됨: GitLab 16.0에서 제거 예정이며 내부 로 이름이 변경되었습니다. 노트의 기밀 여부. 기본값은 false입니다.
|
internal
| 부울 | 아니요 | 노트의 내부 플래그. 두 매개변수가 함께 제출될 때 기밀 을 무시합니다. 기본값은 false입니다.
|
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/11/notes?body=note"
기존 epic 노트 수정
기존 epic 노트를 수정합니다.
PUT /groups/:id/epics/:epic_id/notes/:note_id
매개변수:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 그룹의 ID 또는 URL-인코딩된 경로 |
epic_id
| 정수 | 예 | epic의 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"