diff --git a/app/controllers/projects/services_controller.rb b/app/controllers/projects/services_controller.rb index a5f30dcfd9d..c50a1f1e75b 100644 --- a/app/controllers/projects/services_controller.rb +++ b/app/controllers/projects/services_controller.rb @@ -42,7 +42,7 @@ class Projects::ServicesController < Projects::ApplicationController :title, :token, :type, :active, :api_key, :subdomain, :room, :recipients, :project_url, :webhook, :user_key, :device, :priority, :sound, :bamboo_url, :username, :password, - :build_key + :build_key, :server ) end end diff --git a/app/models/project_services/hipchat_service.rb b/app/models/project_services/hipchat_service.rb index 2b804687853..a848d74044c 100644 --- a/app/models/project_services/hipchat_service.rb +++ b/app/models/project_services/hipchat_service.rb @@ -15,7 +15,7 @@ class HipchatService < Service MAX_COMMITS = 3 - prop_accessor :token, :room + prop_accessor :token, :room, :server validates :token, presence: true, if: :activated? def title @@ -33,7 +33,9 @@ class HipchatService < Service def fields [ { type: 'text', name: 'token', placeholder: '' }, - { type: 'text', name: 'room', placeholder: '' } + { type: 'text', name: 'room', placeholder: '' }, + { type: 'text', name: 'server', + placeholder: 'Leave blank for default. https://chat.hipchat.com' } ] end @@ -45,6 +47,7 @@ class HipchatService < Service def gate options = { api_version: 'v2' } + options[:server_url] = server unless server.nil? @gate ||= HipChat::Client.new(token, options) end diff --git a/features/project/service.feature b/features/project/service.feature index 88fd038d45f..ed9e03b428d 100644 --- a/features/project/service.feature +++ b/features/project/service.feature @@ -19,6 +19,12 @@ Feature: Project Services And I fill hipchat settings Then I should see hipchat service settings saved + Scenario: Activate hipchat service with custom server + When I visit project "Shop" services page + And I click hipchat service link + And I fill hipchat settings with custom server + Then I should see hipchat service settings with custom server saved + Scenario: Activate pivotaltracker service When I visit project "Shop" services page And I click pivotaltracker service link diff --git a/features/steps/project/services.rb b/features/steps/project/services.rb index ffc231cb575..7a0b47a8fe5 100644 --- a/features/steps/project/services.rb +++ b/features/steps/project/services.rb @@ -47,6 +47,17 @@ class Spinach::Features::ProjectServices < Spinach::FeatureSteps find_field('Room').value.should == 'gitlab' end + step 'I fill hipchat settings with custom server' do + check 'Active' + fill_in 'Room', with: 'gitlab_custom' + fill_in 'Token', with: 'secretCustom' + fill_in 'Server', with: 'https://chat.example.com' + click_button 'Save' + end + + step 'I should see hipchat service settings with custom server saved' do + find_field('Server').value.should == 'https://chat.example.com' + end step 'I click pivotaltracker service link' do click_link 'PivotalTracker'