octokit 9.1.0 → 10.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f755fdeae0b35f76932ffa267d2d73e01b5d137f5f740d8e80106fc6c0bcb226
4
- data.tar.gz: 473dc0bee0251cb20935bc9e2160e7e92b851271dc67010bda79a94bef8adb68
3
+ metadata.gz: 4f38242e8e316fd62d03bc00b2d912f10dee6d88f7ccaa27d5b80af886c53d55
4
+ data.tar.gz: ea7d9c47a13fe18e8f54a7f9ed3db6e7b776eb91a0ebe7ceb91eab5f7742faa1
5
5
  SHA512:
6
- metadata.gz: 51f43e8ac4d7082309ce0e673fa0c948f5ff62e5982a2079cec57639a047be09a12a443788993929d3ab82ec6998ed49ceaa479b5d8b3fe5deef04e29549672d
7
- data.tar.gz: bfcc814b67b08b256832fb7d168166082289a6281caa0ec81fc98ce03d376d976037e5c99c72e63d9f1440c0d1e1e5bac1c925a0fe5db6ef3d0cae7aa63e56b5
6
+ metadata.gz: b74062227c7bfc90d1efc64cbfddf6cf3eb5cc0d4d3c765d5500f0ace01e588f11b635e860536582dbae1734c57c780562a761eec3cfad7cd0b4dfc6b44240f8
7
+ data.tar.gz: 61fb7f011f61d853e1511384644cd36c6c3ddafb7ca38ad554f688ea321da3182748b9c065a6b8b7af46364ba361342c447c07ff9927d71788bde8b93a57dd6d
data/README.md CHANGED
@@ -597,7 +597,7 @@ traffic:
597
597
 
598
598
  ```ruby
599
599
  stack = Faraday::RackBuilder.new do |builder|
600
- builder.use Faraday::Retry::Middleware, exceptions: Faraday::Request::Retry::DEFAULT_EXCEPTIONS + [Octokit::ServerError] # or Faraday::Request::Retry for Faraday < 2.0
600
+ builder.use Faraday::Retry::Middleware, exceptions: Faraday::Retry::Middleware::DEFAULT_EXCEPTIONS + [Octokit::ServerError] # or Faraday::Request::Retry for Faraday < 2.0
601
601
  builder.use Octokit::Middleware::FollowRedirects
602
602
  builder.use Octokit::Response::RaiseError
603
603
  builder.use Octokit::Response::FeedParser
@@ -8,53 +8,45 @@ module Octokit
8
8
  #
9
9
  # @param options [Hash] A customizable set of options
10
10
  #
11
- # @see https://developer.github.com/v3/apps/#get-the-authenticated-app
11
+ # @see https://docs.github.com/en/rest/apps/apps#get-the-authenticated-app
12
12
  #
13
13
  # @return [Sawyer::Resource] App information
14
14
  def app(options = {})
15
15
  get 'app', options
16
16
  end
17
17
 
18
- # Find all installations that belong to an App
18
+ # List all installations that belong to an App
19
19
  #
20
20
  # @param options [Hash] A customizable set of options
21
21
  #
22
- # @see https://developer.github.com/v3/apps/#list-installations
22
+ # @see https://docs.github.com/en/rest/apps/apps#list-installations-for-the-authenticated-app
23
23
  #
24
24
  # @return [Array<Sawyer::Resource>] the total_count and an array of installations
25
- def find_app_installations(options = {})
25
+ def list_app_installations(options = {})
26
26
  paginate 'app/installations', options
27
27
  end
28
- alias find_installations find_app_installations
28
+ alias find_installations list_app_installations
29
+ alias find_app_installations list_app_installations
29
30
 
30
- def find_integration_installations(options = {})
31
- octokit_warn(
32
- 'Deprecated: Octokit::Client::Apps#find_integration_installations ' \
33
- 'method is deprecated. Please update your call to use ' \
34
- 'Octokit::Client::Apps#find_app_installations before the next major ' \
35
- 'Octokit version update.'
36
- )
37
- find_app_installations(options)
38
- end
39
-
40
- # Find all installations that are accessible to the authenticated user
31
+ # List all installations that are accessible to the authenticated user
41
32
  #
42
33
  # @param options [Hash] A customizable set of options
43
34
  #
44
- # @see https://developer.github.com/v3/apps/installations/#list-installations-for-a-user
35
+ # @see https://docs.github.com/en/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token
45
36
  #
46
37
  # @return [Sawyer::Resource] the total_count and an array of installations
47
- def find_user_installations(options = {})
38
+ def list_user_installations(options = {})
48
39
  paginate('user/installations', options) do |data, last_response|
49
40
  data.installations.concat last_response.data.installations
50
41
  end
51
42
  end
43
+ alias find_user_installations list_user_installations
52
44
 
53
45
  # Get a single installation
54
46
  #
55
47
  # @param id [Integer] Installation id
56
48
  #
57
- # @see https://developer.github.com/v3/apps/#get-an-installation
49
+ # @see https://docs.github.com/en/rest/apps/apps#get-an-installation-for-the-authenticated-app
58
50
  #
59
51
  # @return [Sawyer::Resource] Installation information
60
52
  def installation(id, options = {})
@@ -66,7 +58,7 @@ module Octokit
66
58
  # @param installation [Integer] The id of a GitHub App Installation
67
59
  # @param options [Hash] A customizable set of options
68
60
  #
69
- # @see https://developer.github.com/v3/apps/#create-a-new-installation-token
61
+ # @see https://docs.github.com/en/rest/apps/apps#create-an-installation-access-token-for-an-app
70
62
  #
71
63
  # @return [<Sawyer::Resource>] An installation token
72
64
  def create_app_installation_access_token(installation, options = {})
@@ -74,22 +66,12 @@ module Octokit
74
66
  end
75
67
  alias create_installation_access_token create_app_installation_access_token
76
68
 
77
- def create_integration_installation_access_token(installation, options = {})
78
- octokit_warn(
79
- 'Deprecated: Octokit::Client::Apps#create_integration_installation_access_token ' \
80
- 'method is deprecated. Please update your call to use ' \
81
- 'Octokit::Client::Apps#create_app_installation_access_token before the next major ' \
82
- 'Octokit version update.'
83
- )
84
- create_app_installation_access_token(installation, options)
85
- end
86
-
87
69
  # Enables an app to find the organization's installation information.
88
70
  #
89
71
  # @param organization [String] Organization GitHub login
90
72
  # @param options [Hash] A customizable set of options
91
73
  #
92
- # @see https://developer.github.com/v3/apps/#get-an-organization-installation
74
+ # @see https://docs.github.com/en/rest/apps/apps#get-an-organization-installation-for-the-authenticated-app
93
75
  #
94
76
  # @return [Sawyer::Resource] Installation information
95
77
  def find_organization_installation(organization, options = {})
@@ -101,7 +83,7 @@ module Octokit
101
83
  # @param repo [String] A GitHub repository
102
84
  # @param options [Hash] A customizable set of options
103
85
  #
104
- # @see https://developer.github.com/v3/apps/#get-a-repository-installation
86
+ # @see https://docs.github.com/en/rest/apps/apps#get-a-repository-installation-for-the-authenticated-app
105
87
  #
106
88
  # @return [Sawyer::Resource] Installation information
107
89
  def find_repository_installation(repo, options = {})
@@ -113,7 +95,7 @@ module Octokit
113
95
  # @param user [String] GitHub user login
114
96
  # @param options [Hash] A customizable set of options
115
97
  #
116
- # @see https://developer.github.com/v3/apps/#get-a-user-installation
98
+ # @see https://docs.github.com/en/rest/apps/apps#get-a-user-installation-for-the-authenticated-app
117
99
  #
118
100
  # @return [Sawyer::Resource] Installation information
119
101
  def find_user_installation(user, options = {})
@@ -124,7 +106,7 @@ module Octokit
124
106
  #
125
107
  # @param options [Hash] A customizable set of options
126
108
  #
127
- # @see https://developer.github.com/v3/apps/installations/#list-repositories
109
+ # @see https://docs.github.com/en/rest/apps/installations#list-repositories-accessible-to-the-app-installation
128
110
  #
129
111
  # @return [Sawyer::Resource] the total_count and an array of repositories
130
112
  def list_app_installation_repositories(options = {})
@@ -134,23 +116,13 @@ module Octokit
134
116
  end
135
117
  alias list_installation_repos list_app_installation_repositories
136
118
 
137
- def list_integration_installation_repositories(options = {})
138
- octokit_warn(
139
- 'Deprecated: Octokit::Client::Apps#list_integration_installation_repositories ' \
140
- 'method is deprecated. Please update your call to use ' \
141
- 'Octokit::Client::Apps#list_app_installation_repositories before the next major ' \
142
- 'Octokit version update.'
143
- )
144
- list_app_installation_repositories(options)
145
- end
146
-
147
119
  # Add a single repository to an installation
148
120
  #
149
121
  # @param installation [Integer] The id of a GitHub App Installation
150
122
  # @param repo [Integer] The id of the GitHub repository
151
123
  # @param options [Hash] A customizable set of options
152
124
  #
153
- # @see https://developer.github.com/v3/apps/installations/#add-repository-to-installation
125
+ # @see https://docs.github.com/en/rest/apps/installations#add-a-repository-to-an-app-installation
154
126
  #
155
127
  # @return [Boolean] Success
156
128
  def add_repository_to_app_installation(installation, repo, options = {})
@@ -158,23 +130,13 @@ module Octokit
158
130
  end
159
131
  alias add_repo_to_installation add_repository_to_app_installation
160
132
 
161
- def add_repository_to_integration_installation(installation, repo, options = {})
162
- octokit_warn(
163
- 'Deprecated: Octokit::Client::Apps#add_repository_to_integration_installation ' \
164
- 'method is deprecated. Please update your call to use ' \
165
- 'Octokit::Client::Apps#add_repository_to_app_installation before the next major ' \
166
- 'Octokit version update.'
167
- )
168
- add_repository_to_app_installation(installation, repo, options)
169
- end
170
-
171
133
  # Remove a single repository to an installation
172
134
  #
173
135
  # @param installation [Integer] The id of a GitHub App Installation
174
136
  # @param repo [Integer] The id of the GitHub repository
175
137
  # @param options [Hash] A customizable set of options
176
138
  #
177
- # @see https://developer.github.com/v3/apps/installations/#remove-repository-from-installation
139
+ # @see https://docs.github.com/en/rest/apps/installations#remove-a-repository-from-an-app-installation
178
140
  #
179
141
  # @return [Boolean] Success
180
142
  def remove_repository_from_app_installation(installation, repo, options = {})
@@ -182,22 +144,12 @@ module Octokit
182
144
  end
183
145
  alias remove_repo_from_installation remove_repository_from_app_installation
184
146
 
185
- def remove_repository_from_integration_installation(installation, repo, options = {})
186
- octokit_warn(
187
- 'Deprecated: Octokit::Client::Apps#remove_repository_from_integration_installation ' \
188
- 'method is deprecated. Please update your call to use ' \
189
- 'Octokit::Client::Apps#remove_repository_from_app_installation before the next major ' \
190
- 'Octokit version update.'
191
- )
192
- remove_repository_from_app_installation(installation, repo, options)
193
- end
194
-
195
147
  # List repositories accessible to the user for an installation
196
148
  #
197
149
  # @param installation [Integer] The id of a GitHub App Installation
198
150
  # @param options [Hash] A customizable set of options
199
151
  #
200
- # @see https://developer.github.com/v3/apps/installations/#list-repositories-accessible-to-the-user-for-an-installation
152
+ # @see https://docs.github.com/en/rest/apps/installations#list-repositories-accessible-to-the-user-access-token
201
153
  #
202
154
  # @return [Sawyer::Resource] the total_count and an array of repositories
203
155
  def find_installation_repositories_for_user(installation, options = {})
@@ -211,7 +163,7 @@ module Octokit
211
163
  # @param installation [Integer] The id of a GitHub App Installation
212
164
  # @param options [Hash] A customizable set of options
213
165
  #
214
- # @see https://developer.github.com/v3/apps/#delete-an-installation
166
+ # @see https://docs.github.com/en/rest/apps/apps#delete-an-installation-for-the-authenticated-app
215
167
  #
216
168
  # @return [Boolean] Success
217
169
  def delete_installation(installation, options = {})
@@ -248,7 +200,7 @@ module Octokit
248
200
  # @param delivery_id [Integer] The id of a GitHub App Hook Delivery
249
201
  # @param options [Hash] A customizable set of options
250
202
  #
251
- # @see https://developer.github.com/v3/apps/#redeliver-a-delivery-for-an-app-webhook
203
+ # @see https://docs.github.com/en/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook
252
204
  #
253
205
  # @return [Boolean] Success
254
206
  def deliver_app_hook(delivery_id, options = {})
@@ -197,22 +197,30 @@ module Octokit
197
197
  # @param body [String] Comment content
198
198
  # @param commit_id [String] Sha of the commit to comment on.
199
199
  # @param path [String] Relative path of the file to comment on.
200
- # @param line [Integer] Line index in the diff to comment on.
200
+ # @param line [Integer] Optional line index in the diff to comment on.
201
201
  # For a multi-line comment, the last line of the range
202
202
  # and specify 'start_line' in the 'options'.
203
+ # If not specified, the comment will be on the whole file.
203
204
  # @return [Sawyer::Resource] Hash representing the new comment
204
205
  # @deprecated The position will be deprecated in the next major version. Please refer to the details below.
205
206
  # @see https://developer.github.com/v3/pulls/comments/#create-a-comment
206
207
  # @example
207
208
  # @client.create_pull_request_comment("octokit/octokit.rb", 163, ":shipit:",
208
209
  # "2d3201e4440903d8b04a5487842053ca4883e5f0", "lib/octokit/request.rb", 47)
209
- def create_pull_request_comment(repo, pull_id, body, commit_id, path, line, options = {})
210
- options.merge!({
211
- body: body,
212
- commit_id: commit_id,
213
- path: path,
214
- line: line
215
- })
210
+ def create_pull_request_comment(repo, pull_id, body, commit_id, path, line = nil, options = {})
211
+ comment = {
212
+ body: body,
213
+ commit_id: commit_id,
214
+ path: path
215
+ }
216
+
217
+ if line.nil?
218
+ comment[:subject_type] = 'file'
219
+ else
220
+ comment[:line] = line
221
+ end
222
+
223
+ options.merge! comment
216
224
  post "#{Repository.path repo}/pulls/#{pull_id}/comments", options
217
225
  end
218
226
  alias create_pull_comment create_pull_request_comment
@@ -102,6 +102,22 @@ module Octokit
102
102
  post "#{Repository.path repo}/issues/comments/#{id}/reactions", options
103
103
  end
104
104
 
105
+ # Delete a reaction from an issue comment
106
+ #
107
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository
108
+ # @param comment_id [Integer] The Issue comment id
109
+ # @param reaction_id [Integer] The Reaction id
110
+ #
111
+ # @see https://docs.github.com/en/rest/reactions/reactions#delete-an-issue-comment-reaction
112
+ #
113
+ # @example
114
+ # @client.delete_issue_comment_reaction("octokit/octokit.rb", 1, 2)
115
+ #
116
+ # @return [Boolean] Return true if reaction was deleted, false otherwise.
117
+ def delete_issue_comment_reaction(repo, comment_id, reaction_id, options = {})
118
+ boolean_from_response :delete, "#{Repository.path repo}/issues/comments/#{comment_id}/reactions/#{reaction_id}", options
119
+ end
120
+
105
121
  # List reactions for a pull request review comment
106
122
  #
107
123
  # @param repo [Integer, String, Hash, Repository] A GitHub repository
@@ -774,6 +774,49 @@ module Octokit
774
774
  def disable_vulnerability_alerts(repo, options = {})
775
775
  boolean_from_response(:delete, "#{Repository.path repo}/vulnerability-alerts", options)
776
776
  end
777
+
778
+ # Check to see if automated security fixes are enabled for a repository
779
+ #
780
+ # The authenticated user must have admin access to the repository.
781
+ #
782
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository.
783
+ # @return [Boolean] True if automated security fixes are enabled, false otherwise.
784
+ # @see https://docs.github.com/en/rest/reference/repos#check-if-automated-security-fixes-are-enabled-for-a-repository
785
+ #
786
+ # @example
787
+ # @client.automated_security_fixes_enabled?("octokit/octokit.rb")
788
+ def automated_security_fixes_enabled?(repo, options = {})
789
+ response = get "#{Repository.path repo}/automated-security-fixes", options
790
+ return response[:enabled] if @last_response.status == 200
791
+
792
+ false
793
+ end
794
+
795
+ # Enable automated security fixes for a repository
796
+ #
797
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository.
798
+ # @param options [Hash]
799
+ #
800
+ # @return [Boolean] True if vulnerability alerts enabled, false otherwise.
801
+ # @see https://docs.github.com/en/rest/reference/repos#automated-security-fixes
802
+ # @example Enable automated security fixes for a repository
803
+ # @client.enable_automated_security_fixes("octokit/octokit.rb")
804
+ def enable_automated_security_fixes(repo, options = {})
805
+ boolean_from_response(:put, "#{Repository.path repo}/automated-security-fixes", options)
806
+ end
807
+
808
+ # Disable automated security fixes for a repository
809
+ #
810
+ # @param repo [Integer, String, Hash, Repository] A GitHub repository.
811
+ # @param options [Hash]
812
+ #
813
+ # @return [Boolean] True if vulnerability alerts disabled, false otherwise.
814
+ # @see https://docs.github.com/en/rest/reference/repos#automated-security-fixes
815
+ # @example Disable automated security fixes for a repository
816
+ # @client.disable_automated_security_fixes("octokit/octokit.rb")
817
+ def disable_automated_security_fixes(repo, options = {})
818
+ boolean_from_response(:delete, "#{Repository.path repo}/automated-security-fixes", options)
819
+ end
777
820
  end
778
821
  end
779
822
  end
@@ -259,6 +259,7 @@ module Octokit
259
259
  conn_opts[:proxy] = @proxy if @proxy
260
260
  conn_opts[:ssl] = { verify_mode: @ssl_verify_mode } if @ssl_verify_mode
261
261
  conn = Faraday.new(conn_opts) do |http|
262
+ http_cache_middleware = http.builder.handlers.delete(Faraday::HttpCache) if Faraday.const_defined?(:HttpCache)
262
263
  if basic_authenticated?
263
264
  http.request(*FARADAY_BASIC_AUTH_KEYS, @login, @password)
264
265
  elsif token_authenticated?
@@ -266,6 +267,7 @@ module Octokit
266
267
  elsif bearer_authenticated?
267
268
  http.request :authorization, 'Bearer', @bearer_token
268
269
  end
270
+ http.builder.handlers.push(http_cache_middleware) unless http_cache_middleware.nil?
269
271
  http.headers['accept'] = options[:accept] if options.key?(:accept)
270
272
  end
271
273
  conn.builder.delete(Octokit::Middleware::FollowRedirects)
@@ -106,6 +106,7 @@ module Octokit
106
106
  http.headers[:accept] = default_media_type
107
107
  http.headers[:content_type] = 'application/json'
108
108
  http.headers[:user_agent] = user_agent
109
+ http_cache_middleware = http.builder.handlers.delete(Faraday::HttpCache) if Faraday.const_defined?(:HttpCache)
109
110
  if basic_authenticated?
110
111
  http.request(*FARADAY_BASIC_AUTH_KEYS, @login, @password)
111
112
  elsif token_authenticated?
@@ -115,6 +116,7 @@ module Octokit
115
116
  elsif application_authenticated?
116
117
  http.request(*FARADAY_BASIC_AUTH_KEYS, @client_id, @client_secret)
117
118
  end
119
+ http.builder.handlers.push(http_cache_middleware) unless http_cache_middleware.nil?
118
120
  end
119
121
  end
120
122
 
@@ -12,11 +12,6 @@ if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
12
12
  rescue LoadError
13
13
  Octokit::Warnable.octokit_warn 'To use retry middleware with Faraday v2.0+, install `faraday-retry` gem'
14
14
  end
15
- begin
16
- require 'faraday/multipart'
17
- rescue LoadError
18
- Octokit::Warnable.octokit_warn 'To use multipart middleware with Faraday v2.0+, install `faraday-multipart` gem; note: this is used by the ManageGHES client for uploading licenses'
19
- end
20
15
  end
21
16
 
22
17
  module Octokit
@@ -14,7 +14,7 @@ module Octokit
14
14
  # @see https://docs.github.com/en/enterprise-server@3.4/rest/enterprise-admin/management-console#create-a-github-license
15
15
  # @return nil
16
16
  def upload_license(license, settings = nil)
17
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
17
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
18
18
  conn = faraday_configuration
19
19
 
20
20
  params = {}
@@ -29,7 +29,7 @@ module Octokit
29
29
  #
30
30
  # @return nil
31
31
  def start_configuration
32
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
32
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
33
33
  post '/setup/api/configure', password_hash
34
34
  end
35
35
 
@@ -39,7 +39,7 @@ module Octokit
39
39
  #
40
40
  # @return nil
41
41
  def upgrade(license)
42
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
42
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
43
43
  conn = faraday_configuration
44
44
 
45
45
  params = {}
@@ -52,7 +52,7 @@ module Octokit
52
52
  #
53
53
  # @return [Sawyer::Resource] The installation information
54
54
  def config_status
55
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
55
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
56
56
  get '/setup/api/configcheck', password_hash
57
57
  end
58
58
  alias config_check config_status
@@ -61,7 +61,7 @@ module Octokit
61
61
  #
62
62
  # @return [Sawyer::Resource] The settings
63
63
  def settings
64
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
64
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
65
65
  get '/setup/api/settings', password_hash
66
66
  end
67
67
  alias get_settings settings
@@ -72,7 +72,7 @@ module Octokit
72
72
  #
73
73
  # @return [nil]
74
74
  def edit_settings(settings)
75
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
75
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
76
76
  queries = password_hash
77
77
  queries[:query][:settings] = settings.to_json.to_s
78
78
  put '/setup/api/settings', queries
@@ -82,7 +82,7 @@ module Octokit
82
82
  #
83
83
  # @return [Sawyer::Resource] The maintenance status
84
84
  def maintenance_status
85
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
85
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
86
86
  get '/setup/api/maintenance', password_hash
87
87
  end
88
88
  alias get_maintenance_status maintenance_status
@@ -92,7 +92,7 @@ module Octokit
92
92
  # @param maintenance [Hash] A hash configuration of the maintenance settings
93
93
  # @return [nil]
94
94
  def set_maintenance_status(maintenance)
95
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
95
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
96
96
  queries = password_hash
97
97
  queries[:query][:maintenance] = maintenance.to_json.to_s
98
98
  post '/setup/api/maintenance', queries
@@ -103,7 +103,7 @@ module Octokit
103
103
  #
104
104
  # @return [Sawyer::Resource] An array of authorized SSH keys
105
105
  def authorized_keys
106
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
106
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
107
107
  get '/setup/api/settings/authorized-keys', password_hash
108
108
  end
109
109
  alias get_authorized_keys authorized_keys
@@ -113,7 +113,7 @@ module Octokit
113
113
  # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself
114
114
  # @return [Sawyer::Resource] An array of authorized SSH keys
115
115
  def add_authorized_key(key)
116
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
116
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
117
117
  queries = password_hash
118
118
  case key
119
119
  when String
@@ -138,7 +138,7 @@ module Octokit
138
138
  # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself
139
139
  # @return [Sawyer::Resource] An array of authorized SSH keys
140
140
  def remove_authorized_key(key)
141
- octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.')
141
+ octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
142
142
  queries = password_hash
143
143
  case key
144
144
  when String
@@ -171,7 +171,14 @@ module Octokit
171
171
  def faraday_configuration
172
172
  @faraday_configuration ||= Faraday.new(url: @management_console_endpoint) do |http|
173
173
  http.headers[:user_agent] = user_agent
174
- http.request :multipart
174
+ begin
175
+ http.request :multipart
176
+ rescue Faraday::Error
177
+ raise Faraday::Error, <<~ERROR
178
+ The `faraday-multipart` gem is required to upload a license.
179
+ Please add `gem "faraday-multipart"` to your Gemfile.
180
+ ERROR
181
+ end
175
182
  http.request :url_encoded
176
183
 
177
184
  # Disabling SSL is essential for certain self-hosted Enterprise instances
data/lib/octokit/error.rb CHANGED
@@ -191,6 +191,8 @@ module Octokit
191
191
  return nil unless data.is_a?(Hash) && !Array(data[:errors]).empty?
192
192
 
193
193
  summary = +"\nError summary:\n"
194
+ return summary << data[:errors] if data[:errors].is_a?(String)
195
+
194
196
  summary << data[:errors].map do |error|
195
197
  if error.is_a? Hash
196
198
  error.map { |k, v| " #{k}: #{v}" }
@@ -36,7 +36,14 @@ module Octokit
36
36
  # @return [nil]
37
37
  def upload_license(license)
38
38
  conn = authenticated_client
39
- conn.request :multipart
39
+ begin
40
+ conn.request :multipart
41
+ rescue Faraday::Error
42
+ raise Faraday::Error, <<~ERROR
43
+ The `faraday-multipart` gem is required to upload a license.
44
+ Please add `gem "faraday-multipart"` to your Gemfile.
45
+ ERROR
46
+ end
40
47
  params = {}
41
48
  params[:license] = Faraday::FilePart.new(license, 'binary')
42
49
  params[:password] = @manage_ghes_password
@@ -81,8 +81,14 @@ module Octokit
81
81
 
82
82
  private
83
83
 
84
+ ABS_URI_REGEXP = if URI.const_defined?(:RFC2396_PARSER) # Ruby 3.4+
85
+ URI::RFC2396_PARSER.regexp.fetch(:ABS_URI)
86
+ else
87
+ URI::RFC2396_Parser.new.regexp.fetch(:ABS_URI)
88
+ end
89
+
84
90
  def validate_owner_and_name!(repo)
85
- if @owner.include?('/') || @name.include?('/') || !url.match(URI::ABS_URI)
91
+ if @owner.include?('/') || @name.include?('/') || !url.match?(ABS_URI_REGEXP)
86
92
  raise_invalid_repository!(repo)
87
93
  end
88
94
  end
@@ -3,11 +3,11 @@
3
3
  module Octokit
4
4
  # Current major release.
5
5
  # @return [Integer]
6
- MAJOR = 9
6
+ MAJOR = 10
7
7
 
8
8
  # Current minor release.
9
9
  # @return [Integer]
10
- MINOR = 1
10
+ MINOR = 0
11
11
 
12
12
  # Current patch level.
13
13
  # @return [Integer]
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octokit
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.1.0
4
+ version: 10.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wynn Netherland
8
8
  - Erik Michaels-Ober
9
9
  - Clint Shryock
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-06-11 00:00:00.000000000 Z
13
+ date: 2025-04-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
@@ -153,7 +153,7 @@ licenses:
153
153
  - MIT
154
154
  metadata:
155
155
  rubygems_mfa_required: 'true'
156
- post_install_message:
156
+ post_install_message:
157
157
  rdoc_options: []
158
158
  require_paths:
159
159
  - lib
@@ -168,8 +168,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
168
  - !ruby/object:Gem::Version
169
169
  version: 1.3.5
170
170
  requirements: []
171
- rubygems_version: 3.0.3.1
172
- signing_key:
171
+ rubygems_version: 3.4.0.dev
172
+ signing_key:
173
173
  specification_version: 4
174
174
  summary: Ruby toolkit for working with the GitHub API
175
175
  test_files: []