octokit 4.2.0 → 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CONTRIBUTING.md +14 -13
- data/LICENSE.md +1 -1
- data/README.md +275 -127
- data/Rakefile +20 -14
- data/lib/ext/sawyer/relation.rb +12 -0
- data/lib/octokit/arguments.rb +3 -3
- data/lib/octokit/authentication.rb +20 -14
- data/lib/octokit/client/actions_artifacts.rb +71 -0
- data/lib/octokit/client/actions_secrets.rb +161 -0
- data/lib/octokit/client/actions_workflow_jobs.rb +65 -0
- data/lib/octokit/client/actions_workflow_runs.rb +125 -0
- data/lib/octokit/client/actions_workflows.rb +68 -0
- data/lib/octokit/client/apps.rb +259 -0
- data/lib/octokit/client/checks.rb +200 -0
- data/lib/octokit/client/code_scanning.rb +190 -0
- data/lib/octokit/client/codespaces_secrets.rb +108 -0
- data/lib/octokit/client/commit_branches.rb +20 -0
- data/lib/octokit/client/commit_comments.rb +8 -8
- data/lib/octokit/client/commit_pulls.rb +20 -0
- data/lib/octokit/client/commits.rb +32 -35
- data/lib/octokit/client/community_profile.rb +21 -0
- data/lib/octokit/client/contents.rb +24 -21
- data/lib/octokit/client/dependabot_secrets.rb +108 -0
- data/lib/octokit/client/deployments.rb +29 -7
- data/lib/octokit/client/downloads.rb +5 -6
- data/lib/octokit/client/emojis.rb +3 -3
- data/lib/octokit/client/environments.rb +58 -0
- data/lib/octokit/client/events.rb +4 -4
- data/lib/octokit/client/feeds.rb +4 -5
- data/lib/octokit/client/gists.rb +36 -8
- data/lib/octokit/client/gitignore.rb +3 -3
- data/lib/octokit/client/hooks.rb +34 -30
- data/lib/octokit/client/issues.rb +97 -14
- data/lib/octokit/client/labels.rb +17 -17
- data/lib/octokit/client/legacy_search.rb +3 -3
- data/lib/octokit/client/licenses.rb +5 -8
- data/lib/octokit/client/markdown.rb +3 -3
- data/lib/octokit/client/marketplace.rb +56 -0
- data/lib/octokit/client/meta.rb +4 -5
- data/lib/octokit/client/milestones.rb +14 -14
- data/lib/octokit/client/notifications.rb +7 -11
- data/lib/octokit/client/oauth_applications.rb +116 -0
- data/lib/octokit/client/objects.rb +14 -14
- data/lib/octokit/client/organizations.rb +256 -73
- data/lib/octokit/client/pages.rb +26 -3
- data/lib/octokit/client/projects.rb +294 -0
- data/lib/octokit/client/pull_requests.rb +74 -51
- data/lib/octokit/client/rate_limit.rb +11 -13
- data/lib/octokit/client/reactions.rb +204 -0
- data/lib/octokit/client/refs.rb +34 -20
- data/lib/octokit/client/releases.rb +16 -13
- data/lib/octokit/client/repositories.rb +276 -60
- data/lib/octokit/client/repository_invitations.rb +96 -0
- data/lib/octokit/client/reviews.rb +227 -0
- data/lib/octokit/client/say.rb +4 -5
- data/lib/octokit/client/search.rb +46 -17
- data/lib/octokit/client/service_status.rb +19 -9
- data/lib/octokit/client/source_import.rb +156 -0
- data/lib/octokit/client/stats.rb +39 -17
- data/lib/octokit/client/statuses.rb +6 -6
- data/lib/octokit/client/tokens.rb +31 -0
- data/lib/octokit/client/traffic.rb +64 -0
- data/lib/octokit/client/users.rb +133 -25
- data/lib/octokit/client.rb +85 -19
- data/lib/octokit/configurable.rb +60 -32
- data/lib/octokit/connection.rb +45 -21
- data/lib/octokit/default.rb +82 -35
- data/lib/octokit/enterprise_admin_client/admin_stats.rb +14 -15
- data/lib/octokit/enterprise_admin_client/license.rb +4 -5
- data/lib/octokit/enterprise_admin_client/orgs.rb +7 -6
- data/lib/octokit/enterprise_admin_client/search_indexing.rb +8 -9
- data/lib/octokit/enterprise_admin_client/users.rb +19 -18
- data/lib/octokit/enterprise_admin_client.rb +11 -3
- data/lib/octokit/enterprise_management_console_client/management_console.rb +52 -34
- data/lib/octokit/enterprise_management_console_client.rb +9 -3
- data/lib/octokit/error.rb +144 -26
- data/lib/octokit/gist.rb +4 -5
- data/lib/octokit/manage_ghes_client/manage_ghes.rb +178 -0
- data/lib/octokit/manage_ghes_client.rb +64 -0
- data/lib/octokit/middleware/follow_redirects.rb +18 -14
- data/lib/octokit/organization.rb +3 -1
- data/lib/octokit/rate_limit.rb +11 -9
- data/lib/octokit/repo_arguments.rb +3 -4
- data/lib/octokit/repository.rb +35 -23
- data/lib/octokit/response/base_middleware.rb +10 -0
- data/lib/octokit/response/feed_parser.rb +5 -9
- data/lib/octokit/response/raise_error.rb +4 -6
- data/lib/octokit/user.rb +4 -2
- data/lib/octokit/version.rb +3 -1
- data/lib/octokit/warnable.rb +4 -5
- data/lib/octokit.rb +30 -8
- data/octokit.gemspec +12 -10
- metadata +47 -24
- data/lib/octokit/client/authorizations.rb +0 -256
- data/lib/octokit/client/pub_sub_hubbub.rb +0 -111
- data/lib/octokit/preview.rb +0 -28
@@ -1,28 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Octokit
|
2
4
|
class EnterpriseAdminClient
|
3
|
-
|
4
5
|
# Methods for the Enterprise User Administration API
|
5
6
|
#
|
6
|
-
# @see https://developer.github.com/v3/users/
|
7
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/
|
7
8
|
module Users
|
8
9
|
# Create a new user.
|
9
10
|
#
|
10
11
|
# @param login [String] The user's username.
|
11
12
|
# @param email [String] The user's email address.
|
12
|
-
# @see https://developer.github.com/v3/users
|
13
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users#create-a-new-user
|
13
14
|
# @example
|
14
15
|
# @admin_client.create_user('foobar', 'notreal@foo.bar')
|
15
16
|
def create_user(login, email, options = {})
|
16
17
|
options[:login] = login
|
17
18
|
options[:email] = email
|
18
|
-
post
|
19
|
+
post 'admin/users', options
|
19
20
|
end
|
20
21
|
|
21
22
|
# Promote an ordinary user to a site administrator
|
22
23
|
#
|
23
24
|
# @param user [String] Username of the user to promote.
|
24
25
|
# @return [Boolean] True if promote was successful, false otherwise.
|
25
|
-
# @see https://developer.github.com/v3/users
|
26
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#promote-an-ordinary-user-to-a-site-administrator
|
26
27
|
# @example
|
27
28
|
# @admin_client.promote('holman')
|
28
29
|
def promote(user, options = {})
|
@@ -33,7 +34,7 @@ module Octokit
|
|
33
34
|
#
|
34
35
|
# @param user [String] Username of the user to demote.
|
35
36
|
# @return [Boolean] True if demote was successful, false otherwise.
|
36
|
-
# @see https://developer.github.com/v3/users
|
37
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#demote-a-site-administrator-to-an-ordinary-user
|
37
38
|
# @example
|
38
39
|
# @admin_client.demote('holman')
|
39
40
|
def demote(user, options = {})
|
@@ -44,7 +45,7 @@ module Octokit
|
|
44
45
|
#
|
45
46
|
# @param old_login [String] The user's old username.
|
46
47
|
# @param new_login [String] The user's new username.
|
47
|
-
# @see https://developer.github.com/v3/users
|
48
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#rename-an-existing-user
|
48
49
|
# @example
|
49
50
|
# @admin_client.rename_user('foobar', 'foofoobar')
|
50
51
|
def rename_user(old_login, new_login, options = {})
|
@@ -55,18 +56,18 @@ module Octokit
|
|
55
56
|
# Deletes a user.
|
56
57
|
#
|
57
58
|
# @param username [String] The username to delete.
|
58
|
-
# @see https://developer.github.com/v3/users
|
59
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#delete-a-user
|
59
60
|
# @example
|
60
61
|
# @admin_client.delete_key(1)
|
61
|
-
def delete_user(
|
62
|
-
boolean_from_response :delete, "admin/users/#{
|
62
|
+
def delete_user(username, options = {})
|
63
|
+
boolean_from_response :delete, "admin/users/#{username}", options
|
63
64
|
end
|
64
65
|
|
65
66
|
# Suspend a user.
|
66
67
|
#
|
67
68
|
# @param user [String] Username of the user to suspend.
|
68
69
|
# @return [Boolean] True if suspend was successful, false otherwise.
|
69
|
-
# @see https://developer.github.com/v3/users
|
70
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#suspend-a-user
|
70
71
|
# @example
|
71
72
|
# @admin_client.suspend('holman')
|
72
73
|
def suspend(user, options = {})
|
@@ -77,7 +78,7 @@ module Octokit
|
|
77
78
|
#
|
78
79
|
# @param user [String] Username of the user to unsuspend.
|
79
80
|
# @return [Boolean] True if unsuspend was successful, false otherwise.
|
80
|
-
# @see https://developer.github.com/v3/users
|
81
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#unsuspend-a-user
|
81
82
|
# @example
|
82
83
|
# @admin_client.unsuspend('holman')
|
83
84
|
def unsuspend(user, options = {})
|
@@ -88,7 +89,7 @@ module Octokit
|
|
88
89
|
#
|
89
90
|
# @param login [String] The user to create a token for.
|
90
91
|
# @param options [Array<String>] :scopes The scopes to apply.
|
91
|
-
# @see https://developer.github.com/v3/users
|
92
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#create-an-impersonation-oauth-token
|
92
93
|
# @example
|
93
94
|
# @admin_client.create_impersonation_token('foobar', {:scopes => ['repo:write']})
|
94
95
|
def create_impersonation_token(login, options = {})
|
@@ -98,7 +99,7 @@ module Octokit
|
|
98
99
|
# Deletes an impersonation OAuth token.
|
99
100
|
#
|
100
101
|
# @param login [String] The user whose token should be deleted.
|
101
|
-
# @see https://developer.github.com/v3/users
|
102
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#delete-an-impersonation-oauth-token
|
102
103
|
# @example
|
103
104
|
# @admin_client.delete_impersonation_token('foobar')
|
104
105
|
def delete_impersonation_token(login, options = {})
|
@@ -107,21 +108,21 @@ module Octokit
|
|
107
108
|
|
108
109
|
# Lists all the public SSH keys.
|
109
110
|
#
|
110
|
-
# @see https://developer.github.com/v3/users
|
111
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#list-all-public-keys
|
111
112
|
# @example
|
112
113
|
# @admin_client.list_all_keys
|
113
114
|
def list_all_keys(options = {})
|
114
|
-
get
|
115
|
+
get 'admin/keys', options
|
115
116
|
end
|
116
117
|
|
117
118
|
# Deletes a public SSH keys.
|
118
119
|
#
|
119
120
|
# @param id [Number] The ID of the key to delete.
|
120
|
-
# @see https://developer.github.com/v3/users
|
121
|
+
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/#delete-a-public-key
|
121
122
|
# @example
|
122
123
|
# @admin_client.delete_key(1)
|
123
124
|
def delete_key(id, options = {})
|
124
|
-
boolean_from_response :delete,
|
125
|
+
boolean_from_response :delete, "admin/keys/#{id}", options
|
125
126
|
end
|
126
127
|
end
|
127
128
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'octokit/connection'
|
2
4
|
require 'octokit/configurable'
|
3
5
|
require 'octokit/warnable'
|
@@ -8,7 +10,6 @@ require 'octokit/enterprise_admin_client/search_indexing'
|
|
8
10
|
require 'octokit/enterprise_admin_client/users'
|
9
11
|
|
10
12
|
module Octokit
|
11
|
-
|
12
13
|
# EnterpriseAdminClient is only meant to be used by GitHub Enterprise Admins
|
13
14
|
# and provides access the Admin only API endpoints including Admin Stats,
|
14
15
|
# Management Console, and the Search Indexing API.
|
@@ -17,7 +18,6 @@ module Octokit
|
|
17
18
|
# and GitHub Enterprise.
|
18
19
|
# @see https://developer.github.com/v3/enterprise/
|
19
20
|
class EnterpriseAdminClient
|
20
|
-
|
21
21
|
include Octokit::Configurable
|
22
22
|
include Octokit::Connection
|
23
23
|
include Octokit::Warnable
|
@@ -29,10 +29,18 @@ module Octokit
|
|
29
29
|
|
30
30
|
def initialize(options = {})
|
31
31
|
# Use options passed in, but fall back to module defaults
|
32
|
+
#
|
33
|
+
# rubocop:disable Style/HashEachMethods
|
34
|
+
#
|
35
|
+
# This may look like a `.keys.each` which should be replaced with `#each_key`, but
|
36
|
+
# this doesn't actually work, since `#keys` is just a method we've defined ourselves.
|
37
|
+
# The class doesn't fulfill the whole `Enumerable` contract.
|
32
38
|
Octokit::Configurable.keys.each do |key|
|
39
|
+
# rubocop:enable Style/HashEachMethods
|
33
40
|
instance_variable_set(:"@#{key}", options[key] || Octokit.instance_variable_get(:"@#{key}"))
|
34
41
|
end
|
35
|
-
end
|
36
42
|
|
43
|
+
login_from_netrc unless user_authenticated? || application_authenticated?
|
44
|
+
end
|
37
45
|
end
|
38
46
|
end
|
@@ -1,34 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Octokit
|
2
4
|
class EnterpriseManagementConsoleClient
|
3
|
-
|
4
5
|
# Methods for the Enterprise Management Console API
|
5
6
|
#
|
6
|
-
# @see https://developer.github.com/v3/enterprise/management_console
|
7
|
+
# @see https://developer.github.com/v3/enterprise-admin/management_console/
|
7
8
|
module ManagementConsole
|
8
|
-
|
9
9
|
# Uploads a license for the first time
|
10
10
|
#
|
11
11
|
# @param license [String] The path to your .ghl license file.
|
12
12
|
# @param settings [Hash] A hash configuration of the initial settings.
|
13
13
|
#
|
14
|
-
# @see
|
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.15.0, please use the ManageGHES client instead.')
|
17
18
|
conn = faraday_configuration
|
18
19
|
|
19
|
-
params = {
|
20
|
+
params = {}
|
20
21
|
params[:license] = Faraday::UploadIO.new(license, 'binary')
|
21
22
|
params[:password] = @management_console_password
|
22
|
-
params[:settings] =
|
23
|
+
params[:settings] = settings.to_json.to_s unless settings.nil?
|
23
24
|
|
24
|
-
@last_response = conn.post(
|
25
|
+
@last_response = conn.post('/setup/api/start', params)
|
25
26
|
end
|
26
27
|
|
27
28
|
# Start a configuration process.
|
28
29
|
#
|
29
30
|
# @return nil
|
30
31
|
def start_configuration
|
31
|
-
|
32
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
33
|
+
post '/setup/api/configure', password_hash
|
32
34
|
end
|
33
35
|
|
34
36
|
# Upgrade an Enterprise installation
|
@@ -37,29 +39,32 @@ module Octokit
|
|
37
39
|
#
|
38
40
|
# @return nil
|
39
41
|
def upgrade(license)
|
42
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
40
43
|
conn = faraday_configuration
|
41
44
|
|
42
|
-
params = {
|
45
|
+
params = {}
|
43
46
|
params[:license] = Faraday::UploadIO.new(license, 'binary')
|
44
47
|
params[:api_key] = @management_console_password
|
45
|
-
@last_response = conn.post(
|
48
|
+
@last_response = conn.post('/setup/api/upgrade', params)
|
46
49
|
end
|
47
50
|
|
48
51
|
# Get information about the Enterprise installation
|
49
52
|
#
|
50
53
|
# @return [Sawyer::Resource] The installation information
|
51
54
|
def config_status
|
52
|
-
|
55
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
56
|
+
get '/setup/api/configcheck', password_hash
|
53
57
|
end
|
54
|
-
alias
|
58
|
+
alias config_check config_status
|
55
59
|
|
56
60
|
# Get information about the Enterprise installation
|
57
61
|
#
|
58
62
|
# @return [Sawyer::Resource] The settings
|
59
63
|
def settings
|
60
|
-
|
64
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
65
|
+
get '/setup/api/settings', password_hash
|
61
66
|
end
|
62
|
-
alias
|
67
|
+
alias get_settings settings
|
63
68
|
|
64
69
|
# Modify the Enterprise settings
|
65
70
|
#
|
@@ -67,48 +72,53 @@ module Octokit
|
|
67
72
|
#
|
68
73
|
# @return [nil]
|
69
74
|
def edit_settings(settings)
|
75
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
70
76
|
queries = password_hash
|
71
|
-
queries[:query][:settings] =
|
72
|
-
put
|
77
|
+
queries[:query][:settings] = settings.to_json.to_s
|
78
|
+
put '/setup/api/settings', queries
|
73
79
|
end
|
74
80
|
|
75
81
|
# Get information about the Enterprise maintenance status
|
76
82
|
#
|
77
83
|
# @return [Sawyer::Resource] The maintenance status
|
78
84
|
def maintenance_status
|
79
|
-
|
85
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
86
|
+
get '/setup/api/maintenance', password_hash
|
80
87
|
end
|
81
|
-
alias
|
88
|
+
alias get_maintenance_status maintenance_status
|
82
89
|
|
83
90
|
# Start (or turn off) the Enterprise maintenance mode
|
84
91
|
#
|
85
92
|
# @param maintenance [Hash] A hash configuration of the maintenance settings
|
86
93
|
# @return [nil]
|
87
94
|
def set_maintenance_status(maintenance)
|
95
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
88
96
|
queries = password_hash
|
89
|
-
queries[:query][:maintenance] =
|
90
|
-
post
|
97
|
+
queries[:query][:maintenance] = maintenance.to_json.to_s
|
98
|
+
post '/setup/api/maintenance', queries
|
91
99
|
end
|
92
|
-
alias
|
100
|
+
alias edit_maintenance_status set_maintenance_status
|
93
101
|
|
94
102
|
# Fetch the authorized SSH keys on the Enterprise install
|
95
103
|
#
|
96
104
|
# @return [Sawyer::Resource] An array of authorized SSH keys
|
97
105
|
def authorized_keys
|
98
|
-
|
106
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
107
|
+
get '/setup/api/settings/authorized-keys', password_hash
|
99
108
|
end
|
100
|
-
alias
|
109
|
+
alias get_authorized_keys authorized_keys
|
101
110
|
|
102
111
|
# Add an authorized SSH keys on the Enterprise install
|
103
112
|
#
|
104
113
|
# @param key Either the file path to a key, a File handler to the key, or the contents of the key itself
|
105
114
|
# @return [Sawyer::Resource] An array of authorized SSH keys
|
106
115
|
def add_authorized_key(key)
|
116
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
107
117
|
queries = password_hash
|
108
118
|
case key
|
109
119
|
when String
|
110
120
|
if File.exist?(key)
|
111
|
-
key = File.open(key,
|
121
|
+
key = File.open(key, 'r')
|
112
122
|
content = key.read.strip
|
113
123
|
key.close
|
114
124
|
else
|
@@ -120,7 +130,7 @@ module Octokit
|
|
120
130
|
end
|
121
131
|
|
122
132
|
queries[:query][:authorized_key] = content
|
123
|
-
post
|
133
|
+
post '/setup/api/settings/authorized-keys', queries
|
124
134
|
end
|
125
135
|
|
126
136
|
# Removes an authorized SSH keys from the Enterprise install
|
@@ -128,11 +138,12 @@ module Octokit
|
|
128
138
|
# @param key Either the file path to a key, a File handler to the key, or the contents of the key itself
|
129
139
|
# @return [Sawyer::Resource] An array of authorized SSH keys
|
130
140
|
def remove_authorized_key(key)
|
141
|
+
octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.')
|
131
142
|
queries = password_hash
|
132
143
|
case key
|
133
144
|
when String
|
134
145
|
if File.exist?(key)
|
135
|
-
key = File.open(key,
|
146
|
+
key = File.open(key, 'r')
|
136
147
|
content = key.read.strip
|
137
148
|
key.close
|
138
149
|
else
|
@@ -144,27 +155,34 @@ module Octokit
|
|
144
155
|
end
|
145
156
|
|
146
157
|
queries[:query][:authorized_key] = content
|
147
|
-
delete
|
158
|
+
delete '/setup/api/settings/authorized-keys', queries
|
148
159
|
end
|
149
|
-
alias
|
150
|
-
|
160
|
+
alias delete_authorized_key remove_authorized_key
|
151
161
|
end
|
162
|
+
|
152
163
|
private
|
153
164
|
|
154
165
|
def password_hash
|
155
|
-
{ :
|
166
|
+
{ query: { api_key: @management_console_password } }
|
156
167
|
end
|
157
168
|
|
158
169
|
# We fall back to raw Faraday for handling the licenses because I'm suspicious
|
159
|
-
# that Sawyer isn't handling binary POSTs correctly:
|
170
|
+
# that Sawyer isn't handling binary POSTs correctly: https://github.com/lostisland/sawyer/blob/03fca4c020f465ec42856d0486ec3991859b0aed/lib/sawyer/agent.rb#L85
|
160
171
|
def faraday_configuration
|
161
|
-
@faraday_configuration ||= Faraday.new(:
|
172
|
+
@faraday_configuration ||= Faraday.new(url: @management_console_endpoint) do |http|
|
162
173
|
http.headers[:user_agent] = user_agent
|
163
|
-
|
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
|
164
182
|
http.request :url_encoded
|
165
183
|
|
166
184
|
# Disabling SSL is essential for certain self-hosted Enterprise instances
|
167
|
-
if
|
185
|
+
if connection_options[:ssl] && !connection_options[:ssl][:verify]
|
168
186
|
http.ssl[:verify] = false
|
169
187
|
end
|
170
188
|
|
@@ -1,18 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'octokit/configurable'
|
2
4
|
require 'octokit/connection'
|
3
5
|
require 'octokit/warnable'
|
4
6
|
require 'octokit/enterprise_management_console_client/management_console'
|
5
7
|
|
6
8
|
module Octokit
|
7
|
-
|
8
9
|
# EnterpriseManagementConsoleClient is only meant to be used by GitHub Enterprise Admins
|
9
10
|
# and provides access to the management console API endpoints.
|
10
11
|
#
|
11
12
|
# @see Octokit::Client Use Octokit::Client for regular API use for GitHub
|
12
13
|
# and GitHub Enterprise.
|
13
|
-
# @see https://developer.github.com/v3/enterprise/management_console/
|
14
|
+
# @see https://developer.github.com/v3/enterprise-admin/management_console/
|
14
15
|
class EnterpriseManagementConsoleClient
|
15
|
-
|
16
16
|
include Octokit::Configurable
|
17
17
|
include Octokit::Connection
|
18
18
|
include Octokit::Warnable
|
@@ -20,7 +20,13 @@ module Octokit
|
|
20
20
|
|
21
21
|
def initialize(options = {})
|
22
22
|
# Use options passed in, but fall back to module defaults
|
23
|
+
# rubocop:disable Style/HashEachMethods
|
24
|
+
#
|
25
|
+
# This may look like a `.keys.each` which should be replaced with `#each_key`, but
|
26
|
+
# this doesn't actually work, since `#keys` is just a method we've defined ourselves.
|
27
|
+
# The class doesn't fulfill the whole `Enumerable` contract.
|
23
28
|
Octokit::Configurable.keys.each do |key|
|
29
|
+
# rubocop:enable Style/HashEachMethods
|
24
30
|
instance_variable_set(:"@#{key}", options[key] || Octokit.instance_variable_get(:"@#{key}"))
|
25
31
|
end
|
26
32
|
end
|