Skip to content
Snippets Groups Projects
Commit ac952d04 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Campfire service added

parent 83e2e624
No related branches found
No related tags found
No related merge requests found
v 5.3.0
- Refactored services
- Campfire service added
v 5.2.0
- Turbolinks
- Git over http with ldap credentials
Loading
Loading
Loading
Loading
@@ -7,7 +7,7 @@ class ServicesController < ProjectResourceController
 
def index
@project.build_missing_services
@services = @project.services
@services = @project.services.reload
end
 
def edit
Loading
Loading
# == Schema Information
#
# Table name: services
#
# id :integer not null, primary key
# type :string(255)
# title :string(255)
# token :string(255)
# project_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
# active :boolean default(FALSE), not null
# project_url :string(255)
#
class CampfireService < Service
attr_accessible :subdomain, :room
validates :token, presence: true, if: :activated?
def title
'Campfire'
end
def description
'Simple web-based real-time group chat'
end
def to_param
'campfire'
end
def fields
[
{ type: 'text', name: 'token', placeholder: '' },
{ type: 'text', name: 'subdomain', placeholder: '' },
{ type: 'text', name: 'room', placeholder: '' }
]
end
def execute(push_data)
room = gate.find_room_by_name(self.room)
return true unless room
message = build_message(push_data)
room.speak(message)
end
private
def gate
@gate ||= Tinder::Campfire.new(subdomain, token: token)
end
def build_message(push)
ref = push[:ref].gsub("refs/heads/", "")
before = push[:before]
after = push[:after]
message = ""
message << "[#{project.name_with_namespace}] "
message << "#{push[:user_name]} "
if before =~ /000000/
message << "pushed new branch #{ref} \n"
elsif after =~ /000000/
message << "removed branch #{ref} \n"
else
message << "pushed #{push[:total_commits_count]} commits to #{ref}. "
message << "#{project.web_url}/compare/#{before}...#{after}"
end
message
end
end
Loading
Loading
@@ -45,6 +45,7 @@ class Project < ActiveRecord::Base
 
has_one :last_event, class_name: 'Event', order: 'events.created_at DESC', foreign_key: 'project_id'
has_one :gitlab_ci_service, dependent: :destroy
has_one :campfire_service, dependent: :destroy
has_one :forked_project_link, dependent: :destroy, foreign_key: "forked_to_project_id"
has_one :forked_from_project, through: :forked_project_link
 
Loading
Loading
@@ -235,7 +236,7 @@ class Project < ActiveRecord::Base
end
 
def available_services_names
%w(gitlab_ci)
%w(gitlab_ci campfire)
end
 
def gitlab_ci?
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment