codeclimate-api-ruby-client 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +15 -0
  5. data/.travis.yml +5 -0
  6. data/CODE_OF_CONDUCT.md +74 -0
  7. data/Gemfile +25 -0
  8. data/Guardfile +49 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +49 -0
  11. data/Rakefile +6 -0
  12. data/TODO.md +22 -0
  13. data/bin/console +14 -0
  14. data/bin/setup +8 -0
  15. data/codeclimate-api-ruby-client.gemspec +28 -0
  16. data/fixtures/vcr_cassettes/code_climate/builds/list.yml +60 -0
  17. data/fixtures/vcr_cassettes/code_climate/metrics/gpa.yml +60 -0
  18. data/fixtures/vcr_cassettes/code_climate/orgs/list.yml +60 -0
  19. data/fixtures/vcr_cassettes/code_climate/ref_points/list.yml +60 -0
  20. data/fixtures/vcr_cassettes/code_climate/repos/get.yml +60 -0
  21. data/fixtures/vcr_cassettes/code_climate/services/list.yml +61 -0
  22. data/fixtures/vcr_cassettes/code_climate/snapshots/show.yml +60 -0
  23. data/fixtures/vcr_cassettes/code_climate/test_reports/list.yml +63 -0
  24. data/fixtures/vcr_cassettes/code_climate/user.yml +61 -0
  25. data/lib/code_climate.rb +1 -0
  26. data/lib/code_climate/client.rb +83 -0
  27. data/lib/code_climate/middleware.rb +16 -0
  28. data/lib/code_climate/resources/base.rb +9 -0
  29. data/lib/code_climate/resources/build.rb +8 -0
  30. data/lib/code_climate/resources/metric.rb +8 -0
  31. data/lib/code_climate/resources/org.rb +9 -0
  32. data/lib/code_climate/resources/ref_point.rb +8 -0
  33. data/lib/code_climate/resources/repo.rb +37 -0
  34. data/lib/code_climate/resources/service.rb +8 -0
  35. data/lib/code_climate/resources/snapshot.rb +8 -0
  36. data/lib/code_climate/resources/test_report.rb +8 -0
  37. data/lib/code_climate/resources/user.rb +10 -0
  38. data/lib/code_climate/version.rb +3 -0
  39. metadata +123 -0
@@ -0,0 +1,16 @@
1
+ module CodeClimate
2
+ # :nodoc:
3
+ class Middleware < Faraday::Middleware
4
+ def call(request_env)
5
+ headers = {}
6
+ headers['Content-Type'] = 'application/vnd.api+json'
7
+ headers['Authorization'] = 'Token token=' + CodeClimate::Client.api_token
8
+ request_env[:request_headers].merge!(headers)
9
+
10
+ @app.call(request_env).on_complete do |response_env|
11
+ # do something with the response
12
+ # response_env[:response_headers].merge!(...)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ require 'code_climate/middleware'
2
+
3
+ module CodeClimate
4
+ module Resource
5
+ # :nodoc:
6
+ class Base < JsonApiClient::Resource
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module CodeClimate
2
+ module Resource
3
+ # :nodoc:
4
+ class Build < Base
5
+ belongs_to :repo
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module CodeClimate
2
+ module Resource
3
+ # :nodoc:
4
+ class Metric < Base
5
+ belongs_to :repo
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ module CodeClimate
2
+ module Resource
3
+ # :nodoc:
4
+ class Org < Base
5
+ # GET /orgs/:org_id/repos
6
+ custom_endpoint :repos, on: :member, request_method: :get
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module CodeClimate
2
+ module Resource
3
+ # :nodoc:
4
+ class RefPoint < Base
5
+ belongs_to :repo
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,37 @@
1
+ module CodeClimate
2
+ module Resource
3
+ # :nodoc:
4
+ class Repo < Base
5
+ # GET /repos/:repo_id
6
+ def self.at(id)
7
+ find(id).first
8
+ end
9
+
10
+ # GET /repos/:repo_id/ref_points
11
+ def ref_points
12
+ CodeClimate::Client.ref_points.where(repo_id: id).all
13
+ end
14
+
15
+ # GET /repos/:repo_id/builds
16
+ def builds
17
+ CodeClimate::Client.builds.where(repo_id: id).all
18
+ end
19
+
20
+ # GET /repos/:repo_id/metrics/:name?filter[from]=YYYY-MM-DD&filter[to]=YYYY-MM-DD
21
+ def metrics(range)
22
+ options = { repo_id: id, from: range[:from], to: range[:to] }
23
+ CodeClimate::Client.metrics.where(options).find('gpa')
24
+ end
25
+
26
+ # GET /repos/:repo_id/services
27
+ def services
28
+ CodeClimate::Client.services.where(repo_id: id).all
29
+ end
30
+
31
+ # GET /repos/repo_id/test_reports
32
+ def test_reports
33
+ CodeClimate::Client.test_reports.where(repo_id: id).all
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,8 @@
1
+ module CodeClimate
2
+ module Resource
3
+ # :nodoc:
4
+ class Service < Base
5
+ belongs_to :repo
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module CodeClimate
2
+ module Resource
3
+ # :nodoc:
4
+ class Snapshot < Base
5
+ belongs_to :repo
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module CodeClimate
2
+ module Resource
3
+ # :nodoc:
4
+ class TestReport < Base
5
+ belongs_to :repo
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ module CodeClimate
2
+ module Resource
3
+ # :nodoc:
4
+ class User < Base
5
+ def self.table_name
6
+ 'user'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ module CodeClimate
2
+ VERSION = '0.2.0'.freeze
3
+ end
metadata ADDED
@@ -0,0 +1,123 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: codeclimate-api-ruby-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Wilfrido Nuqui
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-08-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.14'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.14'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: CodeClimate API client.
56
+ email:
57
+ - dofreewill22@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - ".rspec"
64
+ - ".rubocop.yml"
65
+ - ".travis.yml"
66
+ - CODE_OF_CONDUCT.md
67
+ - Gemfile
68
+ - Guardfile
69
+ - LICENSE.txt
70
+ - README.md
71
+ - Rakefile
72
+ - TODO.md
73
+ - bin/console
74
+ - bin/setup
75
+ - codeclimate-api-ruby-client.gemspec
76
+ - fixtures/vcr_cassettes/code_climate/builds/list.yml
77
+ - fixtures/vcr_cassettes/code_climate/metrics/gpa.yml
78
+ - fixtures/vcr_cassettes/code_climate/orgs/list.yml
79
+ - fixtures/vcr_cassettes/code_climate/ref_points/list.yml
80
+ - fixtures/vcr_cassettes/code_climate/repos/get.yml
81
+ - fixtures/vcr_cassettes/code_climate/services/list.yml
82
+ - fixtures/vcr_cassettes/code_climate/snapshots/show.yml
83
+ - fixtures/vcr_cassettes/code_climate/test_reports/list.yml
84
+ - fixtures/vcr_cassettes/code_climate/user.yml
85
+ - lib/code_climate.rb
86
+ - lib/code_climate/client.rb
87
+ - lib/code_climate/middleware.rb
88
+ - lib/code_climate/resources/base.rb
89
+ - lib/code_climate/resources/build.rb
90
+ - lib/code_climate/resources/metric.rb
91
+ - lib/code_climate/resources/org.rb
92
+ - lib/code_climate/resources/ref_point.rb
93
+ - lib/code_climate/resources/repo.rb
94
+ - lib/code_climate/resources/service.rb
95
+ - lib/code_climate/resources/snapshot.rb
96
+ - lib/code_climate/resources/test_report.rb
97
+ - lib/code_climate/resources/user.rb
98
+ - lib/code_climate/version.rb
99
+ homepage: https://github.com/wnuqui/codeclimate-api-ruby-client
100
+ licenses:
101
+ - MIT
102
+ metadata: {}
103
+ post_install_message:
104
+ rdoc_options: []
105
+ require_paths:
106
+ - lib
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ requirements: []
118
+ rubyforge_project:
119
+ rubygems_version: 2.6.8
120
+ signing_key:
121
+ specification_version: 4
122
+ summary: CodeClimate API client.
123
+ test_files: []