class CC::Service::Jira
Public Instance Methods
receive_issue()
click to toggle source
# File lib/cc/services/jira.rb, line 46 def receive_issue title = %(Fix "#{issue["check_name"]}" issue in #{constant_name}) body = [issue["description"], details_url].join("\n\n") create_ticket(title, body) end
receive_quality()
click to toggle source
# File lib/cc/services/jira.rb, line 42 def receive_quality create_ticket(quality_title, details_url) end
receive_test()
click to toggle source
# File lib/cc/services/jira.rb, line 35 def receive_test result = create_ticket("Test ticket from Code Climate", "Test ticket from Code Climate") result.merge( message: "Ticket <a href='#{result[:url]}'>#{result[:id]}</a> created.", ) end
receive_vulnerability()
click to toggle source
# File lib/cc/services/jira.rb, line 54 def receive_vulnerability formatter = CC::Formatters::TicketFormatter.new(self) create_ticket( formatter.format_vulnerability_title, formatter.format_vulnerability_body, ) end
Private Instance Methods
create_ticket(title, ticket_body)
click to toggle source
# File lib/cc/services/jira.rb, line 65 def create_ticket(title, ticket_body) params = { fields: { project: { id: config.project_id }, summary: title, description: ticket_body, issuetype: { name: config.issue_type }, }, } if config.labels.present? params[:fields][:labels] = config.labels.split(",") end http.headers["Content-Type"] = "application/json" http.basic_auth(config.username, config.password) url = "https://#{config.domain}/rest/api/2/issue/" service_post(url, params.to_json) do |response| body = JSON.parse(response.body) { id: body["id"], key: body["key"], url: "https://#{config.domain}/browse/#{body["key"]}", } end end