通知設定API

REST APIを使用して通知設定を変更します。

有効な通知レベル

通知レベルはNotificationSetting.level モデル列挙で定義されています。現在、これらのレベルが認識されています:

  • disabled
  • participating
  • watch
  • global
  • mention
  • custom

custom レベルが使用される場合、特定の電子メールイベントを制御することができます。利用可能なイベントはNotificationSetting.email_events によって返されます。現在、これらのイベントが認識されます:

  • new_note
  • new_issue
  • reopen_issue
  • close_issue
  • reassign_issue
  • issue_due
  • new_merge_request
  • push_to_merge_request
  • reopen_merge_request
  • close_merge_request
  • reassign_merge_request
  • merge_merge_request
  • failed_pipeline
  • fixed_pipeline
  • success_pipeline
  • moved_project
  • merge_when_pipeline_succeeds
  • new_epic

グローバル通知設定

現在の通知設定とメールアドレスを取得します。

GET /notification_settings
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/notification_settings"

応答例

{
  "level": "participating",
  "notification_email": "admin@example.com"
}

グローバル通知設定の更新

現在の通知設定とメールアドレスを更新します。

PUT /notification_settings
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/notification_settings?level=watch"
属性種類必須説明
level文字列です。いいえグローバル通知レベル
notification_email文字列です。いいえ通知を送信するメールアドレス
new_notebooleanいいえこの通知の有効/無効
new_issuebooleanいいえこの通知の有効/無効
reopen_issuebooleanいいえこの通知の有効/無効
close_issuebooleanいいえこの通知の有効/無効
reassign_issuebooleanいいえこの通知の有効/無効
issue_duebooleanいいえこの通知の有効/無効
new_merge_requestbooleanいいえこの通知の有効/無効
push_to_merge_requestbooleanいいえこの通知の有効/無効
reopen_merge_requestbooleanいいえこの通知の有効/無効
close_merge_requestbooleanいいえこの通知の有効/無効
reassign_merge_requestbooleanいいえこの通知の有効/無効
merge_merge_requestbooleanいいえこの通知の有効/無効
failed_pipelinebooleanいいえこの通知の有効/無効
fixed_pipelinebooleanいいえこの通知の有効/無効
success_pipelinebooleanいいえこの通知の有効/無効
moved_projectbooleanいいえこの通知を有効/無効にします(GitLab 13.3で導入)
merge_when_pipeline_succeedsbooleanいいえこの通知を有効/無効にします(GitLab 13.9で導入)
new_epicbooleanいいえこの通知を有効/無効にします(GitLab 11.3で導入)

応答例

{
  "level": "watch",
  "notification_email": "admin@example.com"
}

グループ/プロジェクトレベルの通知設定

現在のグループまたはプロジェクト通知設定を取得します。

GET /groups/:id/notification_settings
GET /projects/:id/notification_settings
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/notification_settings"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/8/notification_settings"
属性種類必須説明
id整数または文字列。yes グループまたはプロジェクトのID、またはURLエンコードされたパス

応答例

{
  "level": "global"
}

グループ/プロジェクトレベルの通知設定の更新

現在のグループ/プロジェクト通知設定を更新します。

PUT /groups/:id/notification_settings
PUT /projects/:id/notification_settings
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/notification_settings?level=watch"
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/8/notification_settings?level=custom&new_note=true"
属性種類必須説明
id整数または文字列。yes グループまたはプロジェクトのID、またはURLエンコードされたパス
level文字列です。いいえグローバル通知レベル
new_notebooleanいいえこの通知の有効/無効
new_issuebooleanいいえこの通知の有効/無効
reopen_issuebooleanいいえこの通知の有効/無効
close_issuebooleanいいえこの通知の有効/無効
reassign_issuebooleanいいえこの通知の有効/無効
issue_duebooleanいいえこの通知の有効/無効
new_merge_requestbooleanいいえこの通知の有効/無効
push_to_merge_requestbooleanいいえこの通知の有効/無効
reopen_merge_requestbooleanいいえこの通知の有効/無効
close_merge_requestbooleanいいえこの通知の有効/無効
reassign_merge_requestbooleanいいえこの通知の有効/無効
merge_merge_requestbooleanいいえこの通知の有効/無効
failed_pipelinebooleanいいえこの通知の有効/無効
fixed_pipelinebooleanいいえこの通知の有効/無効
success_pipelinebooleanいいえこの通知の有効/無効
moved_projectbooleanいいえこの通知を有効/無効にします(GitLab 13.3で導入)
merge_when_pipeline_succeedsbooleanいいえこの通知を有効/無効にします(GitLab 13.9で導入)
new_epicbooleanいいえこの通知を有効/無効にします(GitLab 11.3で導入)

レスポンスの例

{
  "level": "watch"
}
{
  "level": "custom",
  "events": {
    "new_note": true,
    "new_issue": false,
    "reopen_issue": false,
    "close_issue": false,
    "reassign_issue": false,
    "issue_due": false,
    "new_merge_request": false,
    "push_to_merge_request": false,
    "reopen_merge_request": false,
    "close_merge_request": false,
    "reassign_merge_request": false,
    "merge_merge_request": false,
    "failed_pipeline": false,
    "fixed_pipeline": false,
    "success_pipeline": false
  }
}

GitLab Ultimateのユーザーもnew_epic パラメータでグローバルとグループレベルの通知設定を見ることができます:

{
  "level": "custom",
  "events": {
    "new_note": true,
    "new_issue": false,
    "new_epic": false,
    ...
  }
}