Class: CodeClimateClient

Inherits:
Object
  • Object
show all
Defined in:
lib/integrations/code_climate_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ CodeClimateClient

Returns a new instance of CodeClimateClient.



8
9
10
11
12
# File 'lib/integrations/code_climate_client.rb', line 8

def initialize(config)
  @api_key = config["api_key"]
  @org_id = config["org_id"]
  @repo_id = config["repo_id"]
end

Instance Method Details

#issuesObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/integrations/code_climate_client.rb', line 14

def issues()
  snapshot = last_snapshot_id()
  request("repos/#{@repo_id}/snapshots/#{snapshot}/issues")["data"]
    .reduce({}) do |obj, issue|
      file = issue.dig("attributes", "location", "path")

      obj[file] ||= {
        issues: []
      }

      obj[file][:issues] << {
        categories: issue.dig("attributes", "categories"),
        description: issue.dig("attributes", "description"),
        severity: issue.dig("attributes", "severity"),
        remediation_points: issue.dig("attributes", "remediation_points"),
        start_line: issue.dig("attributes", "location", "start_line"),
        end_line: issue.dig("attributes", "location", "end_line"),
      }

      obj
    end
end

#scoresObject



37
38
39
40
41
42
43
44
45
46
# File 'lib/integrations/code_climate_client.rb', line 37

def scores()
  snapshot = last_snapshot_id()
  request("repos/#{@repo_id}/snapshots/#{snapshot}/files")["data"]
    .reduce({}) do |obj, file|
      path = file.dig("attributes", "path")
      obj[path] ||= {}
      obj[path][:gpa] ||= file.dig("attributes", "rating")
      obj
    end
end