summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock5
-rw-r--r--app/controllers/projects/services_controller.rb2
-rw-r--r--app/models/project_services/hipchat_service.rb12
-rw-r--r--features/project/service.feature6
-rw-r--r--features/steps/project/services.rb15
6 files changed, 31 insertions, 11 deletions
diff --git a/Gemfile b/Gemfile
index 2c4274dcf3d..613ef11cf4d 100644
--- a/Gemfile
+++ b/Gemfile
@@ -134,7 +134,7 @@ gem "redis-rails"
gem 'tinder', '~> 1.9.2'
# HipChat integration
-gem "hipchat", "~> 0.14.0"
+gem "hipchat", "~> 1.4.0"
# Flowdock integration
gem "gitlab-flowdock-git-hook", "~> 0.4.2"
diff --git a/Gemfile.lock b/Gemfile.lock
index 938ce560620..b6c1dcfa331 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -235,8 +235,7 @@ GEM
railties (>= 4.0.1)
hashie (2.1.2)
hike (1.2.3)
- hipchat (0.14.0)
- httparty
+ hipchat (1.4.0)
httparty
html-pipeline (1.11.0)
activesupport (>= 2)
@@ -636,7 +635,7 @@ DEPENDENCIES
guard-rspec
guard-spinach
haml-rails
- hipchat (~> 0.14.0)
+ hipchat (~> 1.4.0)
html-pipeline-gitlab (~> 0.1.0)
httparty
jasmine (= 2.0.2)
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 4078938cdbb..a848d74044c 100644
--- a/app/models/project_services/hipchat_service.rb
+++ b/app/models/project_services/hipchat_service.rb
@@ -15,11 +15,11 @@
class HipchatService < Service
MAX_COMMITS = 3
- prop_accessor :token, :room
+ prop_accessor :token, :room, :server
validates :token, presence: true, if: :activated?
def title
- 'Hipchat'
+ 'HipChat'
end
def description
@@ -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
@@ -44,7 +46,9 @@ class HipchatService < Service
private
def gate
- @gate ||= HipChat::Client.new(token)
+ options = { api_version: 'v2' }
+ options[:server_url] = server unless server.nil?
+ @gate ||= HipChat::Client.new(token, options)
end
def create_message(push)
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 d5d58070d86..7a0b47a8fe5 100644
--- a/features/steps/project/services.rb
+++ b/features/steps/project/services.rb
@@ -10,7 +10,7 @@ class Spinach::Features::ProjectServices < Spinach::FeatureSteps
step 'I should see list of available services' do
page.should have_content 'Project services'
page.should have_content 'Campfire'
- page.should have_content 'Hipchat'
+ page.should have_content 'HipChat'
page.should have_content 'GitLab CI'
page.should have_content 'Assembla'
page.should have_content 'Pushover'
@@ -33,7 +33,7 @@ class Spinach::Features::ProjectServices < Spinach::FeatureSteps
end
step 'I click hipchat service link' do
- click_link 'Hipchat'
+ click_link 'HipChat'
end
step 'I fill hipchat settings' do
@@ -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'