Class: Lita::Handlers::Gitlab

Inherits:
Handler
  • Object
show all
Defined in:
lib/lita/handlers/gitlab.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.default_config(config) ⇒ Object



5
6
7
8
9
# File 'lib/lita/handlers/gitlab.rb', line 5

def self.default_config(config)
  config.default_room = '#general'
  config.url = 'http://example.gitlab/'
  config.group = 'group_name'
end

Instance Method Details

#receive(request, response) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/lita/handlers/gitlab.rb', line 13

def receive(request, response)
  json_body = request.params['payload'] || extract_json_from_request(request)
  data = symbolize parse_payload(json_body)
  data[:project] = request.params['project']
  message = format_message(data)
  if message
    targets = request.params['targets'] || Lita.config.handlers.gitlab.default_room
    rooms = []
    targets.split(',').each do |param_target|
      rooms << param_target
    end
    rooms.each do |room|
      target = Source.new(room: room)
      robot.send_message(target, message)
    end
  end
end