octokit 4.24.0 → 5.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 +4 -4
- data/README.md +3 -2
- data/Rakefile +5 -3
- data/lib/ext/sawyer/relation.rb +4 -2
- data/lib/octokit/arguments.rb +2 -2
- data/lib/octokit/authentication.rb +4 -5
- data/lib/octokit/client/actions_secrets.rb +2 -3
- data/lib/octokit/client/actions_workflow_runs.rb +2 -0
- data/lib/octokit/client/actions_workflows.rb +2 -1
- data/lib/octokit/client/apps.rb +26 -26
- data/lib/octokit/client/authorizations.rb +20 -17
- data/lib/octokit/client/checks.rb +5 -5
- data/lib/octokit/client/commit_branches.rb +2 -2
- data/lib/octokit/client/commit_comments.rb +8 -8
- data/lib/octokit/client/commit_pulls.rb +2 -2
- data/lib/octokit/client/commits.rb +25 -33
- data/lib/octokit/client/community_profile.rb +2 -2
- data/lib/octokit/client/contents.rb +20 -21
- data/lib/octokit/client/deployments.rb +6 -6
- data/lib/octokit/client/downloads.rb +5 -6
- data/lib/octokit/client/emojis.rb +3 -3
- data/lib/octokit/client/events.rb +4 -4
- data/lib/octokit/client/feeds.rb +4 -5
- data/lib/octokit/client/gists.rb +6 -6
- data/lib/octokit/client/gitignore.rb +3 -3
- data/lib/octokit/client/hooks.rb +10 -10
- data/lib/octokit/client/issues.rb +14 -14
- data/lib/octokit/client/labels.rb +6 -6
- data/lib/octokit/client/legacy_search.rb +3 -3
- data/lib/octokit/client/licenses.rb +3 -3
- data/lib/octokit/client/markdown.rb +3 -3
- data/lib/octokit/client/marketplace.rb +4 -4
- data/lib/octokit/client/meta.rb +4 -5
- data/lib/octokit/client/milestones.rb +5 -5
- data/lib/octokit/client/notifications.rb +6 -6
- data/lib/octokit/client/oauth_applications.rb +0 -2
- data/lib/octokit/client/objects.rb +14 -14
- data/lib/octokit/client/organizations.rb +42 -42
- data/lib/octokit/client/pages.rb +3 -3
- data/lib/octokit/client/projects.rb +18 -19
- data/lib/octokit/client/pub_sub_hubbub.rb +15 -15
- data/lib/octokit/client/pull_requests.rb +41 -42
- data/lib/octokit/client/rate_limit.rb +9 -11
- data/lib/octokit/client/reactions.rb +6 -6
- data/lib/octokit/client/refs.rb +13 -14
- data/lib/octokit/client/releases.rb +13 -13
- data/lib/octokit/client/repositories.rb +36 -36
- data/lib/octokit/client/repository_invitations.rb +3 -3
- data/lib/octokit/client/reviews.rb +7 -7
- data/lib/octokit/client/say.rb +4 -5
- data/lib/octokit/client/search.rb +9 -9
- data/lib/octokit/client/service_status.rb +2 -2
- data/lib/octokit/client/source_import.rb +6 -6
- data/lib/octokit/client/stats.rb +10 -9
- data/lib/octokit/client/statuses.rb +5 -5
- data/lib/octokit/client/traffic.rb +2 -3
- data/lib/octokit/client/users.rb +27 -26
- data/lib/octokit/client.rb +25 -11
- data/lib/octokit/configurable.rb +33 -27
- data/lib/octokit/connection.rb +19 -20
- data/lib/octokit/default.rb +16 -15
- data/lib/octokit/enterprise_admin_client/admin_stats.rb +13 -14
- data/lib/octokit/enterprise_admin_client/license.rb +3 -4
- data/lib/octokit/enterprise_admin_client/orgs.rb +3 -4
- data/lib/octokit/enterprise_admin_client/search_indexing.rb +7 -8
- data/lib/octokit/enterprise_admin_client/users.rb +5 -4
- data/lib/octokit/enterprise_admin_client.rb +9 -3
- data/lib/octokit/enterprise_management_console_client/management_console.rb +30 -30
- data/lib/octokit/enterprise_management_console_client.rb +8 -2
- data/lib/octokit/error.rb +23 -21
- data/lib/octokit/gist.rb +2 -3
- data/lib/octokit/middleware/follow_redirects.rb +12 -11
- data/lib/octokit/organization.rb +3 -1
- data/lib/octokit/preview.rb +29 -29
- data/lib/octokit/rate_limit.rb +3 -3
- data/lib/octokit/repo_arguments.rb +2 -3
- data/lib/octokit/repository.rb +23 -24
- data/lib/octokit/response/base_middleware.rb +2 -0
- data/lib/octokit/response/feed_parser.rb +3 -5
- data/lib/octokit/response/raise_error.rb +2 -2
- data/lib/octokit/user.rb +4 -2
- data/lib/octokit/version.rb +4 -2
- data/lib/octokit/warnable.rb +3 -6
- data/lib/octokit.rb +14 -6
- data/octokit.gemspec +11 -9
- metadata +23 -22
@@ -1,18 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Octokit
|
2
4
|
class EnterpriseAdminClient
|
3
|
-
|
4
5
|
# Methods for the Enterprise Admin Stats API
|
5
6
|
#
|
6
7
|
# @see https://developer.github.com/v3/enterprise-admin/admin_stats/
|
7
8
|
module AdminStats
|
8
|
-
|
9
9
|
# Get all available stats
|
10
10
|
#
|
11
11
|
# @return [Sawyer::Resource] All available stats
|
12
12
|
# @example Get all available stats
|
13
13
|
# @client.admin_stats
|
14
14
|
def admin_stats
|
15
|
-
get_admin_stats
|
15
|
+
get_admin_stats 'all'
|
16
16
|
end
|
17
17
|
|
18
18
|
# Get only repository-related stats
|
@@ -21,7 +21,7 @@ module Octokit
|
|
21
21
|
# @example Get only repository-related stats
|
22
22
|
# @client.admin_repository_stats
|
23
23
|
def admin_repository_stats
|
24
|
-
get_admin_stats
|
24
|
+
get_admin_stats 'repos'
|
25
25
|
end
|
26
26
|
|
27
27
|
# Get only hooks-related stats
|
@@ -30,7 +30,7 @@ module Octokit
|
|
30
30
|
# @example Get only hooks-related stats
|
31
31
|
# @client.admin_hooks_stats
|
32
32
|
def admin_hooks_stats
|
33
|
-
get_admin_stats
|
33
|
+
get_admin_stats 'hooks'
|
34
34
|
end
|
35
35
|
|
36
36
|
# Get only pages-related stats
|
@@ -39,7 +39,7 @@ module Octokit
|
|
39
39
|
# @example Get only pages-related stats
|
40
40
|
# @client.admin_pages_stats
|
41
41
|
def admin_pages_stats
|
42
|
-
get_admin_stats
|
42
|
+
get_admin_stats 'pages'
|
43
43
|
end
|
44
44
|
|
45
45
|
# Get only organization-related stats
|
@@ -48,7 +48,7 @@ module Octokit
|
|
48
48
|
# @example Get only organization-related stats
|
49
49
|
# @client.admin_organization_stats
|
50
50
|
def admin_organization_stats
|
51
|
-
get_admin_stats
|
51
|
+
get_admin_stats 'orgs'
|
52
52
|
end
|
53
53
|
|
54
54
|
# Get only user-related stats
|
@@ -57,7 +57,7 @@ module Octokit
|
|
57
57
|
# @example Get only user-related stats
|
58
58
|
# @client.admin_users_stats
|
59
59
|
def admin_users_stats
|
60
|
-
get_admin_stats
|
60
|
+
get_admin_stats 'users'
|
61
61
|
end
|
62
62
|
|
63
63
|
# Get only pull request-related stats
|
@@ -66,7 +66,7 @@ module Octokit
|
|
66
66
|
# @example Get only pull request-related stats
|
67
67
|
# @client.admin_pull_requests_stats
|
68
68
|
def admin_pull_requests_stats
|
69
|
-
get_admin_stats
|
69
|
+
get_admin_stats 'pulls'
|
70
70
|
end
|
71
71
|
|
72
72
|
# Get only issue-related stats
|
@@ -75,7 +75,7 @@ module Octokit
|
|
75
75
|
# @example Get only issue-related stats
|
76
76
|
# @client.admin_issues_stats
|
77
77
|
def admin_issues_stats
|
78
|
-
get_admin_stats
|
78
|
+
get_admin_stats 'issues'
|
79
79
|
end
|
80
80
|
|
81
81
|
# Get only milestone-related stats
|
@@ -84,7 +84,7 @@ module Octokit
|
|
84
84
|
# @example Get only milestone-related stats
|
85
85
|
# @client.admin_milestones_stats
|
86
86
|
def admin_milestones_stats
|
87
|
-
get_admin_stats
|
87
|
+
get_admin_stats 'milestones'
|
88
88
|
end
|
89
89
|
|
90
90
|
# Get only gist-related stats
|
@@ -93,7 +93,7 @@ module Octokit
|
|
93
93
|
# @example Get only gist-related stats
|
94
94
|
# @client.admin_gits_stats
|
95
95
|
def admin_gists_stats
|
96
|
-
get_admin_stats
|
96
|
+
get_admin_stats 'gists'
|
97
97
|
end
|
98
98
|
|
99
99
|
# Get only comment-related stats
|
@@ -102,7 +102,7 @@ module Octokit
|
|
102
102
|
# @example Get only comment-related stats
|
103
103
|
# @client.admin_comments_stats
|
104
104
|
def admin_comments_stats
|
105
|
-
get_admin_stats
|
105
|
+
get_admin_stats 'comments'
|
106
106
|
end
|
107
107
|
|
108
108
|
private
|
@@ -115,6 +115,5 @@ module Octokit
|
|
115
115
|
get "enterprise/stats/#{metric}"
|
116
116
|
end
|
117
117
|
end
|
118
|
-
|
119
118
|
end
|
120
119
|
end
|
@@ -1,18 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Octokit
|
2
4
|
class EnterpriseAdminClient
|
3
|
-
|
4
5
|
# Methods for the Enterprise License API
|
5
6
|
#
|
6
7
|
# @see https://developer.github.com/v3/enterprise-admin/license/
|
7
8
|
module License
|
8
|
-
|
9
9
|
# Get information about the Enterprise license
|
10
10
|
#
|
11
11
|
# @return [Sawyer::Resource] The license information
|
12
12
|
def license_info
|
13
|
-
get
|
13
|
+
get 'enterprise/settings/license'
|
14
14
|
end
|
15
|
-
|
16
15
|
end
|
17
16
|
end
|
18
17
|
end
|
@@ -1,11 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Octokit
|
2
4
|
class EnterpriseAdminClient
|
3
|
-
|
4
5
|
# Methods for the Enterprise Orgs API
|
5
6
|
#
|
6
7
|
# @see https://developer.github.com/v3/enterprise-admin/orgs/
|
7
8
|
module Orgs
|
8
|
-
|
9
9
|
# Create a new organization on the instance.
|
10
10
|
#
|
11
11
|
# @param login [String] The organization's username.
|
@@ -19,9 +19,8 @@ module Octokit
|
|
19
19
|
def create_organization(login, admin, options = {})
|
20
20
|
options[:login] = login
|
21
21
|
options[:admin] = admin
|
22
|
-
post
|
22
|
+
post 'admin/organizations', options
|
23
23
|
end
|
24
|
-
|
25
24
|
end
|
26
25
|
end
|
27
26
|
end
|
@@ -1,11 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Octokit
|
2
4
|
class EnterpriseAdminClient
|
3
|
-
|
4
5
|
# Methods for the Enterprise Search Indexing API
|
5
6
|
#
|
6
7
|
# @see https://developer.github.com/v3/enterprise-admin/search_indexing/
|
7
8
|
module SearchIndexing
|
8
|
-
|
9
9
|
# Queue a User or Organization to be indexed
|
10
10
|
#
|
11
11
|
# @param user [String] A GitHub Enterprise user or organization
|
@@ -13,7 +13,7 @@ module Octokit
|
|
13
13
|
def index_user(user)
|
14
14
|
queue_index user
|
15
15
|
end
|
16
|
-
alias
|
16
|
+
alias index_organization index_user
|
17
17
|
|
18
18
|
# Queue a Repository to be indexed
|
19
19
|
#
|
@@ -46,7 +46,7 @@ module Octokit
|
|
46
46
|
def index_users_repositories(user)
|
47
47
|
queue_index "#{user}/*"
|
48
48
|
end
|
49
|
-
alias
|
49
|
+
alias index_organizations_repositories index_users_repositories
|
50
50
|
|
51
51
|
# Queue an index of all the issues across all of a user's or
|
52
52
|
# organization's repositories
|
@@ -56,7 +56,7 @@ module Octokit
|
|
56
56
|
def index_users_repositories_issues(user)
|
57
57
|
queue_index "#{user}/*/issues"
|
58
58
|
end
|
59
|
-
alias
|
59
|
+
alias index_organizations_repositories_issues index_users_repositories_issues
|
60
60
|
|
61
61
|
# Queue an index of all the code contained in all of a user's or
|
62
62
|
# organization's repositories
|
@@ -66,7 +66,7 @@ module Octokit
|
|
66
66
|
def index_users_repositories_code(user)
|
67
67
|
queue_index "#{user}/*/code"
|
68
68
|
end
|
69
|
-
alias
|
69
|
+
alias index_organizations_repositories_code index_users_repositories_code
|
70
70
|
|
71
71
|
private
|
72
72
|
|
@@ -75,9 +75,8 @@ module Octokit
|
|
75
75
|
# @param target [String] Target to index
|
76
76
|
# @return [Sawyer:Resource] Result of the queuing containing `:message`
|
77
77
|
def queue_index(target)
|
78
|
-
post
|
78
|
+
post 'staff/indexing_jobs', target: target
|
79
79
|
end
|
80
80
|
end
|
81
|
-
|
82
81
|
end
|
83
82
|
end
|
@@ -1,6 +1,7 @@
|
|
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
7
|
# @see https://developer.github.com/enterprise/v3/enterprise-admin/users/
|
@@ -15,7 +16,7 @@ module Octokit
|
|
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
|
@@ -111,7 +112,7 @@ module Octokit
|
|
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.
|
@@ -121,7 +122,7 @@ module Octokit
|
|
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,12 +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
42
|
|
36
43
|
login_from_netrc unless user_authenticated? || application_authenticated?
|
37
44
|
end
|
38
|
-
|
39
45
|
end
|
40
46
|
end
|
@@ -1,11 +1,11 @@
|
|
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
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.
|
@@ -16,19 +16,19 @@ module Octokit
|
|
16
16
|
def upload_license(license, settings = nil)
|
17
17
|
conn = faraday_configuration
|
18
18
|
|
19
|
-
params = {
|
19
|
+
params = {}
|
20
20
|
params[:license] = Faraday::UploadIO.new(license, 'binary')
|
21
21
|
params[:password] = @management_console_password
|
22
|
-
params[:settings] =
|
22
|
+
params[:settings] = settings.to_json.to_s unless settings.nil?
|
23
23
|
|
24
|
-
@last_response = conn.post(
|
24
|
+
@last_response = conn.post('/setup/api/start', params)
|
25
25
|
end
|
26
26
|
|
27
27
|
# Start a configuration process.
|
28
28
|
#
|
29
29
|
# @return nil
|
30
30
|
def start_configuration
|
31
|
-
post
|
31
|
+
post '/setup/api/configure', password_hash
|
32
32
|
end
|
33
33
|
|
34
34
|
# Upgrade an Enterprise installation
|
@@ -39,27 +39,27 @@ module Octokit
|
|
39
39
|
def upgrade(license)
|
40
40
|
conn = faraday_configuration
|
41
41
|
|
42
|
-
params = {
|
42
|
+
params = {}
|
43
43
|
params[:license] = Faraday::UploadIO.new(license, 'binary')
|
44
44
|
params[:api_key] = @management_console_password
|
45
|
-
@last_response = conn.post(
|
45
|
+
@last_response = conn.post('/setup/api/upgrade', params)
|
46
46
|
end
|
47
47
|
|
48
48
|
# Get information about the Enterprise installation
|
49
49
|
#
|
50
50
|
# @return [Sawyer::Resource] The installation information
|
51
51
|
def config_status
|
52
|
-
get
|
52
|
+
get '/setup/api/configcheck', password_hash
|
53
53
|
end
|
54
|
-
alias
|
54
|
+
alias config_check config_status
|
55
55
|
|
56
56
|
# Get information about the Enterprise installation
|
57
57
|
#
|
58
58
|
# @return [Sawyer::Resource] The settings
|
59
59
|
def settings
|
60
|
-
get
|
60
|
+
get '/setup/api/settings', password_hash
|
61
61
|
end
|
62
|
-
alias
|
62
|
+
alias get_settings settings
|
63
63
|
|
64
64
|
# Modify the Enterprise settings
|
65
65
|
#
|
@@ -68,17 +68,17 @@ module Octokit
|
|
68
68
|
# @return [nil]
|
69
69
|
def edit_settings(settings)
|
70
70
|
queries = password_hash
|
71
|
-
queries[:query][:settings] =
|
72
|
-
put
|
71
|
+
queries[:query][:settings] = settings.to_json.to_s
|
72
|
+
put '/setup/api/settings', queries
|
73
73
|
end
|
74
74
|
|
75
75
|
# Get information about the Enterprise maintenance status
|
76
76
|
#
|
77
77
|
# @return [Sawyer::Resource] The maintenance status
|
78
78
|
def maintenance_status
|
79
|
-
get
|
79
|
+
get '/setup/api/maintenance', password_hash
|
80
80
|
end
|
81
|
-
alias
|
81
|
+
alias get_maintenance_status maintenance_status
|
82
82
|
|
83
83
|
# Start (or turn off) the Enterprise maintenance mode
|
84
84
|
#
|
@@ -86,18 +86,18 @@ module Octokit
|
|
86
86
|
# @return [nil]
|
87
87
|
def set_maintenance_status(maintenance)
|
88
88
|
queries = password_hash
|
89
|
-
queries[:query][:maintenance] =
|
90
|
-
post
|
89
|
+
queries[:query][:maintenance] = maintenance.to_json.to_s
|
90
|
+
post '/setup/api/maintenance', queries
|
91
91
|
end
|
92
|
-
alias
|
92
|
+
alias edit_maintenance_status set_maintenance_status
|
93
93
|
|
94
94
|
# Fetch the authorized SSH keys on the Enterprise install
|
95
95
|
#
|
96
96
|
# @return [Sawyer::Resource] An array of authorized SSH keys
|
97
97
|
def authorized_keys
|
98
|
-
get
|
98
|
+
get '/setup/api/settings/authorized-keys', password_hash
|
99
99
|
end
|
100
|
-
alias
|
100
|
+
alias get_authorized_keys authorized_keys
|
101
101
|
|
102
102
|
# Add an authorized SSH keys on the Enterprise install
|
103
103
|
#
|
@@ -108,7 +108,7 @@ module Octokit
|
|
108
108
|
case key
|
109
109
|
when String
|
110
110
|
if File.exist?(key)
|
111
|
-
key = File.open(key,
|
111
|
+
key = File.open(key, 'r')
|
112
112
|
content = key.read.strip
|
113
113
|
key.close
|
114
114
|
else
|
@@ -120,7 +120,7 @@ module Octokit
|
|
120
120
|
end
|
121
121
|
|
122
122
|
queries[:query][:authorized_key] = content
|
123
|
-
post
|
123
|
+
post '/setup/api/settings/authorized-keys', queries
|
124
124
|
end
|
125
125
|
|
126
126
|
# Removes an authorized SSH keys from the Enterprise install
|
@@ -132,7 +132,7 @@ module Octokit
|
|
132
132
|
case key
|
133
133
|
when String
|
134
134
|
if File.exist?(key)
|
135
|
-
key = File.open(key,
|
135
|
+
key = File.open(key, 'r')
|
136
136
|
content = key.read.strip
|
137
137
|
key.close
|
138
138
|
else
|
@@ -144,27 +144,27 @@ module Octokit
|
|
144
144
|
end
|
145
145
|
|
146
146
|
queries[:query][:authorized_key] = content
|
147
|
-
delete
|
147
|
+
delete '/setup/api/settings/authorized-keys', queries
|
148
148
|
end
|
149
|
-
alias
|
150
|
-
|
149
|
+
alias delete_authorized_key remove_authorized_key
|
151
150
|
end
|
151
|
+
|
152
152
|
private
|
153
153
|
|
154
154
|
def password_hash
|
155
|
-
{ :
|
155
|
+
{ query: { api_key: @management_console_password } }
|
156
156
|
end
|
157
157
|
|
158
158
|
# We fall back to raw Faraday for handling the licenses because I'm suspicious
|
159
159
|
# that Sawyer isn't handling binary POSTs correctly: https://github.com/lostisland/sawyer/blob/03fca4c020f465ec42856d0486ec3991859b0aed/lib/sawyer/agent.rb#L85
|
160
160
|
def faraday_configuration
|
161
|
-
@faraday_configuration ||= Faraday.new(:
|
161
|
+
@faraday_configuration ||= Faraday.new(url: @management_console_endpoint) do |http|
|
162
162
|
http.headers[:user_agent] = user_agent
|
163
163
|
http.request :multipart
|
164
164
|
http.request :url_encoded
|
165
165
|
|
166
166
|
# Disabling SSL is essential for certain self-hosted Enterprise instances
|
167
|
-
if
|
167
|
+
if connection_options[:ssl] && !connection_options[:ssl][:verify]
|
168
168
|
http.ssl[:verify] = false
|
169
169
|
end
|
170
170
|
|
@@ -1,10 +1,11 @@
|
|
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
|
#
|
@@ -12,7 +13,6 @@ module Octokit
|
|
12
13
|
# and GitHub Enterprise.
|
13
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
|
data/lib/octokit/error.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Octokit
|
2
4
|
# Custom error class for rescuing from all GitHub errors
|
3
5
|
class Error < StandardError
|
@@ -34,13 +36,13 @@ module Octokit
|
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
def build_error_context
|
40
|
+
if RATE_LIMITED_ERRORS.include?(self.class)
|
41
|
+
@context = Octokit::RateLimit.from_response(@response)
|
42
|
+
end
|
43
|
+
end
|
42
44
|
|
43
|
-
def initialize(response=nil)
|
45
|
+
def initialize(response = nil)
|
44
46
|
@response = response
|
45
47
|
super(build_error_message)
|
46
48
|
build_error_context
|
@@ -118,7 +120,7 @@ module Octokit
|
|
118
120
|
# Array of validation errors
|
119
121
|
# @return [Array<Hash>] Error info
|
120
122
|
def errors
|
121
|
-
if data
|
123
|
+
if data&.is_a?(Hash)
|
122
124
|
data[:errors] || []
|
123
125
|
else
|
124
126
|
[]
|
@@ -152,15 +154,13 @@ module Octokit
|
|
152
154
|
@data ||=
|
153
155
|
if (body = @response[:body]) && !body.empty?
|
154
156
|
if body.is_a?(String) &&
|
155
|
-
|
156
|
-
|
157
|
+
@response[:response_headers] &&
|
158
|
+
@response[:response_headers][:content_type] =~ /json/
|
157
159
|
|
158
160
|
Sawyer::Agent.serializer.decode(body)
|
159
161
|
else
|
160
162
|
body
|
161
163
|
end
|
162
|
-
else
|
163
|
-
nil
|
164
164
|
end
|
165
165
|
end
|
166
166
|
|
@@ -183,7 +183,7 @@ module Octokit
|
|
183
183
|
summary = +"\nError summary:\n"
|
184
184
|
summary << data[:errors].map do |error|
|
185
185
|
if error.is_a? Hash
|
186
|
-
error.map { |k,v| " #{k}: #{v}" }
|
186
|
+
error.map { |k, v| " #{k}: #{v}" }
|
187
187
|
else
|
188
188
|
" #{error}"
|
189
189
|
end
|
@@ -196,18 +196,20 @@ module Octokit
|
|
196
196
|
return nil if @response.nil?
|
197
197
|
|
198
198
|
message = +"#{@response[:method].to_s.upcase} "
|
199
|
-
message << redact_url(@response[:url].to_s.dup) +
|
199
|
+
message << redact_url(@response[:url].to_s.dup) + ': '
|
200
200
|
message << "#{@response[:status]} - "
|
201
|
-
message <<
|
202
|
-
message <<
|
203
|
-
message <<
|
201
|
+
message << response_message.to_s unless response_message.nil?
|
202
|
+
message << response_error.to_s unless response_error.nil?
|
203
|
+
message << response_error_summary.to_s unless response_error_summary.nil?
|
204
204
|
message << " // See: #{documentation_url}" unless documentation_url.nil?
|
205
205
|
message
|
206
206
|
end
|
207
207
|
|
208
208
|
def redact_url(url_string)
|
209
209
|
%w[client_secret access_token].each do |token|
|
210
|
-
|
210
|
+
if url_string.include? token
|
211
|
+
url_string.gsub!(/#{token}=\S+/, "#{token}=(redacted)")
|
212
|
+
end
|
211
213
|
end
|
212
214
|
url_string
|
213
215
|
end
|
@@ -225,10 +227,10 @@ module Octokit
|
|
225
227
|
# Raised when GitHub returns a 401 HTTP status code
|
226
228
|
# and headers include "X-GitHub-OTP"
|
227
229
|
class OneTimePasswordRequired < ClientError
|
228
|
-
|
229
|
-
OTP_DELIVERY_PATTERN = /required; (\w+)/i
|
230
|
+
# @private
|
231
|
+
OTP_DELIVERY_PATTERN = /required; (\w+)/i.freeze
|
230
232
|
|
231
|
-
|
233
|
+
# @private
|
232
234
|
def self.required_header(headers)
|
233
235
|
OTP_DELIVERY_PATTERN.match headers['X-GitHub-OTP'].to_s
|
234
236
|
end
|
@@ -350,5 +352,5 @@ module Octokit
|
|
350
352
|
# Raised when a repository is created with an invalid format
|
351
353
|
class InvalidRepository < ArgumentError; end
|
352
354
|
|
353
|
-
RATE_LIMITED_ERRORS = [Octokit::TooManyRequests, Octokit::AbuseDetected]
|
355
|
+
RATE_LIMITED_ERRORS = [Octokit::TooManyRequests, Octokit::AbuseDetected].freeze
|
354
356
|
end
|
data/lib/octokit/gist.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
module Octokit
|
3
4
|
# Class to parse and create Gist URLs
|
4
5
|
class Gist
|
5
|
-
|
6
6
|
# !@attribute id
|
7
7
|
# @return [String] Gist ID
|
8
8
|
attr_accessor :id
|
@@ -31,6 +31,5 @@ module Octokit
|
|
31
31
|
def url
|
32
32
|
"https://gist.github.com/#{@id}"
|
33
33
|
end
|
34
|
-
|
35
34
|
end
|
36
35
|
end
|