class Lita::Handlers::BitbucketPipelines
Public Instance Methods
receive(request, response)
click to toggle source
# File lib/lita/handlers/bitbucket_pipelines.rb, line 6 def receive(request, response) I18n.locale = Lita.config.robot.locale room = request.params['room'] target = Source.new(room: room) data = parse(request.body.read) message = format(data) return if message.nil? robot.send_message(target, message) end
Private Instance Methods
format(data)
click to toggle source
# File lib/lita/handlers/bitbucket_pipelines.rb, line 26 def format(data) status = data[:commit_status][:state] url = data[:commit_status][:url] repo = data[:commit_status][:repository][:name] user = data[:commit_status][:commit][:author][:user][:display_name] build = url.split('/').last case status when "INPROGRESS" t("initiated", build: build, user: user, repo: repo, url: url) when "SUCCESSFUL" t("successful", build: build, user: user, repo: repo, url: url) else t("error", build: build, user: user, repo: repo, url: url) end end
parse(json)
click to toggle source
# File lib/lita/handlers/bitbucket_pipelines.rb, line 19 def parse(json) MultiJson.load(json, symbolize_keys: true) rescue MultiJson::ParseError => exception exception.data exception.cause end