circleci 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,7 @@ require 'uri'
6
6
 
7
7
  files = %w[
8
8
  api_resource
9
+ api_project_resource
9
10
  build
10
11
  config
11
12
  project
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+ module CircleCi
3
+ ##
4
+ #
5
+ # Class for interacting with project API resources
6
+ class ApiProjectResource < ApiResource
7
+ VALID_VCS_TYPES = %w[github bitbucket].freeze
8
+ DEFAULT_VCS_TYPE = VALID_VCS_TYPES.first.freeze
9
+
10
+ attr_reader :build, :vcs_type
11
+
12
+ ##
13
+ #
14
+ # Initialize a new Project API interaction
15
+ #
16
+ # @param username [String] - The vcs username or org name for project
17
+ # @param project [String] - The project name
18
+ # @param vcs_type [String] - The vcs type i.e. github or bitbucket
19
+ # @param build [String] - The build number for a project
20
+ # @param conf [CircleCi::Config] - Optional config to use for request
21
+ # @return [CircleCi::Project]
22
+ def initialize(username = nil, project = nil, vcs_type = nil, build = nil, conf = nil)
23
+ super(username, project, conf)
24
+ @vcs_type = VALID_VCS_TYPES.include?(vcs_type) ? vcs_type : DEFAULT_VCS_TYPE
25
+ @build = build
26
+ end
27
+
28
+ def base_path
29
+ "/project/#{vcs_type}/#{username}/#{project}"
30
+ end
31
+ end
32
+ end
@@ -3,104 +3,14 @@ module CircleCi
3
3
  ##
4
4
  #
5
5
  # Class for interacting with and managing builds
6
- class Build < ApiResource
7
- attr_reader :build
8
- ##
9
- #
10
- # Initialize a Build object to interact with the Build API
11
- #
12
- # @param config [CircleCi::Config] - Defaults to [default_config] if not provided
13
- # @param username [String] - User or org name who owns project
14
- # @param project [String] - Name of project
15
- # @param build [String] - Build ID
16
- # @return [CircleCi::Build] - A Build object
17
- def initialize(username, project, build, conf = nil)
18
- super(username, project, conf)
19
- @build = build
20
- end
21
-
22
- ##
23
- #
24
- # Deprecated class methods
25
- class << self
26
- ##
27
- #
28
- # Get artifacts for a specific build of a project
29
- #
30
- # @deprecated Please use instance method of [CircleCi::Build] instead
31
- # @param username [String] - User or org name who owns project
32
- # @param project [String] - Name of project
33
- # @param build [String] - Build ID
34
- # @return [CircleCi::Response] - Response object
35
- def artifacts(username, project, build)
36
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Build#artifacts instead')
37
- new(username, project, build, default_config).artifacts
38
- end
39
-
40
- ##
41
- #
42
- # Cancel a specific build
43
- #
44
- # @deprecated Please use instance method of [CircleCi::Build] instead
45
- # @param username [String] - User or org name who owns project
46
- # @param project [String] - Name of project
47
- # @param build [String] - Build ID
48
- # @return [CircleCi::Response] - Response object
49
- def cancel(username, project, build)
50
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Build#cancel instead')
51
- new(username, project, build, default_config).cancel
52
- end
53
-
54
- ##
55
- #
56
- # Get a specific build for a project
57
- #
58
- # @deprecated Please use instance method of [CircleCi::Build] instead
59
- # @param username [String] - User or org name who owns project
60
- # @param project [String] - Name of project
61
- # @param build [String] - Build ID
62
- # @return [CircleCi::Response] - Response object
63
- def get(username, project, build)
64
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Build#get instead')
65
- new(username, project, build, default_config).get
66
- end
67
-
68
- ##
69
- #
70
- # Kick off a retry of a specific build
71
- #
72
- # @deprecated Please use instance method of [CircleCi::Build] instead
73
- # @param username [String] - User or org name who owns project
74
- # @param project [String] - Name of project
75
- # @param build [String] - Build ID
76
- # @return [CircleCi::Response] - Response object
77
- def retry(username, project, build)
78
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Build#retry instead')
79
- new(username, project, build, default_config).retry
80
- end
81
-
82
- ##
83
- #
84
- # Get tests for a specific build of a project
85
- #
86
- # @deprecated Please use instance method of [CircleCi::Build] instead
87
- # @param username [String] - User or org name who owns project
88
- # @param project [String] - Name of project
89
- # @param build [String] - Build ID
90
- # @return [CircleCi::Response] - Response object
91
- def tests(username, project, build)
92
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Build#tests instead')
93
- new(username, project, build, default_config).tests
94
- end
95
- end
96
-
6
+ class Build < ApiProjectResource
97
7
  ##
98
8
  #
99
9
  # Get artifacts for a specific build of a project
100
10
  #
101
11
  # @return [CircleCi::Response] - Response object
102
12
  def artifacts
103
- CircleCi.request(@conf, "/project/#{username}/#{project}/#{build}/artifacts").get
13
+ CircleCi.request(conf, "#{base_path}/#{build}/artifacts").get
104
14
  end
105
15
 
106
16
  ##
@@ -109,7 +19,7 @@ module CircleCi
109
19
  #
110
20
  # @return [CircleCi::Response] - Response object
111
21
  def cancel
112
- CircleCi.request(@conf, "/project/#{username}/#{project}/#{build}/cancel").post
22
+ CircleCi.request(conf, "#{base_path}/#{build}/cancel").post
113
23
  end
114
24
 
115
25
  ##
@@ -118,7 +28,7 @@ module CircleCi
118
28
  #
119
29
  # @return [CircleCi::Response] - Response object
120
30
  def get
121
- CircleCi.request(@conf, "/project/#{username}/#{project}/#{build}").get
31
+ CircleCi.request(conf, "#{base_path}/#{build}").get
122
32
  end
123
33
 
124
34
  ##
@@ -127,7 +37,7 @@ module CircleCi
127
37
  #
128
38
  # @return [CircleCi::Response] - Response object
129
39
  def retry
130
- CircleCi.request(@conf, "/project/#{username}/#{project}/#{build}/retry").post
40
+ CircleCi.request(conf, "#{base_path}/#{build}/retry").post
131
41
  end
132
42
 
133
43
  ##
@@ -136,7 +46,7 @@ module CircleCi
136
46
  #
137
47
  # @return [CircleCi::Response] - Response object
138
48
  def tests
139
- CircleCi.request(@conf, "/project/#{username}/#{project}/#{build}/tests").get
49
+ CircleCi.request(conf, "#{base_path}/#{build}/tests").get
140
50
  end
141
51
  end
142
52
  end
@@ -5,7 +5,7 @@ module CircleCi
5
5
  # Config class used internally.
6
6
  # Configure API calls using CircleCi.configure
7
7
  class Config
8
- DEFAULT_VERSION = 'v1'.freeze
8
+ DEFAULT_VERSION = 'v1.1'.freeze
9
9
  DEFAULT_HOST = 'https://circleci.com'.freeze
10
10
  DEFAULT_URI = "#{DEFAULT_HOST}/api/#{DEFAULT_VERSION}".freeze
11
11
  DEFAULT_PORT = 443
@@ -33,18 +33,18 @@ module CircleCi
33
33
  end
34
34
 
35
35
  def proxy_userinfo?
36
- @proxy_user && @proxy_pass
36
+ proxy_user && proxy_pass
37
37
  end
38
38
 
39
- def proxy_port
40
- @proxy_port ? @proxy_port : 80
39
+ def proxy_to_port
40
+ proxy_port ? proxy_port : 80
41
41
  end
42
42
 
43
43
  def proxy_uri
44
- return unless @proxy && @proxy_host
45
- host_uri = URI.parse(@proxy_host)
46
- userinfo = proxy_userinfo? ? "#{@proxy_user}:#{@proxy_pass}@" : ''
47
- URI.parse("#{host_uri.scheme}://#{userinfo}#{host_uri.host}:#{proxy_port}#{host_uri.path}")
44
+ return unless @proxy && proxy_host
45
+ host_uri = URI.parse(proxy_host)
46
+ userinfo = proxy_userinfo? ? "#{proxy_user}:#{proxy_pass}@" : ''
47
+ URI.parse("#{host_uri.scheme}://#{userinfo}#{host_uri.host}:#{proxy_to_port}#{host_uri.path}")
48
48
  end
49
49
  end
50
50
  end
@@ -3,265 +3,18 @@ module CircleCi
3
3
  ##
4
4
  #
5
5
  # Class for interacting with Projects
6
- # rubocop:disable Metrics/ClassLength
7
- class Project < ApiResource
6
+ class Project < ApiProjectResource
8
7
  ##
9
8
  #
10
- # Deprecated class methods
11
- class << self
12
- ##
13
- #
14
- # Return all projects for your API key
15
- #
16
- # @deprecated Please use instance method of [CircleCi::Project] instead
17
- # @return [CircleCi::Response] - Response object
18
- def all
19
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Projects#get instead')
20
- CircleCi::Projects.new.get
21
- end
22
-
23
- ##
24
- #
25
- # Build the latest master push for this project
26
- #
27
- # @deprecated Please use instance method of [CircleCi::Project] instead
28
- # @param username [String] - User or org name who owns project
29
- # @param project [String] - Name of project
30
- # @return [CircleCi::Response] - Response object
31
- def build(username, project)
32
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#build instead')
33
- new(username, project, default_config).build
34
- end
35
-
36
- ##
37
- #
38
- # Build the latest push for this branch of a specific project
39
- #
40
- # @deprecated Please use instance method of [CircleCi::Project] instead
41
- # @param username [String] - User or org name who owns project
42
- # @param project [String] - Name of project
43
- # @param branch [String] - Name of branch
44
- # @param body [Hash] - Optional post body with build parameters
45
- # @return [CircleCi::Response] - Response object
46
- def build_branch(username, project, branch, params = {}, body = {})
47
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#build_branch instead')
48
- new(username, project, default_config).build_branch(branch, params, body)
49
- end
50
-
51
- ##
52
- #
53
- # Add a ssh key to a build
54
- #
55
- # @deprecated Please use instance method of [CircleCi::Project] instead
56
- # @param username [String] - User or org name who owns project
57
- # @param project [String] - Name of project
58
- # @param build [String] - Build number
59
- # @param key [String] - The ssh private key
60
- # @param hostname [String] - The hostname identified by the key
61
- # @return [CircleCi::Response] - Response object
62
- def build_ssh_key(username, project, build, key, hostname)
63
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#build_ssh_key instead')
64
- new(username, project, default_config).build_ssh_key(build, key, hostname)
65
- end
66
-
67
- ##
68
- #
69
- # Clear the build cache for a specific project
70
- #
71
- # @deprecated Please use instance method of [CircleCi::Project] instead
72
- # @param username [String] - User or org name who owns project
73
- # @param project [String] - Name of project
74
- # @return [CircleCi::Response] - Response object
75
- def clear_cache(username, project)
76
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#clear_cache instead')
77
- new(username, project, default_config).clear_cache
78
- end
79
-
80
- ##
81
- #
82
- # Delete a checkout key for a project
83
- #
84
- # @deprecated Please use instance method of [CircleCi::Project] instead
85
- # @param username [String] - User or org name who owns project
86
- # @param project [String] - Name of project
87
- # @param fingerprint [String] - Fingerprint of a checkout key
88
- # @return [CircleCi::Response] - Response object
89
- def delete_checkout_key(username, project, fingerprint)
90
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#delete_checkout_key instead')
91
- new(username, project, default_config).delete_checkout_key(fingerprint)
92
- end
93
-
94
- ##
95
- #
96
- # Enable a project in CircleCI. Causes a CircleCI SSH key to be added to
97
- # the GitHub. Requires admin privilege to the repository.
98
- #
99
- # @deprecated Please use instance method of [CircleCi::Project] instead
100
- # @param username [String] - User or org name who owns project
101
- # @param project [String] - Name of project
102
- # @return [CircleCi::Response] - Response object
103
- def enable(username, project)
104
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#enable instead')
105
- new(username, project, default_config).enable
106
- end
107
-
108
- ##
109
- #
110
- # Get the project envvars
111
- #
112
- # @deprecated Please use instance method of [CircleCi::Project] instead
113
- # @param username [String] - User or org name who owns project
114
- # @param project [String] - Name of project
115
- # @return [CircleCi::Response] - Response object
116
- def envvar(username, project)
117
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#envvar instead')
118
- new(username, project, default_config).envvar
119
- end
120
-
121
- ##
122
- #
123
- # @deprecated Please use [CircleCi::Project#envvar]
124
- def envvars(username, project)
125
- default_config.logger.warn('[Deprecated] CircleCi::Project#envvars is deprecated please use CircleCi::Project#envvar')
126
- envvar username, project
127
- end
128
-
129
- ##
130
- #
131
- # Follow the project
132
- #
133
- # @deprecated Please use instance method of [CircleCi::Project] instead
134
- # @param username [String] - User or org name who owns project
135
- # @param project [String] - Name of project
136
- # @return [CircleCi::Response] - Response object
137
- def follow(username, project)
138
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#follow instead')
139
- new(username, project, default_config).follow
140
- end
141
-
142
- ##
143
- #
144
- # Get a checkout key for a project
145
- #
146
- # @deprecated Please use instance method of [CircleCi::Project] instead
147
- # @param username [String] - User or org name who owns project
148
- # @param project [String] - Name of project
149
- # @param fingerprint [String] - Fingerprint of a checkout key
150
- # @return [CircleCi::Response] - Response object
151
- def get_checkout_key(username, project, fingerprint)
152
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#get_checkout_key instead')
153
- new(username, project, default_config).get_checkout_key(fingerprint)
154
- end
155
-
156
- ##
157
- #
158
- # Get a list of checkout keys for project
159
- #
160
- # @deprecated Please use instance method of [CircleCi::Project] instead
161
- # @param username [String] - User or org name who owns project
162
- # @param project [String] - Name of project
163
- # @return [CircleCi::Response] - Response object
164
- def list_checkout_keys(username, project)
165
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#list_checkout_keys instead')
166
- new(username, project, default_config).list_checkout_keys
167
- end
168
-
169
- ##
170
- #
171
- # Create a checkout key for a project
172
- #
173
- # @deprecated Please use instance method of [CircleCi::Project] instead
174
- # @param username [String] - User or org name who owns project
175
- # @param project [String] - Name of project
176
- # @param type [String] - The type of key to create. Can be 'deploy-key' or 'github-user-key'.
177
- # @return [CircleCi::Response] - Response object
178
- def new_checkout_key(username, project, type)
179
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#new_checkout_key instead')
180
- new(username, project, default_config).new_checkout_key(type)
181
- end
182
-
183
- ##
184
- #
185
- # Get all recent builds for a specific project
186
- #
187
- # @deprecated Please use instance method of [CircleCi::Project] instead
188
- # @param username [String] - User or org name who owns project
189
- # @param project [String] - Name of project
190
- # @param params [Hash] - Parameters for builds (limit, offset, filter)
191
- # @return [CircleCi::Response] - Response object
192
- def recent_builds(username, project, params = {})
193
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#recent_builds instead')
194
- new(username, project, default_config).recent_builds(params)
195
- end
196
-
197
- ##
198
- #
199
- # Get all recent builds for a specific branch of a project
200
- #
201
- # @deprecated Please use instance method of [CircleCi::Project] instead
202
- # @param username [String] - User or org name who owns project
203
- # @param project [String] - Name of project
204
- # @param branch [String] - Name of branch
205
- # @return [CircleCi::Response] - Response object
206
- def recent_builds_branch(username, project, branch)
207
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#recent_builds_branch instead')
208
- new(username, project, default_config).recent_builds_branch(branch)
209
- end
210
-
211
- ##
212
- #
213
- # Get the project configuration
214
- #
215
- # @deprecated Please use instance method of [CircleCi::Project] instead
216
- # @param username [String] - User or org name who owns project
217
- # @param project [String] - Name of project
218
- # @return [CircleCi::Response] - Response object
219
- def settings(username, project)
220
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#settings instead')
221
- new(username, project, default_config).settings
222
- end
223
-
224
- ##
225
- #
226
- # Sets an envvar for a project
227
- #
228
- # @deprecated Please use instance method of [CircleCi::Project] instead
229
- # @param username [String] - User or org name who owns project
230
- # @param project [String] - Name of project
231
- # @param envvar [Hash] - {name: 'foo', value: 'bar'}
232
- # @return [CircleCi::Response] - Response object
233
- def set_envvar(username, project, envvar)
234
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#add_envvar instead')
235
- new(username, project, default_config).add_envvar(envvar)
236
- end
237
-
238
- ##
239
- #
240
- # Add a ssh key to a project
241
- #
242
- # @deprecated Please use instance method of [CircleCi::Project] instead
243
- # @param username [String] - User or org name who owns project
244
- # @param project [String] - Name of project
245
- # @param key [String] - The ssh private key
246
- # @param hostname [String] - The hostname identified by the key
247
- # @return [CircleCi::Response] - Response object
248
- def ssh_key(username, project, key, hostname)
249
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#ssh_key instead')
250
- new(username, project, default_config).ssh_key(key, hostname)
251
- end
252
-
253
- ##
254
- #
255
- # Unfollow the project
256
- #
257
- # @deprecated Please use instance method of [CircleCi::Project] instead
258
- # @param username [String] - User or org name who owns project
259
- # @param project [String] - Name of project
260
- # @return [CircleCi::Response] - Response object
261
- def unfollow(username, project)
262
- default_config.logger.warn('[Deprecated] Use instance method CircleCi::Project#unfollow instead')
263
- new(username, project, default_config).unfollow
264
- end
9
+ # Initialize a new Project API interaction
10
+ #
11
+ # @param username [String] - The vcs username or org name for project
12
+ # @param project [String] - The project name
13
+ # @param vcs_type [String] - The vcs type i.e. github or bitbucket
14
+ # @param conf [CircleCi::Config] - Optional config to use for request
15
+ # @return [CircleCi::Project]
16
+ def initialize(username = nil, project = nil, vcs_type = nil, conf = nil)
17
+ super(username, project, vcs_type, nil, conf)
265
18
  end
266
19
 
267
20
  ##
@@ -270,7 +23,7 @@ module CircleCi
270
23
  #
271
24
  # @return [CircleCi::Response] - Response object
272
25
  def build
273
- CircleCi.request(@conf, "/project/#{username}/#{project}").post
26
+ CircleCi.request(conf, base_path).post
274
27
  end
275
28
 
276
29
  ##
@@ -282,7 +35,7 @@ module CircleCi
282
35
  # @param body [Hash] - Optional post body with build parameters
283
36
  # @return [CircleCi::Response] - Response object
284
37
  def build_branch(branch, params = {}, body = {})
285
- CircleCi.request(@conf, "/project/#{username}/#{project}/tree/#{branch}", params).post(body)
38
+ CircleCi.request(conf, "#{base_path}/tree/#{branch}", params).post(body)
286
39
  end
287
40
 
288
41
  ##
@@ -295,7 +48,7 @@ module CircleCi
295
48
  # @return [CircleCi::Response] - Response object
296
49
  def build_ssh_key(build, key, hostname)
297
50
  body = { hostname: hostname, private_key: key }
298
- CircleCi.request(@conf, "/project/#{username}/#{project}/#{build}/ssh-users").post(body)
51
+ CircleCi.request(conf, "#{base_path}/#{build}/ssh-users").post(body)
299
52
  end
300
53
 
301
54
  ##
@@ -304,7 +57,7 @@ module CircleCi
304
57
  #
305
58
  # @return [CircleCi::Response] - Response object
306
59
  def clear_cache
307
- CircleCi.request(@conf, "/project/#{username}/#{project}/build-cache").delete
60
+ CircleCi.request(conf, "#{base_path}/build-cache").delete
308
61
  end
309
62
 
310
63
  ##
@@ -314,7 +67,7 @@ module CircleCi
314
67
  # @param fingerprint [String] - Fingerprint of a checkout key
315
68
  # @return [CircleCi::Response] - Response object
316
69
  def delete_checkout_key(fingerprint)
317
- CircleCi.request(@conf, "/project/#{username}/#{project}/checkout-key/#{fingerprint}").delete
70
+ CircleCi.request(conf, "#{base_path}/checkout-key/#{fingerprint}").delete
318
71
  end
319
72
 
320
73
  ##
@@ -324,7 +77,7 @@ module CircleCi
324
77
  #
325
78
  # @return [CircleCi::Response] - Response object
326
79
  def enable
327
- CircleCi.request(@conf, "/project/#{username}/#{project}/enable").post
80
+ CircleCi.request(conf, "#{base_path}/enable").post
328
81
  end
329
82
 
330
83
  ##
@@ -333,7 +86,7 @@ module CircleCi
333
86
  #
334
87
  # @return [CircleCi::Response] - Response object
335
88
  def envvar
336
- CircleCi.request(@conf, "/project/#{username}/#{project}/envvar").get
89
+ CircleCi.request(conf, "#{base_path}/envvar").get
337
90
  end
338
91
 
339
92
  ##
@@ -342,7 +95,7 @@ module CircleCi
342
95
  #
343
96
  # @return [CircleCi::Response] - Response object
344
97
  def follow
345
- CircleCi.request(@conf, "/project/#{username}/#{project}/follow").post
98
+ CircleCi.request(conf, "#{base_path}/follow").post
346
99
  end
347
100
 
348
101
  ##
@@ -352,7 +105,7 @@ module CircleCi
352
105
  # @param fingerprint [String] - Fingerprint of a checkout key
353
106
  # @return [CircleCi::Response] - Response object
354
107
  def get_checkout_key(fingerprint)
355
- CircleCi.request(@conf, "/project/#{username}/#{project}/checkout-key/#{fingerprint}").get
108
+ CircleCi.request(conf, "#{base_path}/checkout-key/#{fingerprint}").get
356
109
  end
357
110
 
358
111
  ##
@@ -361,7 +114,7 @@ module CircleCi
361
114
  #
362
115
  # @return [CircleCi::Response] - Response object
363
116
  def list_checkout_keys
364
- CircleCi.request(@conf, "/project/#{username}/#{project}/checkout-key").get
117
+ CircleCi.request(conf, "#{base_path}/checkout-key").get
365
118
  end
366
119
 
367
120
  ##
@@ -371,7 +124,7 @@ module CircleCi
371
124
  # @param type [String] - The type of key to create. Can be 'deploy-key' or 'github-user-key'.
372
125
  # @return [CircleCi::Response] - Response object
373
126
  def new_checkout_key(type)
374
- CircleCi.request(@conf, "/project/#{username}/#{project}/checkout-key").post(type: type)
127
+ CircleCi.request(conf, "#{base_path}/checkout-key").post(type: type)
375
128
  end
376
129
 
377
130
  ##
@@ -381,7 +134,7 @@ module CircleCi
381
134
  # @param params [Hash] - Parameters for builds (limit, offset, filter)
382
135
  # @return [CircleCi::Response] - Response object
383
136
  def recent_builds(params = {})
384
- CircleCi.request(@conf, "/project/#{username}/#{project}", params).get
137
+ CircleCi.request(conf, base_path, params).get
385
138
  end
386
139
 
387
140
  ##
@@ -391,7 +144,7 @@ module CircleCi
391
144
  # @param branch [String] - Name of branch
392
145
  # @return [CircleCi::Response] - Response object
393
146
  def recent_builds_branch(branch)
394
- CircleCi.request(@conf, "/project/#{username}/#{project}/tree/#{branch}").get
147
+ CircleCi.request(conf, "#{base_path}/tree/#{branch}").get
395
148
  end
396
149
 
397
150
  ##
@@ -400,7 +153,7 @@ module CircleCi
400
153
  #
401
154
  # @return [CircleCi::Response] - Response object
402
155
  def settings
403
- CircleCi.request(@conf, "/project/#{username}/#{project}/settings").get
156
+ CircleCi.request(conf, "#{base_path}/settings").get
404
157
  end
405
158
 
406
159
  ##
@@ -410,7 +163,7 @@ module CircleCi
410
163
  # @param envvar [Hash] - {name: 'foo', value: 'bar'}
411
164
  # @return [CircleCi::Response] - Response object
412
165
  def add_envvar(envvar)
413
- CircleCi.request(@conf, "/project/#{username}/#{project}/envvar").post(envvar)
166
+ CircleCi.request(conf, "#{base_path}/envvar").post(envvar)
414
167
  end
415
168
 
416
169
  ##
@@ -422,7 +175,7 @@ module CircleCi
422
175
  # @return [CircleCi::Response] - Response object
423
176
  def ssh_key(key, hostname)
424
177
  body = { hostname: hostname, private_key: key }
425
- CircleCi.request(@conf, "/project/#{username}/#{project}/ssh-key").post(body)
178
+ CircleCi.request(conf, "#{base_path}/ssh-key").post(body)
426
179
  end
427
180
 
428
181
  ##
@@ -431,8 +184,7 @@ module CircleCi
431
184
  #
432
185
  # @return [CircleCi::Response] - Response object
433
186
  def unfollow
434
- CircleCi.request(@conf, "/project/#{username}/#{project}/unfollow").post
187
+ CircleCi.request(conf, "#{base_path}/unfollow").post
435
188
  end
436
189
  end
437
- # rubocop:enable Metrics/ClassLength
438
190
  end