octokit 4.24.0 → 4.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +5 -3
  3. data/lib/ext/sawyer/relation.rb +4 -2
  4. data/lib/octokit/arguments.rb +2 -2
  5. data/lib/octokit/authentication.rb +4 -5
  6. data/lib/octokit/client/actions_secrets.rb +2 -3
  7. data/lib/octokit/client/actions_workflow_runs.rb +2 -0
  8. data/lib/octokit/client/actions_workflows.rb +2 -1
  9. data/lib/octokit/client/apps.rb +26 -26
  10. data/lib/octokit/client/authorizations.rb +20 -17
  11. data/lib/octokit/client/checks.rb +5 -5
  12. data/lib/octokit/client/commit_branches.rb +2 -2
  13. data/lib/octokit/client/commit_comments.rb +8 -8
  14. data/lib/octokit/client/commit_pulls.rb +2 -2
  15. data/lib/octokit/client/commits.rb +25 -33
  16. data/lib/octokit/client/community_profile.rb +2 -2
  17. data/lib/octokit/client/contents.rb +20 -21
  18. data/lib/octokit/client/deployments.rb +6 -6
  19. data/lib/octokit/client/downloads.rb +5 -6
  20. data/lib/octokit/client/emojis.rb +3 -3
  21. data/lib/octokit/client/events.rb +4 -4
  22. data/lib/octokit/client/feeds.rb +4 -5
  23. data/lib/octokit/client/gists.rb +6 -6
  24. data/lib/octokit/client/gitignore.rb +3 -3
  25. data/lib/octokit/client/hooks.rb +10 -10
  26. data/lib/octokit/client/issues.rb +14 -14
  27. data/lib/octokit/client/labels.rb +6 -6
  28. data/lib/octokit/client/legacy_search.rb +3 -3
  29. data/lib/octokit/client/licenses.rb +3 -3
  30. data/lib/octokit/client/markdown.rb +3 -3
  31. data/lib/octokit/client/marketplace.rb +4 -4
  32. data/lib/octokit/client/meta.rb +4 -5
  33. data/lib/octokit/client/milestones.rb +5 -5
  34. data/lib/octokit/client/notifications.rb +6 -6
  35. data/lib/octokit/client/oauth_applications.rb +0 -2
  36. data/lib/octokit/client/objects.rb +14 -14
  37. data/lib/octokit/client/organizations.rb +42 -42
  38. data/lib/octokit/client/pages.rb +3 -3
  39. data/lib/octokit/client/projects.rb +18 -19
  40. data/lib/octokit/client/pub_sub_hubbub.rb +14 -14
  41. data/lib/octokit/client/pull_requests.rb +41 -42
  42. data/lib/octokit/client/rate_limit.rb +9 -11
  43. data/lib/octokit/client/reactions.rb +6 -6
  44. data/lib/octokit/client/refs.rb +13 -14
  45. data/lib/octokit/client/releases.rb +13 -13
  46. data/lib/octokit/client/repositories.rb +36 -36
  47. data/lib/octokit/client/repository_invitations.rb +3 -3
  48. data/lib/octokit/client/reviews.rb +7 -7
  49. data/lib/octokit/client/say.rb +4 -5
  50. data/lib/octokit/client/search.rb +9 -9
  51. data/lib/octokit/client/service_status.rb +2 -2
  52. data/lib/octokit/client/source_import.rb +6 -6
  53. data/lib/octokit/client/stats.rb +10 -9
  54. data/lib/octokit/client/statuses.rb +5 -5
  55. data/lib/octokit/client/traffic.rb +2 -3
  56. data/lib/octokit/client/users.rb +27 -26
  57. data/lib/octokit/client.rb +24 -10
  58. data/lib/octokit/configurable.rb +33 -27
  59. data/lib/octokit/connection.rb +17 -18
  60. data/lib/octokit/default.rb +17 -15
  61. data/lib/octokit/enterprise_admin_client/admin_stats.rb +13 -14
  62. data/lib/octokit/enterprise_admin_client/license.rb +3 -4
  63. data/lib/octokit/enterprise_admin_client/orgs.rb +3 -4
  64. data/lib/octokit/enterprise_admin_client/search_indexing.rb +7 -8
  65. data/lib/octokit/enterprise_admin_client/users.rb +5 -4
  66. data/lib/octokit/enterprise_admin_client.rb +9 -3
  67. data/lib/octokit/enterprise_management_console_client/management_console.rb +30 -30
  68. data/lib/octokit/enterprise_management_console_client.rb +8 -2
  69. data/lib/octokit/error.rb +23 -21
  70. data/lib/octokit/gist.rb +2 -3
  71. data/lib/octokit/middleware/follow_redirects.rb +12 -11
  72. data/lib/octokit/organization.rb +3 -1
  73. data/lib/octokit/preview.rb +29 -29
  74. data/lib/octokit/rate_limit.rb +3 -3
  75. data/lib/octokit/repo_arguments.rb +2 -3
  76. data/lib/octokit/repository.rb +23 -24
  77. data/lib/octokit/response/base_middleware.rb +2 -0
  78. data/lib/octokit/response/feed_parser.rb +3 -5
  79. data/lib/octokit/response/raise_error.rb +2 -2
  80. data/lib/octokit/user.rb +4 -2
  81. data/lib/octokit/version.rb +3 -1
  82. data/lib/octokit/warnable.rb +3 -6
  83. data/lib/octokit.rb +14 -6
  84. data/octokit.gemspec +10 -8
  85. metadata +22 -21
@@ -1,11 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for the Traffic API
5
6
  #
6
7
  # @see https://developer.github.com/v3/repos/traffic/
7
8
  module Traffic
8
-
9
9
  # Get the top 10 referrers over the last 14 days
10
10
  #
11
11
  # @param repo [Integer, String, Repository, Hash] A GitHub repository
@@ -63,7 +63,6 @@ module Octokit
63
63
  opts = ensure_api_media_type(:traffic, options)
64
64
  get "#{Repository.path repo}/traffic/clones", opts
65
65
  end
66
-
67
66
  end
68
67
  end
69
68
  end
@@ -1,11 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  class Client
3
-
4
5
  # Methods for the Users API
5
6
  #
6
7
  # @see https://developer.github.com/v3/users/
7
8
  module Users
8
-
9
9
  # List all GitHub users
10
10
  #
11
11
  # This provides a list of every user, in the order that they signed up
@@ -19,7 +19,7 @@ module Octokit
19
19
  #
20
20
  # @return [Array<Sawyer::Resource>] List of GitHub users.
21
21
  def all_users(options = {})
22
- paginate "users", options
22
+ paginate 'users', options
23
23
  end
24
24
 
25
25
  # Get a single user
@@ -30,7 +30,7 @@ module Octokit
30
30
  # @see https://developer.github.com/v3/users/#get-the-authenticated-user
31
31
  # @example
32
32
  # Octokit.user("sferik")
33
- def user(user=nil, options = {})
33
+ def user(user = nil, options = {})
34
34
  get User.path(user), options
35
35
  end
36
36
 
@@ -45,14 +45,14 @@ module Octokit
45
45
  # Octokit.exchange_code_for_token('aaaa', 'xxxx', 'yyyy', {:accept => 'application/json'})
46
46
  def exchange_code_for_token(code, app_id = client_id, app_secret = client_secret, options = {})
47
47
  options = options.merge({
48
- :code => code,
49
- :client_id => app_id,
50
- :client_secret => app_secret,
51
- :headers => {
52
- :content_type => 'application/json',
53
- :accept => 'application/json'
54
- }
55
- })
48
+ code: code,
49
+ client_id: app_id,
50
+ client_secret: app_secret,
51
+ headers: {
52
+ content_type: 'application/json',
53
+ accept: 'application/json'
54
+ }
55
+ })
56
56
 
57
57
  post "#{web_endpoint}login/oauth/access_token", options
58
58
  end
@@ -84,7 +84,7 @@ module Octokit
84
84
  # @example
85
85
  # Octokit.update_user(:name => "Erik Michaels-Ober", :email => "sferik@gmail.com", :company => "Code for America", :location => "San Francisco", :hireable => false)
86
86
  def update_user(options)
87
- patch "user", options
87
+ patch 'user', options
88
88
  end
89
89
 
90
90
  # Get a user's followers.
@@ -96,7 +96,7 @@ module Octokit
96
96
  # @see https://developer.github.com/v3/users/followers/#list-followers-of-a-user
97
97
  # @example
98
98
  # Octokit.followers('pengwynn')
99
- def followers(user=login, options = {})
99
+ def followers(user = login, options = {})
100
100
  paginate "#{User.path user}/followers", options
101
101
  end
102
102
 
@@ -109,7 +109,7 @@ module Octokit
109
109
  # @see https://developer.github.com/v3/users/followers/#list-users-followed-by-another-user
110
110
  # @example
111
111
  # Octokit.following('pengwynn')
112
- def following(user=login, options = {})
112
+ def following(user = login, options = {})
113
113
  paginate "#{User.path user}/following", options
114
114
  end
115
115
 
@@ -174,7 +174,7 @@ module Octokit
174
174
  # @see https://developer.github.com/v3/activity/starring/#list-repositories-being-starred
175
175
  # @example
176
176
  # Octokit.starred('pengwynn')
177
- def starred(user=login, options = {})
177
+ def starred(user = login, options = {})
178
178
  paginate user_path(user, 'starred'), options
179
179
  end
180
180
 
@@ -227,7 +227,7 @@ module Octokit
227
227
  # @example
228
228
  # @client.keys
229
229
  def keys(options = {})
230
- paginate "user/keys", options
230
+ paginate 'user/keys', options
231
231
  end
232
232
 
233
233
  # Get list of public keys for user.
@@ -253,7 +253,7 @@ module Octokit
253
253
  # @example
254
254
  # @client.add_key('Personal projects key', 'ssh-rsa AAA...')
255
255
  def add_key(title, key, options = {})
256
- post "user/keys", options.merge({:title => title, :key => key})
256
+ post 'user/keys', options.merge({ title: title, key: key })
257
257
  end
258
258
 
259
259
  # Update a public key
@@ -297,7 +297,7 @@ module Octokit
297
297
  # @example
298
298
  # @client.emails
299
299
  def emails(options = {})
300
- paginate "user/emails", options
300
+ paginate 'user/emails', options
301
301
  end
302
302
 
303
303
  # Add email address to user.
@@ -309,9 +309,9 @@ module Octokit
309
309
  # @see https://developer.github.com/v3/users/emails/#add-email-addresses
310
310
  # @example
311
311
  # @client.add_email('new_email@user.com')
312
- def add_email(email, options = {})
312
+ def add_email(email, _options = {})
313
313
  email = Array(email)
314
- post "user/emails", email
314
+ post 'user/emails', email
315
315
  end
316
316
 
317
317
  # Remove email from user.
@@ -325,7 +325,7 @@ module Octokit
325
325
  # @client.remove_email('old_email@user.com')
326
326
  def remove_email(email)
327
327
  email = Array(email)
328
- boolean_from_response :delete, "user/emails", email
328
+ boolean_from_response :delete, 'user/emails', email
329
329
  end
330
330
 
331
331
  # List repositories being watched by a user.
@@ -335,10 +335,10 @@ module Octokit
335
335
  # @see https://developer.github.com/v3/activity/watching/#list-repositories-being-watched
336
336
  # @example
337
337
  # @client.subscriptions("pengwynn")
338
- def subscriptions(user=login, options = {})
338
+ def subscriptions(user = login, options = {})
339
339
  paginate user_path(user, 'subscriptions'), options
340
340
  end
341
- alias :watched :subscriptions
341
+ alias watched subscriptions
342
342
 
343
343
  # Initiates the generation of a migration archive.
344
344
  #
@@ -354,7 +354,7 @@ module Octokit
354
354
  def start_user_migration(repositories, options = {})
355
355
  options = ensure_api_media_type(:migrations, options)
356
356
  options[:repositories] = repositories
357
- post "user/migrations", options
357
+ post 'user/migrations', options
358
358
  end
359
359
 
360
360
  # Lists the most recent migrations.
@@ -365,7 +365,7 @@ module Octokit
365
365
  # @see https://docs.github.com/en/rest/reference/migrations#list-user-migrations
366
366
  def user_migrations(options = {})
367
367
  options = ensure_api_media_type(:migrations, options)
368
- paginate "user/migrations", options
368
+ paginate 'user/migrations', options
369
369
  end
370
370
 
371
371
  # Fetches the status of a migration.
@@ -429,6 +429,7 @@ module Octokit
429
429
  end
430
430
 
431
431
  private
432
+
432
433
  # convenience method for constructing a user specific path, if the user is logged in
433
434
  def user_path(user, path)
434
435
  if user == login && user_authenticated?
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'octokit/connection'
2
4
  require 'octokit/warnable'
3
5
  require 'octokit/arguments'
@@ -64,12 +66,10 @@ require 'octokit/client/users'
64
66
  require 'ext/sawyer/relation'
65
67
 
66
68
  module Octokit
67
-
68
69
  # Client for the GitHub API
69
70
  #
70
71
  # @see https://developer.github.com
71
72
  class Client
72
-
73
73
  include Octokit::Authentication
74
74
  include Octokit::Configurable
75
75
  include Octokit::Connection
@@ -128,11 +128,18 @@ module Octokit
128
128
  include Octokit::Client::Users
129
129
 
130
130
  # Header keys that can be passed in options hash to {#get},{#head}
131
- CONVENIENCE_HEADERS = Set.new([:accept, :content_type])
131
+ CONVENIENCE_HEADERS = Set.new(%i[accept content_type])
132
132
 
133
133
  def initialize(options = {})
134
134
  # Use options passed in, but fall back to module defaults
135
+ #
136
+ # rubocop:disable Style/HashEachMethods
137
+ #
138
+ # This may look like a `.keys.each` which should be replaced with `#each_key`, but
139
+ # this doesn't actually work, since `#keys` is just a method we've defined ourselves.
140
+ # The class doesn't fulfill the whole `Enumerable` contract.
135
141
  Octokit::Configurable.keys.each do |key|
142
+ # rubocop:enable Style/HashEachMethods
136
143
  value = options[key].nil? ? Octokit.instance_variable_get(:"@#{key}") : options[key]
137
144
  instance_variable_set(:"@#{key}", value)
138
145
  end
@@ -148,11 +155,17 @@ module Octokit
148
155
 
149
156
  # mask password
150
157
  inspected.gsub! @password, '*******' if @password
151
- inspected.gsub! @management_console_password, '*******' if @management_console_password
158
+ if @management_console_password
159
+ inspected.gsub! @management_console_password, '*******'
160
+ end
152
161
  inspected.gsub! @bearer_token, '********' if @bearer_token
153
162
  # Only show last 4 of token, secret
154
- inspected.gsub! @access_token, "#{'*'*36}#{@access_token[36..-1]}" if @access_token
155
- inspected.gsub! @client_secret, "#{'*'*36}#{@client_secret[36..-1]}" if @client_secret
163
+ if @access_token
164
+ inspected.gsub! @access_token, "#{'*' * 36}#{@access_token[36..-1]}"
165
+ end
166
+ if @client_secret
167
+ inspected.gsub! @client_secret, "#{'*' * 36}#{@client_secret[36..-1]}"
168
+ end
156
169
 
157
170
  inspected
158
171
  end
@@ -170,11 +183,12 @@ module Octokit
170
183
  # # GET https://foo:bar@api.github.com/
171
184
  # client.get "/"
172
185
  # end
173
- def as_app(key = client_id, secret = client_secret, &block)
186
+ def as_app(key = client_id, secret = client_secret)
174
187
  if key.to_s.empty? || secret.to_s.empty?
175
- raise ApplicationCredentialsRequired, "client_id and client_secret required"
188
+ raise ApplicationCredentialsRequired, 'client_id and client_secret required'
176
189
  end
177
- app_client = self.dup
190
+
191
+ app_client = dup
178
192
  app_client.client_id = app_client.client_secret = nil
179
193
  app_client.login = key
180
194
  app_client.password = secret
@@ -235,7 +249,7 @@ module Octokit
235
249
  conn_opts[:url] = @api_endpoint
236
250
  conn_opts[:builder] = @middleware.dup if @middleware
237
251
  conn_opts[:proxy] = @proxy if @proxy
238
- conn_opts[:ssl] = { :verify_mode => @ssl_verify_mode } if @ssl_verify_mode
252
+ conn_opts[:ssl] = { verify_mode: @ssl_verify_mode } if @ssl_verify_mode
239
253
  conn = Faraday.new(conn_opts) do |http|
240
254
  if basic_authenticated?
241
255
  http.request *FARADAY_BASIC_AUTH_KEYS, @login, @password
@@ -1,5 +1,6 @@
1
- module Octokit
1
+ # frozen_string_literal: true
2
2
 
3
+ module Octokit
3
4
  # Configuration options for {Client}, defaulting to values
4
5
  # in {Default}
5
6
  module Configurable
@@ -61,31 +62,30 @@ module Octokit
61
62
  :management_console_endpoint, :management_console_password
62
63
 
63
64
  class << self
64
-
65
65
  # List of configurable keys for {Octokit::Client}
66
66
  # @return [Array] of option keys
67
67
  def keys
68
- @keys ||= [
69
- :access_token,
70
- :api_endpoint,
71
- :auto_paginate,
72
- :bearer_token,
73
- :client_id,
74
- :client_secret,
75
- :connection_options,
76
- :default_media_type,
77
- :login,
78
- :management_console_endpoint,
79
- :management_console_password,
80
- :middleware,
81
- :netrc,
82
- :netrc_file,
83
- :per_page,
84
- :password,
85
- :proxy,
86
- :ssl_verify_mode,
87
- :user_agent,
88
- :web_endpoint
68
+ @keys ||= %i[
69
+ access_token
70
+ api_endpoint
71
+ auto_paginate
72
+ bearer_token
73
+ client_id
74
+ client_secret
75
+ connection_options
76
+ default_media_type
77
+ login
78
+ management_console_endpoint
79
+ management_console_password
80
+ middleware
81
+ netrc
82
+ netrc_file
83
+ per_page
84
+ password
85
+ proxy
86
+ ssl_verify_mode
87
+ user_agent
88
+ web_endpoint
89
89
  ]
90
90
  end
91
91
  end
@@ -97,7 +97,13 @@ module Octokit
97
97
 
98
98
  # Reset configuration options to default values
99
99
  def reset!
100
+ # rubocop:disable Style/HashEachMethods
101
+ #
102
+ # This may look like a `.keys.each` which should be replaced with `#each_key`, but
103
+ # this doesn't actually work, since `#keys` is just a method we've defined ourselves.
104
+ # The class doesn't fulfill the whole `Enumerable` contract.
100
105
  Octokit::Configurable.keys.each do |key|
106
+ # rubocop:enable Style/HashEachMethods
101
107
  instance_variable_set(:"@#{key}", Octokit::Default.options[key])
102
108
  end
103
109
  self
@@ -113,18 +119,18 @@ module Octokit
113
119
  end
114
120
 
115
121
  def api_endpoint
116
- File.join(@api_endpoint, "")
122
+ File.join(@api_endpoint, '')
117
123
  end
118
124
 
119
125
  def management_console_endpoint
120
- File.join(@management_console_endpoint, "")
126
+ File.join(@management_console_endpoint, '')
121
127
  end
122
128
 
123
129
  # Base URL for generated web URLs
124
130
  #
125
131
  # @return [String] Default: https://github.com/
126
132
  def web_endpoint
127
- File.join(@web_endpoint, "")
133
+ File.join(@web_endpoint, '')
128
134
  end
129
135
 
130
136
  def login
@@ -140,7 +146,7 @@ module Octokit
140
146
  private
141
147
 
142
148
  def options
143
- Hash[Octokit::Configurable.keys.map{|key| [key, instance_variable_get(:"@#{key}")]}]
149
+ Hash[Octokit::Configurable.keys.map { |key| [key, instance_variable_get(:"@#{key}")] }]
144
150
  end
145
151
 
146
152
  def fetch_client_id_and_secret(overrides = {})
@@ -1,14 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sawyer'
2
4
  require 'octokit/authentication'
3
5
  module Octokit
4
-
5
6
  # Network layer for API clients.
6
7
  module Connection
7
-
8
8
  include Octokit::Authentication
9
9
 
10
10
  # Header keys that can be passed in options hash to {#get},{#head}
11
- CONVENIENCE_HEADERS = Set.new([:accept, :content_type])
11
+ CONVENIENCE_HEADERS = Set.new(%i[accept content_type])
12
12
 
13
13
  # Make a HTTP GET request
14
14
  #
@@ -75,17 +75,17 @@ module Octokit
75
75
  # contains the contents of the requests so far and the second parameter
76
76
  # contains the latest response.
77
77
  # @return [Sawyer::Resource]
78
- def paginate(url, options = {}, &block)
78
+ def paginate(url, options = {})
79
79
  opts = parse_query_and_convenience_headers(options)
80
80
  if @auto_paginate || @per_page
81
- opts[:query][:per_page] ||= @per_page || (@auto_paginate ? 100 : nil)
81
+ opts[:query][:per_page] ||= @per_page || (@auto_paginate ? 100 : nil)
82
82
  end
83
83
 
84
84
  data = request(:get, url, opts.dup)
85
85
 
86
86
  if @auto_paginate
87
87
  while @last_response.rels[:next] && rate_limit.remaining > 0
88
- @last_response = @last_response.rels[:next].get(:headers => opts[:headers])
88
+ @last_response = @last_response.rels[:next].get(headers: opts[:headers])
89
89
  if block_given?
90
90
  yield(data, @last_response)
91
91
  else
@@ -104,7 +104,7 @@ module Octokit
104
104
  def agent
105
105
  @agent ||= Sawyer::Agent.new(endpoint, sawyer_options) do |http|
106
106
  http.headers[:accept] = default_media_type
107
- http.headers[:content_type] = "application/json"
107
+ http.headers[:content_type] = 'application/json'
108
108
  http.headers[:user_agent] = user_agent
109
109
  if basic_authenticated?
110
110
  http.request *FARADAY_BASIC_AUTH_KEYS, @login, @password
@@ -122,7 +122,7 @@ module Octokit
122
122
  #
123
123
  # @return [Sawyer::Resource]
124
124
  def root
125
- get "/"
125
+ get '/'
126
126
  end
127
127
 
128
128
  # Response for last HTTP request
@@ -155,9 +155,9 @@ module Octokit
155
155
 
156
156
  @last_response = response = agent.call(method, Addressable::URI.parse(path.to_s).normalize.to_s, data, options)
157
157
  response.data
158
- rescue Octokit::Error => error
158
+ rescue Octokit::Error => e
159
159
  @last_response = nil
160
- raise error
160
+ raise e
161
161
  end
162
162
 
163
163
  # Executes the request, checking if it was successful
@@ -170,21 +170,20 @@ module Octokit
170
170
  false
171
171
  end
172
172
 
173
-
174
173
  def sawyer_options
175
174
  opts = {
176
- :links_parser => Sawyer::LinkParsers::Simple.new
175
+ links_parser: Sawyer::LinkParsers::Simple.new
177
176
  }
178
177
  conn_opts = @connection_options
179
178
  conn_opts[:builder] = @middleware.dup if @middleware
180
179
  conn_opts[:proxy] = @proxy if @proxy
181
180
  if conn_opts[:ssl].nil?
182
- conn_opts[:ssl] = { :verify_mode => @ssl_verify_mode } if @ssl_verify_mode
181
+ conn_opts[:ssl] = { verify_mode: @ssl_verify_mode } if @ssl_verify_mode
183
182
  else
184
183
  verify = @connection_options[:ssl][:verify]
185
184
  conn_opts[:ssl] = {
186
- :verify => verify,
187
- :verify_mode => verify == false ? 0 : @ssl_verify_mode
185
+ verify: verify,
186
+ verify_mode: verify == false ? 0 : @ssl_verify_mode
188
187
  }
189
188
  end
190
189
  opts[:faraday] = Faraday.new(conn_opts)
@@ -194,15 +193,15 @@ module Octokit
194
193
 
195
194
  def parse_query_and_convenience_headers(options)
196
195
  options = options.dup
197
- headers = options.delete(:headers) { Hash.new }
196
+ headers = options.delete(:headers) { {} }
198
197
  CONVENIENCE_HEADERS.each do |h|
199
198
  if header = options.delete(h)
200
199
  headers[h] = header
201
200
  end
202
201
  end
203
202
  query = options.delete(:query)
204
- opts = {:query => options}
205
- opts[:query].merge!(query) if query && query.is_a?(Hash)
203
+ opts = { query: options }
204
+ opts[:query].merge!(query) if query&.is_a?(Hash)
206
205
  opts[:headers] = headers unless headers.empty?
207
206
 
208
207
  opts
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'octokit/middleware/follow_redirects'
2
4
  require 'octokit/response/raise_error'
3
5
  require 'octokit/response/feed_parser'
@@ -13,28 +15,30 @@ if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
13
15
  end
14
16
 
15
17
  module Octokit
16
-
17
18
  # Default configuration options for {Client}
18
19
  module Default
19
-
20
20
  # Default API endpoint
21
- API_ENDPOINT = "https://api.github.com".freeze
21
+ API_ENDPOINT = 'https://api.github.com'
22
22
 
23
23
  # Default User Agent header string
24
- USER_AGENT = "Octokit Ruby Gem #{Octokit::VERSION}".freeze
24
+ USER_AGENT = "Octokit Ruby Gem #{Octokit::VERSION}"
25
25
 
26
26
  # Default media type
27
- MEDIA_TYPE = "application/vnd.github.v3+json".freeze
27
+ MEDIA_TYPE = 'application/vnd.github.v3+json'
28
28
 
29
29
  # Default WEB endpoint
30
- WEB_ENDPOINT = "https://github.com".freeze
30
+ WEB_ENDPOINT = 'https://github.com'
31
31
 
32
32
  # Default Faraday middleware stack
33
33
  MIDDLEWARE = Faraday::RackBuilder.new do |builder|
34
34
  # In Faraday 2.x, Faraday::Request::Retry was moved to a separate gem
35
35
  # so we use it only when it's available.
36
- builder.use Faraday::Request::Retry, exceptions: [Octokit::ServerError] if defined?(Faraday::Request::Retry)
37
- builder.use Faraday::Retry::Middleware, exceptions: [Octokit::ServerError] if defined?(Faraday::Retry::Middleware)
36
+ if defined?(Faraday::Request::Retry)
37
+ builder.use Faraday::Request::Retry, exceptions: [Octokit::ServerError]
38
+ end
39
+ if defined?(Faraday::Retry::Middleware)
40
+ builder.use Faraday::Retry::Middleware, exceptions: [Octokit::ServerError]
41
+ end
38
42
 
39
43
  builder.use Octokit::Middleware::FollowRedirects
40
44
  builder.use Octokit::Response::RaiseError
@@ -43,11 +47,10 @@ module Octokit
43
47
  end
44
48
 
45
49
  class << self
46
-
47
50
  # Configuration options
48
51
  # @return [Hash]
49
52
  def options
50
- Hash[Octokit::Configurable.keys.map{|key| [key, send(key)]}]
53
+ Hash[Octokit::Configurable.keys.map { |key| [key, send(key)] }]
51
54
  end
52
55
 
53
56
  # Default access token from ENV
@@ -102,9 +105,9 @@ module Octokit
102
105
  # @return [Hash]
103
106
  def connection_options
104
107
  {
105
- :headers => {
106
- :accept => default_media_type,
107
- :user_agent => user_agent
108
+ headers: {
109
+ accept: default_media_type,
110
+ user_agent: user_agent
108
111
  }
109
112
  }
110
113
  end
@@ -139,7 +142,7 @@ module Octokit
139
142
  def per_page
140
143
  page_size = ENV['OCTOKIT_PER_PAGE']
141
144
 
142
- page_size.to_i if page_size
145
+ page_size&.to_i
143
146
  end
144
147
 
145
148
  # Default proxy server URI for Faraday connection from ENV
@@ -180,7 +183,6 @@ module Octokit
180
183
  def netrc_file
181
184
  ENV['OCTOKIT_NETRC_FILE'] || File.join(ENV['HOME'].to_s, '.netrc')
182
185
  end
183
-
184
186
  end
185
187
  end
186
188
  end