octokit 4.8.0 → 4.9.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/lib/octokit/client.rb +1 -0
- data/lib/octokit/client/apps.rb +13 -7
- data/lib/octokit/client/authorizations.rb +3 -1
- data/lib/octokit/client/contents.rb +2 -0
- data/lib/octokit/client/deployments.rb +10 -0
- data/lib/octokit/client/gists.rb +1 -0
- data/lib/octokit/client/issues.rb +18 -1
- data/lib/octokit/client/labels.rb +1 -1
- data/lib/octokit/client/organizations.rb +5 -0
- data/lib/octokit/client/pull_requests.rb +2 -2
- data/lib/octokit/client/releases.rb +1 -0
- data/lib/octokit/client/reviews.rb +2 -2
- data/lib/octokit/client/search.rb +15 -0
- data/lib/octokit/client/stats.rb +1 -0
- data/lib/octokit/configurable.rb +5 -1
- data/lib/octokit/connection.rb +2 -1
- data/lib/octokit/default.rb +9 -0
- data/lib/octokit/preview.rb +1 -0
- data/lib/octokit/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b938b8240c566e33d75ff8a0d65c797f652e0ec
|
4
|
+
data.tar.gz: 9b9dc7920741ba14a93c6dd9be7cf26b750453bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b72eef6e4954f798f45dfb49f990805b06411ac8f9cff2affe66738d6803f98d2e666d18248bb5742bbf1625aafd2cfd3989991642dc5af697569e19566df32
|
7
|
+
data.tar.gz: d026883962480255da7515279a57423b5c43e38b2743553727ec132e10dc1156d53688a6634f99d820cebc858d221b07f8cf8940a4eacc6017c3d45b04d968c4
|
data/lib/octokit/client.rb
CHANGED
@@ -222,6 +222,7 @@ module Octokit
|
|
222
222
|
conn_opts[:url] = @api_endpoint
|
223
223
|
conn_opts[:builder] = @middleware.dup if @middleware
|
224
224
|
conn_opts[:proxy] = @proxy if @proxy
|
225
|
+
conn_opts[:ssl] = { :verify_mode => @ssl_verify_mode } if @ssl_verify_mode
|
225
226
|
conn = Faraday.new(conn_opts) do |http|
|
226
227
|
if basic_authenticated?
|
227
228
|
http.basic_auth(@login, @password)
|
data/lib/octokit/client/apps.rb
CHANGED
@@ -10,7 +10,7 @@ module Octokit
|
|
10
10
|
#
|
11
11
|
# @see https://developer.github.com/v3/apps/#find-installations
|
12
12
|
#
|
13
|
-
# @return [Array<Sawyer::Resource>]
|
13
|
+
# @return [Array<Sawyer::Resource>] the total_count and an array of installations
|
14
14
|
def find_app_installations(options = {})
|
15
15
|
opts = ensure_api_media_type(:integrations, options)
|
16
16
|
paginate "app/installations", opts
|
@@ -33,10 +33,12 @@ module Octokit
|
|
33
33
|
#
|
34
34
|
# @see https://developer.github.com/v3/apps/#list-installations-for-user
|
35
35
|
#
|
36
|
-
# @return [
|
36
|
+
# @return [Sawyer::Resource] the total_count and an array of installations
|
37
37
|
def find_user_installations(options = {})
|
38
38
|
opts = ensure_api_media_type(:integrations, options)
|
39
|
-
paginate
|
39
|
+
paginate("user/installations", opts) do |data, last_response|
|
40
|
+
data.installations.concat last_response.data.installations
|
41
|
+
end
|
40
42
|
end
|
41
43
|
|
42
44
|
# Get a single installation
|
@@ -80,10 +82,12 @@ module Octokit
|
|
80
82
|
# @param options [Hash] A customizable set of options
|
81
83
|
# @see https://developer.github.com/v3/apps/installations/#list-repositories
|
82
84
|
#
|
83
|
-
# @return [
|
85
|
+
# @return [Sawyer::Resource] the total_count and an array of repositories
|
84
86
|
def list_app_installation_repositories(options = {})
|
85
87
|
opts = ensure_api_media_type(:integrations, options)
|
86
|
-
paginate
|
88
|
+
paginate("installation/repositories", opts) do |data, last_response|
|
89
|
+
data.repositories.concat last_response.data.repositories
|
90
|
+
end
|
87
91
|
end
|
88
92
|
alias list_installation_repos list_app_installation_repositories
|
89
93
|
|
@@ -154,10 +158,12 @@ module Octokit
|
|
154
158
|
#
|
155
159
|
# @see https://developer.github.com/apps/building-integrations/setting-up-and-registering-github-apps/identifying-users-for-github-apps/
|
156
160
|
#
|
157
|
-
# @return [
|
161
|
+
# @return [Sawyer::Resource] the total_count and an array of repositories
|
158
162
|
def find_installation_repositories_for_user(installation, options = {})
|
159
163
|
opts = ensure_api_media_type(:integrations, options)
|
160
|
-
paginate
|
164
|
+
paginate("user/installations/#{installation}/repositories", opts) do |data, last_response|
|
165
|
+
data.repositories.concat last_response.data.repositories
|
166
|
+
end
|
161
167
|
end
|
162
168
|
end
|
163
169
|
end
|
@@ -61,7 +61,7 @@ module Octokit
|
|
61
61
|
def create_authorization(options = {})
|
62
62
|
# Techincally we can omit scopes as GitHub has a default, however the
|
63
63
|
# API will reject us if we send a POST request with an empty body.
|
64
|
-
|
64
|
+
options = options.dup
|
65
65
|
if options.delete :idempotent
|
66
66
|
client_id, client_secret = fetch_client_id_and_secret(options)
|
67
67
|
raise ArgumentError.new("Client ID and Secret required for idempotent authorizations") unless client_id && client_secret
|
@@ -122,6 +122,7 @@ module Octokit
|
|
122
122
|
# @return [Array<String>] OAuth scopes
|
123
123
|
# @see https://developer.github.com/v3/oauth/#scopes
|
124
124
|
def scopes(token = @access_token, options = {})
|
125
|
+
options= options.dup
|
125
126
|
raise ArgumentError.new("Access token required") if token.nil?
|
126
127
|
|
127
128
|
auth = { "Authorization" => "token #{token}" }
|
@@ -226,6 +227,7 @@ module Octokit
|
|
226
227
|
# @example
|
227
228
|
# @client.authorize_url('xxxx')
|
228
229
|
def authorize_url(app_id = client_id, options = {})
|
230
|
+
opts = options.dup
|
229
231
|
if app_id.to_s.empty?
|
230
232
|
raise Octokit::ApplicationCredentialsRequired.new "client_id required"
|
231
233
|
end
|
@@ -30,6 +30,7 @@ module Octokit
|
|
30
30
|
# @example List the contents of lib/octokit.rb
|
31
31
|
# Octokit.contents("octokit/octokit.rb", :path => 'lib/octokit.rb')
|
32
32
|
def contents(repo, options={})
|
33
|
+
options = options.dup
|
33
34
|
repo_path = options.delete :path
|
34
35
|
url = "#{Repository.path repo}/contents/#{repo_path}"
|
35
36
|
get url, options
|
@@ -54,6 +55,7 @@ module Octokit
|
|
54
55
|
# "File content",
|
55
56
|
# :branch => "my-new-feature")
|
56
57
|
def create_contents(*args)
|
58
|
+
args = args.map { |item| item && item.dup }
|
57
59
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
58
60
|
repo = args.shift
|
59
61
|
path = args.shift
|
@@ -6,6 +6,16 @@ module Octokit
|
|
6
6
|
# @see https://developer.github.com/v3/repos/commits/deployments/
|
7
7
|
module Deployments
|
8
8
|
|
9
|
+
# Fetch a single deployment for a repository
|
10
|
+
#
|
11
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
12
|
+
# @param deployment_id [Integer, String, Repository, Hash] A GitHub repository
|
13
|
+
# @return <Sawyer::Resource> A single deployment
|
14
|
+
# @see https://developer.github.com/v3/repos/deployments/#get-a-single-deployment
|
15
|
+
def deployment(repo, deployment_id, options = {})
|
16
|
+
get("#{Repository.path repo}/deployments/#{deployment_id}", options)
|
17
|
+
end
|
18
|
+
|
9
19
|
# List all deployments for a repository
|
10
20
|
#
|
11
21
|
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
data/lib/octokit/client/gists.rb
CHANGED
@@ -50,6 +50,7 @@ module Octokit
|
|
50
50
|
# @see https://developer.github.com/v3/gists/#get-a-single-gist
|
51
51
|
# @see https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist
|
52
52
|
def gist(gist, options = {})
|
53
|
+
options = options.dup
|
53
54
|
if sha = options.delete(:sha)
|
54
55
|
get "gists/#{Gist.new(gist)}/#{sha}", options
|
55
56
|
else
|
@@ -261,7 +261,7 @@ module Octokit
|
|
261
261
|
# @return [Sawyer::Resource] The specific comment in question
|
262
262
|
# @see https://developer.github.com/v3/issues/comments/#get-a-single-comment
|
263
263
|
# @example Get comment #1194549 from an issue on octokit/octokit.rb
|
264
|
-
# Octokit.
|
264
|
+
# Octokit.issue_comment("octokit/octokit.rb", 1194549)
|
265
265
|
def issue_comment(repo, number, options = {})
|
266
266
|
paginate "#{Repository.path repo}/issues/comments/#{number}", options
|
267
267
|
end
|
@@ -329,6 +329,23 @@ module Octokit
|
|
329
329
|
def add_assignees(repo, number, assignees, options = {})
|
330
330
|
post "#{Repository.path repo}/issues/#{number}/assignees", options.merge({:assignees => assignees})
|
331
331
|
end
|
332
|
+
|
333
|
+
# Remove assignees from an issue
|
334
|
+
#
|
335
|
+
# @param repo [Integer, String, Repository, Hash] A GitHub repository
|
336
|
+
# @param number [Integer] Issue number
|
337
|
+
# @param assignees [Array] Assignees to be removed
|
338
|
+
# @return [Sawyer::Resource] Issue
|
339
|
+
# @see https://developer.github.com/v3/issues/assignees/#remove-assignees-from-an-issue
|
340
|
+
# @example Remove assignees "pengwynn" and "joeyw" from Issue #23 on octokit/octokit.rb
|
341
|
+
# Octokit.remove_assignees("octokit/octokit.rb", 23, ["pengwynn", "joeyw"])
|
342
|
+
#
|
343
|
+
# @example Remove assignees "pengwynn" from Issue #23 on octokit/octokit.rb
|
344
|
+
# Octokit.remove_assignees("octokit/octokit.rb", 23, ["pengwynn"],
|
345
|
+
# :accept => "application/vnd.github.v3+json")
|
346
|
+
def remove_assignees(repo, number, assignees, options = {})
|
347
|
+
delete "#{Repository.path repo}/issues/#{number}/assignees", options.merge({:assignees => assignees})
|
348
|
+
end
|
332
349
|
end
|
333
350
|
end
|
334
351
|
end
|
@@ -26,7 +26,7 @@ module Octokit
|
|
26
26
|
# @return [Sawyer::Resource] A single label from the repository
|
27
27
|
# @see https://developer.github.com/v3/issues/labels/#get-a-single-label
|
28
28
|
# @example Get the "V3 Addition" label from octokit/octokit.rb
|
29
|
-
# Octokit.
|
29
|
+
# Octokit.label("octokit/octokit.rb", "V3 Addition")
|
30
30
|
def label(repo, name, options = {})
|
31
31
|
get "#{Repository.path repo}/labels/#{name}", options
|
32
32
|
end
|
@@ -142,6 +142,7 @@ module Octokit
|
|
142
142
|
# @example
|
143
143
|
# Octokit.org_members('github')
|
144
144
|
def organization_members(org, options = {})
|
145
|
+
options = options.dup
|
145
146
|
path = "public_" if options.delete(:public)
|
146
147
|
paginate "#{Organization.path org}/#{path}members", options
|
147
148
|
end
|
@@ -664,6 +665,7 @@ module Octokit
|
|
664
665
|
# @see https://developer.github.com/v3/orgs/members/#get-your-organization-membership
|
665
666
|
# @see https://developer.github.com/v3/orgs/members/#get-organization-membership
|
666
667
|
def organization_membership(org, options = {})
|
668
|
+
options = options.dup
|
667
669
|
if user = options.delete(:user)
|
668
670
|
get "#{Organization.path(org)}/memberships/#{user}", options
|
669
671
|
else
|
@@ -682,6 +684,7 @@ module Octokit
|
|
682
684
|
# @see https://developer.github.com/v3/orgs/members/#edit-your-organization-membership
|
683
685
|
# @see https://developer.github.com/v3/orgs/members/#add-or-update-organization-membership
|
684
686
|
def update_organization_membership(org, options = {})
|
687
|
+
options = options.dup
|
685
688
|
if user = options.delete(:user)
|
686
689
|
put "orgs/#{org}/memberships/#{user}", options
|
687
690
|
else
|
@@ -696,9 +699,11 @@ module Octokit
|
|
696
699
|
# @return [Boolean] Success
|
697
700
|
# @see https://developer.github.com/v3/orgs/members/#remove-organization-membership
|
698
701
|
def remove_organization_membership(org, options = {})
|
702
|
+
options = options.dup
|
699
703
|
user = options.delete(:user)
|
700
704
|
user && boolean_from_response(:delete, "orgs/#{org}/memberships/#{user}", options)
|
701
705
|
end
|
706
|
+
alias :remove_org_membership :remove_organization_membership
|
702
707
|
|
703
708
|
# Initiates the generation of a migration archive.
|
704
709
|
#
|
@@ -151,8 +151,8 @@ module Octokit
|
|
151
151
|
#
|
152
152
|
# @example Get review comments, sort by updated asc since a time
|
153
153
|
# @client.pull_requests_comments("octokit/octokit.rb", {
|
154
|
-
# :sort => '
|
155
|
-
# :direction => '
|
154
|
+
# :sort => 'updated',
|
155
|
+
# :direction => 'asc',
|
156
156
|
# :since => '2010-05-04T23:45:02Z'
|
157
157
|
# })
|
158
158
|
def pull_requests_comments(repo, options = {})
|
@@ -44,6 +44,7 @@ module Octokit
|
|
44
44
|
# Update a release
|
45
45
|
#
|
46
46
|
# @param url [String] URL for the release as returned from .releases
|
47
|
+
# @option options [String] :tag_name Git tag from which to create release
|
47
48
|
# @option options [String] :target_commitish Specifies the commitish value that determines where the Git tag is created from.
|
48
49
|
# @option options [String] :name Name for the release
|
49
50
|
# @option options [String] :body Content for release notes
|
@@ -3,7 +3,7 @@ module Octokit
|
|
3
3
|
|
4
4
|
# Methods for the Reviews API
|
5
5
|
#
|
6
|
-
# @see https://developer.github.com/v3/reviews/
|
6
|
+
# @see https://developer.github.com/v3/pulls/reviews/
|
7
7
|
module Reviews
|
8
8
|
|
9
9
|
# List reviews on a pull request
|
@@ -123,7 +123,7 @@ module Octokit
|
|
123
123
|
# @see https://developer.github.com/v3/pulls/reviews/#dismiss-a-pull-request-review
|
124
124
|
#
|
125
125
|
# @example
|
126
|
-
# @client.dismiss_pull_request_review('octokit/octokit.rb', 825, 6505518)
|
126
|
+
# @client.dismiss_pull_request_review('octokit/octokit.rb', 825, 6505518, 'The message.')
|
127
127
|
#
|
128
128
|
# @return [Sawyer::Resource] Hash representing the dismissed review
|
129
129
|
def dismiss_pull_request_review(repo, number, review, message, options = {})
|
@@ -20,6 +20,21 @@ module Octokit
|
|
20
20
|
search "search/code", query, options
|
21
21
|
end
|
22
22
|
|
23
|
+
# Search commits
|
24
|
+
#
|
25
|
+
# @param query [String] Search terms and qualifiers
|
26
|
+
# @param options [Hash] Sort and pagination options
|
27
|
+
# @option options [String] :sort Sort field
|
28
|
+
# @option options [String] :order Sort order (asc or desc)
|
29
|
+
# @option options [Integer] :page Page of paginated results
|
30
|
+
# @option options [Integer] :per_page Number of items per page
|
31
|
+
# @return [Sawyer::Resource] Search results object
|
32
|
+
# @see https://developer.github.com/v3/search/#search-commits
|
33
|
+
def search_commits(query, options = {})
|
34
|
+
options = ensure_api_media_type(:commit_search, options)
|
35
|
+
search "search/commits", query, options
|
36
|
+
end
|
37
|
+
|
23
38
|
# Search issues
|
24
39
|
#
|
25
40
|
# @param query [String] Search term and qualifiers
|
data/lib/octokit/client/stats.rb
CHANGED
@@ -88,6 +88,7 @@ module Octokit
|
|
88
88
|
# @return [Array<Sawyer::Resource> or nil] Stats in metric-specific format, or nil if not yet calculated.
|
89
89
|
# @see https://developer.github.com/v3/repos/statistics/
|
90
90
|
def get_stats(repo, metric, options = {})
|
91
|
+
options = options.dup
|
91
92
|
if retry_timeout = options.delete(:retry_timeout)
|
92
93
|
retry_wait = options.delete(:retry_wait) || 0.5
|
93
94
|
timeout = Time.now + retry_timeout
|
data/lib/octokit/configurable.rb
CHANGED
@@ -45,6 +45,9 @@ module Octokit
|
|
45
45
|
# @!attribute proxy
|
46
46
|
# @see https://github.com/lostisland/faraday
|
47
47
|
# @return [String] URI for proxy server
|
48
|
+
# @!attribute ssl_verify_mode
|
49
|
+
# @see https://github.com/lostisland/faraday
|
50
|
+
# @return [String] SSL verify mode for ssl connections
|
48
51
|
# @!attribute user_agent
|
49
52
|
# @return [String] Configure User-Agent header for requests.
|
50
53
|
# @!attribute web_endpoint
|
@@ -53,7 +56,7 @@ module Octokit
|
|
53
56
|
attr_accessor :access_token, :auto_paginate, :bearer_token, :client_id,
|
54
57
|
:client_secret, :default_media_type, :connection_options,
|
55
58
|
:middleware, :netrc, :netrc_file,
|
56
|
-
:per_page, :proxy, :user_agent
|
59
|
+
:per_page, :proxy, :ssl_verify_mode, :user_agent
|
57
60
|
attr_writer :password, :web_endpoint, :api_endpoint, :login,
|
58
61
|
:management_console_endpoint, :management_console_password
|
59
62
|
|
@@ -80,6 +83,7 @@ module Octokit
|
|
80
83
|
:per_page,
|
81
84
|
:password,
|
82
85
|
:proxy,
|
86
|
+
:ssl_verify_mode,
|
83
87
|
:user_agent,
|
84
88
|
:web_endpoint
|
85
89
|
]
|
data/lib/octokit/connection.rb
CHANGED
@@ -153,7 +153,7 @@ module Octokit
|
|
153
153
|
end
|
154
154
|
end
|
155
155
|
|
156
|
-
@last_response = response = agent.call(method, URI
|
156
|
+
@last_response = response = agent.call(method, Addressable::URI.parse(path.to_s).normalize.to_s, data, options)
|
157
157
|
response.data
|
158
158
|
end
|
159
159
|
|
@@ -175,6 +175,7 @@ module Octokit
|
|
175
175
|
conn_opts = @connection_options
|
176
176
|
conn_opts[:builder] = @middleware if @middleware
|
177
177
|
conn_opts[:proxy] = @proxy if @proxy
|
178
|
+
conn_opts[:ssl] = { :verify_mode => @ssl_verify_mode } if @ssl_verify_mode
|
178
179
|
opts[:faraday] = Faraday.new(conn_opts)
|
179
180
|
|
180
181
|
opts
|
data/lib/octokit/default.rb
CHANGED
@@ -137,6 +137,15 @@ module Octokit
|
|
137
137
|
ENV['OCTOKIT_PROXY']
|
138
138
|
end
|
139
139
|
|
140
|
+
# Default SSL verify mode from ENV
|
141
|
+
# @return [Integer]
|
142
|
+
def ssl_verify_mode
|
143
|
+
# 0 is OpenSSL::SSL::VERIFY_NONE
|
144
|
+
# 1 is OpenSSL::SSL::SSL_VERIFY_PEER
|
145
|
+
# the standard default for SSL is SSL_VERIFY_PEER which requires a server certificate check on the client
|
146
|
+
ENV['OCTOKIT_SSL_VERIFY_MODE'] || 1
|
147
|
+
end
|
148
|
+
|
140
149
|
# Default User-Agent header string from ENV or {USER_AGENT}
|
141
150
|
# @return [String]
|
142
151
|
def user_agent
|
data/lib/octokit/preview.rb
CHANGED
@@ -5,6 +5,7 @@ module Octokit
|
|
5
5
|
|
6
6
|
PREVIEW_TYPES = {
|
7
7
|
:branch_protection => 'application/vnd.github.loki-preview+json'.freeze,
|
8
|
+
:commit_search => 'application/vnd.github.cloak-preview+json'.freeze,
|
8
9
|
:migrations => 'application/vnd.github.wyandotte-preview+json'.freeze,
|
9
10
|
:licenses => 'application/vnd.github.drax-preview+json'.freeze,
|
10
11
|
:source_imports => 'application/vnd.github.barred-rock-preview'.freeze,
|
data/lib/octokit/version.rb
CHANGED
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: 4.
|
4
|
+
version: 4.9.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:
|
13
|
+
date: 2018-05-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
153
|
version: 1.3.5
|
154
154
|
requirements: []
|
155
155
|
rubyforge_project:
|
156
|
-
rubygems_version: 2.5.2
|
156
|
+
rubygems_version: 2.5.2.2
|
157
157
|
signing_key:
|
158
158
|
specification_version: 4
|
159
159
|
summary: Ruby toolkit for working with the GitHub API
|