HipChat service: support custom servers

HipChat allows users to run their own private servers and to be able to
support those we must connect to the correct URL when using one of these
custom servers.
This commit is contained in:
Daniel Aquino 2014-11-08 23:04:31 -06:00 committed by Doug Goldstein
parent 2f3df4cb56
commit 1353f9aa64
4 changed files with 23 additions and 3 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'