octokit 9.1.0 → 9.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f755fdeae0b35f76932ffa267d2d73e01b5d137f5f740d8e80106fc6c0bcb226
4
- data.tar.gz: 473dc0bee0251cb20935bc9e2160e7e92b851271dc67010bda79a94bef8adb68
3
+ metadata.gz: b64084ad94f7ab597007ce5baa5e9daa39e85c0270c0993cde6bf416a2834a2c
4
+ data.tar.gz: 429a34488349b5692bc28e6051571e3e4bddfd7f697be93bd0e24c7329d1bd18
5
5
  SHA512:
6
- metadata.gz: 51f43e8ac4d7082309ce0e673fa0c948f5ff62e5982a2079cec57639a047be09a12a443788993929d3ab82ec6998ed49ceaa479b5d8b3fe5deef04e29549672d
7
- data.tar.gz: bfcc814b67b08b256832fb7d168166082289a6281caa0ec81fc98ce03d376d976037e5c99c72e63d9f1440c0d1e1e5bac1c925a0fe5db6ef3d0cae7aa63e56b5
6
+ metadata.gz: c52b64720e7ffa14ab04bf59283194dd8a0b83ba73bf9acc3c0cfbb4ef36ba6e87257f7650969d597135c8c75eb3bc1bf7a3b7a20f2746c5670e92f7cea95a9f
7
+ data.tar.gz: b0598cc84a8d4571d9e3fc64d1ed63dcef618fba37e2d9e33346ef42a766e366bc2e38fc02b7c9561b0fc7fe28a7ed8984599390deb305f86af8e98b21033b29
@@ -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
@@ -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
@@ -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
@@ -7,7 +7,7 @@ module Octokit
7
7
 
8
8
  # Current minor release.
9
9
  # @return [Integer]
10
- MINOR = 1
10
+ MINOR = 2
11
11
 
12
12
  # Current patch level.
13
13
  # @return [Integer]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octokit
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.1.0
4
+ version: 9.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wynn Netherland
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-06-11 00:00:00.000000000 Z
13
+ date: 2024-10-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday