diff options
| author | Douwe Maan <douwe@gitlab.com> | 2017-01-23 16:44:12 +0000 |
|---|---|---|
| committer | Douwe Maan <douwe@gitlab.com> | 2017-01-23 16:44:12 +0000 |
| commit | 30d5e9fa54e0beacfb9b28c307543ff359f17668 (patch) | |
| tree | c7b321ba87d9d17d57832d3937141b7f5ef03512 /lib | |
| parent | 6c65f7a7ce52fadcf53ea2395103de32b0107874 (diff) | |
| parent | 4b6e583ce0a395ec4a0dbc1a3a81680b1a0aa700 (diff) | |
| download | gitlab-ce-30d5e9fa54e0beacfb9b28c307543ff359f17668.tar.gz | |
Merge branch '22974-trigger-service-events-through-api' into 'master'
adds events to services api deserialization
Closes #22974
See merge request !8324
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/api/services.rb | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/lib/api/services.rb b/lib/api/services.rb index 3a9dfbb237c..a0abec49438 100644 --- a/lib/api/services.rb +++ b/lib/api/services.rb @@ -145,7 +145,7 @@ module API name: :room, type: String, desc: 'Campfire room' - }, + } ], 'custom-issue-tracker' => [ { @@ -534,7 +534,36 @@ module API desc: 'The password of the user' } ] - }.freeze + } + + service_classes = [ + AsanaService, + AssemblaService, + BambooService, + BugzillaService, + BuildkiteService, + BuildsEmailService, + CampfireService, + CustomIssueTrackerService, + DroneCiService, + EmailsOnPushService, + ExternalWikiService, + FlowdockService, + GemnasiumService, + HipchatService, + IrkerService, + JiraService, + KubernetesService, + MattermostSlashCommandsService, + SlackSlashCommandsService, + PipelinesEmailService, + PivotaltrackerService, + PushoverService, + RedmineService, + SlackService, + MattermostService, + TeamcityService, + ].freeze trigger_services = { 'mattermost-slash-commands' => [ @@ -568,6 +597,19 @@ module API services.each do |service_slug, settings| desc "Set #{service_slug} service for project" params do + service_classes.each do |service| + event_names = service.try(:event_names) || [] + event_names.each do |event_name| + services[service.to_param.tr("_", "-")] << { + required: false, + name: event_name.to_sym, + type: String, + desc: ServicesHelper.service_event_description(event_name) + } + end + end + services.freeze + settings.each do |setting| if setting[:required] requires setting[:name], type: setting[:type], desc: setting[:desc] @@ -581,7 +623,7 @@ module API service_params = declared_params(include_missing: false).merge(active: true) if service.update_attributes(service_params) - true + present service, with: Entities::ProjectService, include_passwords: current_user.is_admin? else render_api_error!('400 Bad Request', 400) end |
