Support new chat notifications parameters in Services API
+ Add support for the new separate channel and events settings * Dry up chat notifications in the service properties definitions
This commit is contained in:
parent
2972352a9c
commit
1e72dd106b
4 changed files with 210 additions and 42 deletions
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Support new chat notifications parameters in Services API
|
||||
merge_request: 11435
|
||||
author:
|
||||
type: added
|
|
@ -803,11 +803,33 @@ Set Slack service for a project.
|
|||
PUT /projects/:id/services/slack
|
||||
```
|
||||
|
||||
Parameters:
|
||||
>**Note:** Specific event parameters (e.g. `push_events` flag and `push_channel`) were [introduced in v10.4][11435]
|
||||
|
||||
- `webhook` (**required**) - https://hooks.slack.com/services/...
|
||||
- `username` (optional) - username
|
||||
- `channel` (optional) - #channel
|
||||
#### Parameters
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `webhook` | string | true | https://hooks.slack.com/services/... |
|
||||
| `username` | string | false | username |
|
||||
| `channel` | string | false | Default channel to use if others are not configured |
|
||||
| `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines |
|
||||
| `notify_only_default_branch` | boolean | false | Send notifications only for the default branch |
|
||||
| `push_events` | boolean | false | Enable notifications for push events |
|
||||
| `issues_events` | boolean | false | Enable notifications for issue events |
|
||||
| `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events |
|
||||
| `merge_requests_events` | boolean | false | Enable notifications for merge request events |
|
||||
| `tag_push_events` | boolean | false | Enable notifications for tag push events |
|
||||
| `note_events` | boolean | false | Enable notifications for note events |
|
||||
| `pipeline_events` | boolean | false | Enable notifications for pipeline events |
|
||||
| `wiki_page_events` | boolean | false | Enable notifications for wiki page events |
|
||||
| `push_channel` | string | false | The name of the channel to receive push events notifications |
|
||||
| `issue_channel` | string | false | The name of the channel to receive issues events notifications |
|
||||
| `confidential_issue_channel` | string | false | The name of the channel to receive confidential issues events notifications |
|
||||
| `merge_request_channel` | string | false | The name of the channel to receive merge request events notifications |
|
||||
| `note_channel` | string | false | The name of the channel to receive note events notifications |
|
||||
| `tag_push_channel` | string | false | The name of the channel to receive tag push events notifications |
|
||||
| `pipeline_channel` | string | false | The name of the channel to receive pipeline events notifications |
|
||||
| `wiki_page_channel` | string | false | The name of the channel to receive wiki page events notifications |
|
||||
|
||||
### Delete Slack service
|
||||
|
||||
|
@ -837,11 +859,33 @@ Set Mattermost service for a project.
|
|||
PUT /projects/:id/services/mattermost
|
||||
```
|
||||
|
||||
Parameters:
|
||||
>**Note:** Specific event parameters (e.g. `push_events` flag and `push_channel`) were [introduced in v10.4][11435]
|
||||
|
||||
- `webhook` (**required**) - https://mattermost.example/hooks/1298aff...
|
||||
- `username` (optional) - username
|
||||
- `channel` (optional) - #channel
|
||||
#### Parameters
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `webhook` | string | true | The Mattermost webhook. e.g. http://mattermost_host/hooks/... |
|
||||
| `username` | string | false | username |
|
||||
| `channel` | string | false | Default channel to use if others are not configured |
|
||||
| `notify_only_broken_pipelines` | boolean | false | Send notifications for broken pipelines |
|
||||
| `notify_only_default_branch` | boolean | false | Send notifications only for the default branch |
|
||||
| `push_events` | boolean | false | Enable notifications for push events |
|
||||
| `issues_events` | boolean | false | Enable notifications for issue events |
|
||||
| `confidential_issues_events` | boolean | false | Enable notifications for confidential issue events |
|
||||
| `merge_requests_events` | boolean | false | Enable notifications for merge request events |
|
||||
| `tag_push_events` | boolean | false | Enable notifications for tag push events |
|
||||
| `note_events` | boolean | false | Enable notifications for note events |
|
||||
| `pipeline_events` | boolean | false | Enable notifications for pipeline events |
|
||||
| `wiki_page_events` | boolean | false | Enable notifications for wiki page events |
|
||||
| `push_channel` | string | false | The name of the channel to receive push events notifications |
|
||||
| `issue_channel` | string | false | The name of the channel to receive issues events notifications |
|
||||
| `confidential_issue_channel` | string | false | The name of the channel to receive confidential issues events notifications |
|
||||
| `merge_request_channel` | string | false | The name of the channel to receive merge request events notifications |
|
||||
| `note_channel` | string | false | The name of the channel to receive note events notifications |
|
||||
| `tag_push_channel` | string | false | The name of the channel to receive tag push events notifications |
|
||||
| `pipeline_channel` | string | false | The name of the channel to receive pipeline events notifications |
|
||||
| `wiki_page_channel` | string | false | The name of the channel to receive wiki page events notifications |
|
||||
|
||||
### Delete Mattermost notifications service
|
||||
|
||||
|
@ -933,3 +977,5 @@ Get MockCI service settings for a project.
|
|||
```
|
||||
GET /projects/:id/services/mock-ci
|
||||
```
|
||||
|
||||
[11435]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11435
|
||||
|
|
|
@ -708,8 +708,9 @@ module API
|
|||
|
||||
class ProjectService < Grape::Entity
|
||||
expose :id, :title, :created_at, :updated_at, :active
|
||||
expose :push_events, :issues_events, :merge_requests_events
|
||||
expose :tag_push_events, :note_events, :pipeline_events
|
||||
expose :push_events, :issues_events, :confidential_issues_events
|
||||
expose :merge_requests_events, :tag_push_events, :note_events
|
||||
expose :pipeline_events, :wiki_page_events
|
||||
expose :job_events
|
||||
# Expose serialized properties
|
||||
expose :properties do |service, options|
|
||||
|
|
|
@ -1,5 +1,143 @@
|
|||
module API
|
||||
class Services < Grape::API
|
||||
chat_notification_settings = [
|
||||
{
|
||||
required: true,
|
||||
name: :webhook,
|
||||
type: String,
|
||||
desc: 'The chat webhook'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :username,
|
||||
type: String,
|
||||
desc: 'The chat username'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :channel,
|
||||
type: String,
|
||||
desc: 'The default chat channel'
|
||||
}
|
||||
]
|
||||
|
||||
chat_notification_flags = [
|
||||
{
|
||||
required: false,
|
||||
name: :notify_only_broken_pipelines,
|
||||
type: Boolean,
|
||||
desc: 'Send notifications for broken pipelines'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :notify_only_default_branch,
|
||||
type: Boolean,
|
||||
desc: 'Send notifications only for the default branch'
|
||||
}
|
||||
]
|
||||
|
||||
chat_notification_channels = [
|
||||
{
|
||||
required: false,
|
||||
name: :push_channel,
|
||||
type: String,
|
||||
desc: 'The name of the channel to receive push_events notifications'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :issue_channel,
|
||||
type: String,
|
||||
desc: 'The name of the channel to receive issues_events notifications'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :confidential_issue_channel,
|
||||
type: String,
|
||||
desc: 'The name of the channel to receive confidential_issues_events notifications'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :merge_request_channel,
|
||||
type: String,
|
||||
desc: 'The name of the channel to receive merge_requests_events notifications'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :note_channel,
|
||||
type: String,
|
||||
desc: 'The name of the channel to receive note_events notifications'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :tag_push_channel,
|
||||
type: String,
|
||||
desc: 'The name of the channel to receive tag_push_events notifications'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :pipeline_channel,
|
||||
type: String,
|
||||
desc: 'The name of the channel to receive pipeline_events notifications'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :wiki_page_channel,
|
||||
type: String,
|
||||
desc: 'The name of the channel to receive wiki_page_events notifications'
|
||||
}
|
||||
]
|
||||
|
||||
chat_notification_events = [
|
||||
{
|
||||
required: false,
|
||||
name: :push_events,
|
||||
type: Boolean,
|
||||
desc: 'Enable notifications for push_events'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :issues_events,
|
||||
type: Boolean,
|
||||
desc: 'Enable notifications for issues_events'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :confidential_issues_events,
|
||||
type: Boolean,
|
||||
desc: 'Enable notifications for confidential_issues_events'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :merge_requests_events,
|
||||
type: Boolean,
|
||||
desc: 'Enable notifications for merge_requests_events'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :note_events,
|
||||
type: Boolean,
|
||||
desc: 'Enable notifications for note_events'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :tag_push_events,
|
||||
type: Boolean,
|
||||
desc: 'Enable notifications for tag_push_events'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :pipeline_events,
|
||||
type: Boolean,
|
||||
desc: 'Enable notifications for pipeline_events'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :wiki_page_events,
|
||||
type: Boolean,
|
||||
desc: 'Enable notifications for wiki_page_events'
|
||||
}
|
||||
]
|
||||
|
||||
services = {
|
||||
'asana' => [
|
||||
{
|
||||
|
@ -489,25 +627,11 @@ module API
|
|||
}
|
||||
],
|
||||
'slack' => [
|
||||
{
|
||||
required: true,
|
||||
name: :webhook,
|
||||
type: String,
|
||||
desc: 'The Slack webhook. e.g. https://hooks.slack.com/services/...'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :new_issue_url,
|
||||
type: String,
|
||||
desc: 'The user name'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :channel,
|
||||
type: String,
|
||||
desc: 'The channel name'
|
||||
}
|
||||
],
|
||||
chat_notification_settings,
|
||||
chat_notification_flags,
|
||||
chat_notification_channels,
|
||||
chat_notification_events
|
||||
].flatten,
|
||||
'microsoft-teams' => [
|
||||
{
|
||||
required: true,
|
||||
|
@ -517,19 +641,11 @@ module API
|
|||
}
|
||||
],
|
||||
'mattermost' => [
|
||||
{
|
||||
required: true,
|
||||
name: :webhook,
|
||||
type: String,
|
||||
desc: 'The Mattermost webhook. e.g. http://mattermost_host/hooks/...'
|
||||
},
|
||||
{
|
||||
required: false,
|
||||
name: :username,
|
||||
type: String,
|
||||
desc: 'The username to use to post the message'
|
||||
}
|
||||
],
|
||||
chat_notification_settings,
|
||||
chat_notification_flags,
|
||||
chat_notification_channels,
|
||||
chat_notification_events
|
||||
].flatten,
|
||||
'teamcity' => [
|
||||
{
|
||||
required: true,
|
||||
|
|
Loading…
Reference in a new issue