ノートAPI

ノートはコメントです:

  • スニペット
  • イシュー
  • マージリクエスト
  • エピック

これにはシステムノートも含まれます。システムノートとは、オブジェクトの変更に関するメモのことです(例えば、担当者が変更されると、GitLab はシステムノートを投稿します)。

リソースイベント

  • GitLab 13.3 で導入されたステート、マイルストーン、ウェイトイベント。
  • GitLab 13.4 でイテレーションイベントに導入

いくつかのシステムノートはこのAPIの一部ではなく、別のイベントとして記録されます:

ノートのページネーション

デフォルトでは、APIの結果はページ分割されているため、GET リクエストは一度に20件の結果を返します。

ページ分割についての詳細はこちらをご覧ください。

レート制限

不正使用を避けるために、1 分間にCreate リクエストできるユーザー数を制限することができます。レート制限に関する注意事項」を参照してください。

イシュー

プロジェクトのイシューをリストアップします。

1つのイシューに関するすべてのノートの一覧を取得します。

GET /projects/:id/issues/:issue_iid/notes
GET /projects/:id/issues/:issue_iid/notes?sort=asc&order_by=updated_at
属性種類必須説明
id整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
issue_iid整数。yesイシューのIID
sort文字列です。いいえ asc 、またはソートされたイシュー・ノートを返しますdesc 。デフォルトは desc
order_by文字列です。いいえ created_atupdated_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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
issue_iid整数。yesプロジェクトのイシューのIID
note_id整数。yesイシューノートのID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/issues/11/notes/1"

イシュー・ノートの新規作成

1つのプロジェクトのイシューに新しいノートを作成します。

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

パラメータを指定します:

属性種類必須説明
id整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
issue_iid整数。yesイシューのIID。
body文字列です。yesメモの内容。1,000,000文字まで。
confidentialbooleanいいえ 非推奨:GitLab 16.0で削除され、internal に名前が変更される予定です。 ノートの機密フラグ。デフォルトはfalseです。
internalbooleanいいえノートの内部フラグ。両方のパラメータが送信された場合、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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
issue_iid整数。yesイシューのIID。
note_id整数。yesノートのID。
body文字列です。いいえメモの内容。1,000,000文字まで。
confidentialbooleanいいえ 非推奨: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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
issue_iid整数。yesイシューのIID
note_id整数。yesノートの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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
snippet_id整数。yesプロジェクトスニペットのID
sort文字列です。いいえスニペットノートをasc またはdesc 順序で descソートして返します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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
snippet_id整数。yesプロジェクトスニペットのID
note_id整数。yesスニペットノートの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"

スニペットノートの新規作成

1つのスニペットに対して新しいノートを作成します。スニペットノートはスニペットに対するユーザーのコメントです。コンテナに絵文字のリアクションだけを含むノートを作成した場合、GitLabはこのオブジェクトを返します。

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

パラメータを指定します:

属性種類必須説明
id整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
snippet_id整数。yesスニペットのID
body文字列です。yesメモの内容。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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
snippet_id整数。yesスニペットのID
note_id整数。yesスニペットノートのID
body文字列です。yesメモの内容。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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
snippet_id整数。yesスニペットのID
note_id整数。yesノートの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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
merge_request_iid整数。yesプロジェクトマージリクエストのIID
sort文字列です。いいえマージリクエストノートをasc またはdesc 順序で descソートして返します。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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
merge_request_iid整数。yesプロジェクトマージリクエストのIID
note_id整数。yesマージリクエストノートのID
{
  "id": 301,
  "body": "Comment for 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"

マージリクエストノートの新規作成

一つのマージリクエストに新しいノートを作成します。ノートはマージリクエストの特定の行には添付されません。より詳細な制御を行う他のアプローチについては、 Commits API のPost comment to commitや Discussions API のCreate a new thread in the merge request diffを参照してください。

コンテナに絵文字のリアクションのみを含むノートを作成した場合、GitLab はこのオブジェクトを返します。

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

パラメータを指定します:

属性種類必須説明
id整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
merge_request_iid整数。yesプロジェクトマージリクエストのIID
body文字列です。yesメモの内容。1,000,000文字まで。
created_at文字列です。いいえISO 8601形式の日付時刻文字列。例:2016-03-11T03:45:40Z (管理者またはプロジェクト/グループオーナーの権限が必要です)
merge_request_diff_head_sha文字列です。いいえ /merge クイックアクションに必要です。APIリクエストが送信された後にマージリクエストが更新されていないことを確認するための、先頭コミットのSHA。

既存のマージリクエストノートの変更

マージリクエストの既存のノートを修正します。

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

パラメータを指定します:

属性種類必須説明
id整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
merge_request_iid整数。yesプロジェクトマージリクエストのIID
note_id整数。いいえノートのID
body文字列です。yesメモの内容。1,000,000文字まで。
confidentialbooleanいいえ 非推奨: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整数または文字列。yes プロジェクトのIDまたはURLエンコードされたパス
merge_request_iid整数。yesマージリクエストの IID
note_id整数。yesノートのID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/7/notes/1602"

エピック

エピックノート一覧

1つのエピックに関するすべてのノートのリストを取得します。エピックノートとは、ユーザーがエピックに投稿できるコメントです。

note
エピックノート 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整数または文字列。yes グループのIDまたはURLエンコードされたパス
epic_id整数。yesグループのエピックID
sort文字列です。いいえエピックノートをasc またはdesc 順番に descソートして返します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整数または文字列。yes グループのIDまたはURLエンコードされたパス
epic_id整数。yesエピックID
note_id整数。yesノートのID
{
  "id": 302,
  "body": "Epic note",
  "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"

エピックノートの新規作成

1つのエピックに対して新しいノートを作成します。エピックノートとは、ユーザーがエピックに投稿できるコメントです。コンテナに絵文字のリアクションのみを含むノートを作成した場合、GitLabはこのオブジェクトを返します。

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

パラメータを指定します:

属性種類必須説明
body文字列です。yesメモの内容。1,000,000文字まで。
epic_id整数。yesエピックID
id整数または文字列。yes グループのIDまたはURLエンコードされたパス
confidentialbooleanいいえ 非推奨:GitLab 16.0で削除される予定で、internalに名前が変更されます。 ノートの機密フラグ。デフォルトはfalse
internalbooleanいいえノートの内部フラグ。両方のパラメータが送信された場合、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整数または文字列。yes グループのIDまたはURLエンコードされたパス
epic_id整数。yesエピックID
note_id整数。yesノートのID
body文字列です。yesメモの内容。1,000,000文字まで。
confidentialbooleanいいえ 非推奨: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整数または文字列。yes グループのIDまたはURLエンコードされたパス
epic_id整数。yesエピックID
note_id整数。yesノートのID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/epics/52/notes/1659"