octokit 4.15.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +2 -4
  3. data/README.md +104 -80
  4. data/Rakefile +5 -3
  5. data/lib/ext/sawyer/relation.rb +4 -2
  6. data/lib/octokit/arguments.rb +2 -2
  7. data/lib/octokit/authentication.rb +12 -14
  8. data/lib/octokit/client/actions_artifacts.rb +71 -0
  9. data/lib/octokit/client/actions_secrets.rb +59 -0
  10. data/lib/octokit/client/actions_workflow_jobs.rb +65 -0
  11. data/lib/octokit/client/actions_workflow_runs.rb +125 -0
  12. data/lib/octokit/client/actions_workflows.rb +68 -0
  13. data/lib/octokit/client/apps.rb +53 -53
  14. data/lib/octokit/client/checks.rb +18 -29
  15. data/lib/octokit/client/commit_branches.rb +20 -0
  16. data/lib/octokit/client/commit_comments.rb +8 -8
  17. data/lib/octokit/client/commit_pulls.rb +2 -2
  18. data/lib/octokit/client/commits.rb +31 -34
  19. data/lib/octokit/client/community_profile.rb +2 -3
  20. data/lib/octokit/client/contents.rb +24 -21
  21. data/lib/octokit/client/deployments.rb +16 -6
  22. data/lib/octokit/client/downloads.rb +5 -6
  23. data/lib/octokit/client/emojis.rb +3 -3
  24. data/lib/octokit/client/events.rb +4 -4
  25. data/lib/octokit/client/feeds.rb +4 -5
  26. data/lib/octokit/client/gists.rb +6 -6
  27. data/lib/octokit/client/gitignore.rb +3 -3
  28. data/lib/octokit/client/hooks.rb +9 -19
  29. data/lib/octokit/client/issues.rb +14 -15
  30. data/lib/octokit/client/labels.rb +10 -10
  31. data/lib/octokit/client/legacy_search.rb +3 -3
  32. data/lib/octokit/client/licenses.rb +3 -6
  33. data/lib/octokit/client/markdown.rb +3 -3
  34. data/lib/octokit/client/marketplace.rb +4 -4
  35. data/lib/octokit/client/meta.rb +4 -5
  36. data/lib/octokit/client/milestones.rb +5 -5
  37. data/lib/octokit/client/notifications.rb +6 -6
  38. data/lib/octokit/client/oauth_applications.rb +116 -0
  39. data/lib/octokit/client/objects.rb +14 -14
  40. data/lib/octokit/client/organizations.rb +112 -70
  41. data/lib/octokit/client/pages.rb +5 -7
  42. data/lib/octokit/client/projects.rb +44 -64
  43. data/lib/octokit/client/pub_sub_hubbub.rb +16 -16
  44. data/lib/octokit/client/pull_requests.rb +52 -42
  45. data/lib/octokit/client/rate_limit.rb +9 -11
  46. data/lib/octokit/client/reactions.rb +6 -11
  47. data/lib/octokit/client/refs.rb +32 -19
  48. data/lib/octokit/client/releases.rb +13 -13
  49. data/lib/octokit/client/repositories.rb +123 -69
  50. data/lib/octokit/client/repository_invitations.rb +3 -3
  51. data/lib/octokit/client/reviews.rb +7 -7
  52. data/lib/octokit/client/say.rb +4 -5
  53. data/lib/octokit/client/search.rb +24 -11
  54. data/lib/octokit/client/service_status.rb +19 -9
  55. data/lib/octokit/client/source_import.rb +7 -12
  56. data/lib/octokit/client/stats.rb +10 -9
  57. data/lib/octokit/client/statuses.rb +5 -5
  58. data/lib/octokit/client/tokens.rb +31 -0
  59. data/lib/octokit/client/traffic.rb +6 -11
  60. data/lib/octokit/client/users.rb +104 -24
  61. data/lib/octokit/client.rb +44 -18
  62. data/lib/octokit/configurable.rb +34 -30
  63. data/lib/octokit/connection.rb +28 -26
  64. data/lib/octokit/default.rb +46 -35
  65. data/lib/octokit/enterprise_admin_client/admin_stats.rb +13 -14
  66. data/lib/octokit/enterprise_admin_client/license.rb +3 -4
  67. data/lib/octokit/enterprise_admin_client/orgs.rb +3 -4
  68. data/lib/octokit/enterprise_admin_client/search_indexing.rb +7 -8
  69. data/lib/octokit/enterprise_admin_client/users.rb +5 -4
  70. data/lib/octokit/enterprise_admin_client.rb +9 -3
  71. data/lib/octokit/enterprise_management_console_client/management_console.rb +32 -32
  72. data/lib/octokit/enterprise_management_console_client.rb +8 -2
  73. data/lib/octokit/error.rb +72 -27
  74. data/lib/octokit/gist.rb +2 -3
  75. data/lib/octokit/middleware/follow_redirects.rb +15 -11
  76. data/lib/octokit/organization.rb +3 -1
  77. data/lib/octokit/rate_limit.rb +3 -3
  78. data/lib/octokit/repo_arguments.rb +2 -3
  79. data/lib/octokit/repository.rb +24 -24
  80. data/lib/octokit/response/base_middleware.rb +10 -0
  81. data/lib/octokit/response/feed_parser.rb +5 -9
  82. data/lib/octokit/response/raise_error.rb +4 -6
  83. data/lib/octokit/user.rb +4 -2
  84. data/lib/octokit/version.rb +4 -2
  85. data/lib/octokit/warnable.rb +4 -5
  86. data/lib/octokit.rb +15 -8
  87. data/octokit.gemspec +12 -10
  88. metadata +25 -17
  89. data/lib/octokit/client/authorizations.rb +0 -250
  90. data/lib/octokit/preview.rb +0 -46
@@ -1,19 +1,21 @@
1
- module Octokit
1
+ # frozen_string_literal: true
2
2
 
3
+ module Octokit
3
4
  # Class to parse GitHub repository owner and name from
4
5
  # URLs and to generate URLs
5
6
  class Repository
6
7
  attr_accessor :owner, :name, :id
7
- NAME_WITH_OWNER_PATTERN = /\A[\w.-]+\/[\w.-]+\z/i
8
+
9
+ NAME_WITH_OWNER_PATTERN = %r{\A[\w.-]+/[\w.-]+\z}i.freeze
8
10
 
9
11
  # Instantiate from a GitHub repository URL
10
12
  #
11
13
  # @return [Repository]
12
14
  def self.from_url(url)
13
- new URI.parse(url).path[1..-1].
14
- gsub(/^repos\//,'').
15
- split('/', 3)[0..1].
16
- join('/')
15
+ new URI.parse(url).path[1..-1]
16
+ .gsub(%r{^repos/}, '')
17
+ .split('/', 3)[0..1]
18
+ .join('/')
17
19
  end
18
20
 
19
21
  # @raise [Octokit::InvalidRepository] if the repository
@@ -23,7 +25,7 @@ module Octokit
23
25
  when Integer
24
26
  @id = repo
25
27
  when NAME_WITH_OWNER_PATTERN
26
- @owner, @name = repo.split("/")
28
+ @owner, @name = repo.split('/')
27
29
  when Repository
28
30
  @owner = repo.owner
29
31
  @name = repo.name
@@ -33,9 +35,7 @@ module Octokit
33
35
  else
34
36
  raise_invalid_repository!(repo)
35
37
  end
36
- if @owner && @name
37
- validate_owner_and_name!(repo)
38
- end
38
+ validate_owner_and_name!(repo) if @owner && @name
39
39
  end
40
40
 
41
41
  # Repository owner/name
@@ -43,7 +43,7 @@ module Octokit
43
43
  def slug
44
44
  "#{@owner}/#{@name}"
45
45
  end
46
- alias :to_s :slug
46
+ alias to_s slug
47
47
 
48
48
  # @return [String] Repository API path
49
49
  def path
@@ -54,7 +54,7 @@ module Octokit
54
54
  # Get the api path for a repo
55
55
  # @param repo [Integer, String, Hash, Repository] A GitHub repository.
56
56
  # @return [String] Api path.
57
- def self.path repo
57
+ def self.path(repo)
58
58
  new(repo).path
59
59
  end
60
60
 
@@ -74,22 +74,22 @@ module Octokit
74
74
  "#{Octokit.web_endpoint}#{slug}"
75
75
  end
76
76
 
77
- alias :user :owner
78
- alias :username :owner
79
- alias :repo :name
77
+ alias user owner
78
+ alias username owner
79
+ alias repo name
80
80
 
81
81
  private
82
82
 
83
- def validate_owner_and_name!(repo)
84
- if @owner.include?('/') || @name.include?('/') || !url.match(URI::ABS_URI)
85
- raise_invalid_repository!(repo)
86
- end
83
+ def validate_owner_and_name!(repo)
84
+ if @owner.include?('/') || @name.include?('/') || !url.match(URI::ABS_URI)
85
+ raise_invalid_repository!(repo)
87
86
  end
87
+ end
88
88
 
89
- def raise_invalid_repository!(repo)
90
- msg = "#{repo.inspect} is invalid as a repository identifier. " +
91
- "Use the user/repo (String) format, or the repository ID (Integer), or a hash containing :repo and :user keys."
92
- raise Octokit::InvalidRepository, msg
93
- end
89
+ def raise_invalid_repository!(repo)
90
+ msg = "#{repo.inspect} is invalid as a repository identifier. " \
91
+ 'Use the user/repo (String) format, or the repository ID (Integer), or a hash containing :repo and :user keys.'
92
+ raise Octokit::InvalidRepository, msg
93
+ end
94
94
  end
95
95
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+
5
+ module Octokit
6
+ module Response
7
+ # In Faraday 2.x, Faraday::Response::Middleware was removed
8
+ BaseMiddleware = defined?(Faraday::Response::Middleware) ? Faraday::Response::Middleware : Faraday::Middleware
9
+ end
10
+ end
@@ -1,21 +1,17 @@
1
- require 'faraday'
1
+ # frozen_string_literal: true
2
2
 
3
- module Octokit
3
+ require 'octokit/response/base_middleware'
4
4
 
5
+ module Octokit
5
6
  module Response
6
-
7
7
  # Parses RSS and Atom feed responses.
8
- class FeedParser < Faraday::Response::Middleware
9
-
10
- private
11
-
8
+ class FeedParser < BaseMiddleware
12
9
  def on_complete(env)
13
- if env[:response_headers]["content-type"] =~ /(\batom|\brss)/
10
+ if env[:response_headers]['content-type'] =~ /(\batom|\brss)/
14
11
  require 'rss'
15
12
  env[:body] = RSS::Parser.parse env[:body]
16
13
  end
17
14
  end
18
-
19
15
  end
20
16
  end
21
17
  end
@@ -1,16 +1,14 @@
1
- require 'faraday'
1
+ # frozen_string_literal: true
2
+
3
+ require 'octokit/response/base_middleware'
2
4
  require 'octokit/error'
3
5
 
4
6
  module Octokit
5
7
  # Faraday response middleware
6
8
  module Response
7
-
8
9
  # This class raises an Octokit-flavored exception based
9
10
  # HTTP status codes returned by the API
10
- class RaiseError < Faraday::Response::Middleware
11
-
12
- private
13
-
11
+ class RaiseError < BaseMiddleware
14
12
  def on_complete(response)
15
13
  if error = Octokit::Error.from_response(response)
16
14
  raise error
data/lib/octokit/user.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  # GitHub user class to generate API path urls
3
5
  class User
@@ -5,14 +7,14 @@ module Octokit
5
7
  #
6
8
  # @param user [String, Integer] GitHub user login or id
7
9
  # @return [String] User Api path
8
- def self.path user
10
+ def self.path(user)
9
11
  case user
10
12
  when String
11
13
  "users/#{user}"
12
14
  when Integer
13
15
  "user/#{user}"
14
16
  else
15
- "user"
17
+ 'user'
16
18
  end
17
19
  end
18
20
  end
@@ -1,11 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Octokit
2
4
  # Current major release.
3
5
  # @return [Integer]
4
- MAJOR = 4
6
+ MAJOR = 6
5
7
 
6
8
  # Current minor release.
7
9
  # @return [Integer]
8
- MINOR = 15
10
+ MINOR = 0
9
11
 
10
12
  # Current patch level.
11
13
  # @return [Integer]
@@ -1,17 +1,16 @@
1
- module Octokit
1
+ # frozen_string_literal: true
2
2
 
3
+ module Octokit
3
4
  # Allows warnings to be suppressed via environment variable.
4
5
  module Warnable
6
+ module_function
5
7
 
6
8
  # Wrapper around Kernel#warn to print warnings unless
7
9
  # OCTOKIT_SILENT is set to true.
8
10
  #
9
11
  # @return [nil]
10
12
  def octokit_warn(*message)
11
- unless ENV['OCTOKIT_SILENT']
12
- warn message
13
- end
13
+ warn message unless ENV['OCTOKIT_SILENT']
14
14
  end
15
15
  end
16
16
  end
17
-
data/lib/octokit.rb CHANGED
@@ -1,11 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'octokit/default'
1
4
  require 'octokit/client'
2
5
  require 'octokit/enterprise_admin_client'
3
6
  require 'octokit/enterprise_management_console_client'
4
- require 'octokit/default'
5
7
 
6
8
  # Ruby toolkit for the GitHub API
7
9
  module Octokit
8
-
9
10
  class << self
10
11
  include Octokit::Configurable
11
12
 
@@ -14,6 +15,7 @@ module Octokit
14
15
  # @return [Octokit::Client] API wrapper
15
16
  def client
16
17
  return @client if defined?(@client) && @client.same_options?(options)
18
+
17
19
  @client = Octokit::Client.new(options)
18
20
  end
19
21
 
@@ -21,7 +23,10 @@ module Octokit
21
23
  #
22
24
  # @return [Octokit::EnterpriseAdminClient] API wrapper
23
25
  def enterprise_admin_client
24
- return @enterprise_admin_client if defined?(@enterprise_admin_client) && @enterprise_admin_client.same_options?(options)
26
+ if defined?(@enterprise_admin_client) && @enterprise_admin_client.same_options?(options)
27
+ return @enterprise_admin_client
28
+ end
29
+
25
30
  @enterprise_admin_client = Octokit::EnterpriseAdminClient.new(options)
26
31
  end
27
32
 
@@ -29,16 +34,19 @@ module Octokit
29
34
  #
30
35
  # @return [Octokit::EnterpriseManagementConsoleClient] API wrapper
31
36
  def enterprise_management_console_client
32
- return @enterprise_management_console_client if defined?(@enterprise_management_console_client) && @enterprise_management_console_client.same_options?(options)
37
+ if defined?(@enterprise_management_console_client) && @enterprise_management_console_client.same_options?(options)
38
+ return @enterprise_management_console_client
39
+ end
40
+
33
41
  @enterprise_management_console_client = Octokit::EnterpriseManagementConsoleClient.new(options)
34
42
  end
35
43
 
36
44
  private
37
45
 
38
- def respond_to_missing?(method_name, include_private=false)
46
+ def respond_to_missing?(method_name, include_private = false)
39
47
  client.respond_to?(method_name, include_private) ||
40
- enterprise_admin_client.respond_to?(method_name, include_private) ||
41
- enterprise_management_console_client.respond_to?(method_name, include_private)
48
+ enterprise_admin_client.respond_to?(method_name, include_private) ||
49
+ enterprise_management_console_client.respond_to?(method_name, include_private)
42
50
  end
43
51
 
44
52
  def method_missing(method_name, *args, &block)
@@ -52,7 +60,6 @@ module Octokit
52
60
 
53
61
  super
54
62
  end
55
-
56
63
  end
57
64
  end
58
65
 
data/octokit.gemspec CHANGED
@@ -1,23 +1,25 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'octokit/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
8
  spec.add_development_dependency 'bundler', '>= 1', '< 3'
8
- spec.add_dependency 'sawyer', '>= 0.5.3', '~> 0.8.0'
9
- spec.add_dependency 'faraday', '>= 0.9'
10
- spec.authors = ["Wynn Netherland", "Erik Michaels-Ober", "Clint Shryock"]
11
- spec.description = %q{Simple wrapper for the GitHub API}
9
+ spec.add_dependency 'faraday', '>= 1', '< 3'
10
+ spec.add_dependency 'sawyer', '~> 0.9'
11
+ spec.authors = ['Wynn Netherland', 'Erik Michaels-Ober', 'Clint Shryock']
12
+ spec.description = 'Simple wrapper for the GitHub API'
12
13
  spec.email = ['wynn.netherland@gmail.com', 'sferik@gmail.com', 'clint@ctshryock.com']
13
- spec.files = %w(.document CONTRIBUTING.md LICENSE.md README.md Rakefile octokit.gemspec)
14
- spec.files += Dir.glob("lib/**/*.rb")
14
+ spec.files = %w[.document CONTRIBUTING.md LICENSE.md README.md Rakefile octokit.gemspec]
15
+ spec.files += Dir.glob('lib/**/*.rb')
15
16
  spec.homepage = 'https://github.com/octokit/octokit.rb'
16
17
  spec.licenses = ['MIT']
17
18
  spec.name = 'octokit'
18
19
  spec.require_paths = ['lib']
19
- spec.required_ruby_version = '>= 2.0.0'
20
+ spec.required_ruby_version = '>= 2.7.0'
20
21
  spec.required_rubygems_version = '>= 1.3.5'
21
- spec.summary = "Ruby toolkit for working with the GitHub API"
22
+ spec.summary = 'Ruby toolkit for working with the GitHub API'
22
23
  spec.version = Octokit::VERSION.dup
24
+ spec.metadata = { 'rubygems_mfa_required' => 'true' }
23
25
  end
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.15.0
4
+ version: 6.0.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: 2020-01-02 00:00:00.000000000 Z
13
+ date: 2022-10-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -33,37 +33,37 @@ dependencies:
33
33
  - !ruby/object:Gem::Version
34
34
  version: '3'
35
35
  - !ruby/object:Gem::Dependency
36
- name: sawyer
36
+ name: faraday
37
37
  requirement: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: 0.5.3
42
- - - "~>"
41
+ version: '1'
42
+ - - "<"
43
43
  - !ruby/object:Gem::Version
44
- version: 0.8.0
44
+ version: '3'
45
45
  type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- version: 0.5.3
52
- - - "~>"
51
+ version: '1'
52
+ - - "<"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.8.0
54
+ version: '3'
55
55
  - !ruby/object:Gem::Dependency
56
- name: faraday
56
+ name: sawyer
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0.9'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.9'
69
69
  description: Simple wrapper for the GitHub API
@@ -85,9 +85,14 @@ files:
85
85
  - lib/octokit/arguments.rb
86
86
  - lib/octokit/authentication.rb
87
87
  - lib/octokit/client.rb
88
+ - lib/octokit/client/actions_artifacts.rb
89
+ - lib/octokit/client/actions_secrets.rb
90
+ - lib/octokit/client/actions_workflow_jobs.rb
91
+ - lib/octokit/client/actions_workflow_runs.rb
92
+ - lib/octokit/client/actions_workflows.rb
88
93
  - lib/octokit/client/apps.rb
89
- - lib/octokit/client/authorizations.rb
90
94
  - lib/octokit/client/checks.rb
95
+ - lib/octokit/client/commit_branches.rb
91
96
  - lib/octokit/client/commit_comments.rb
92
97
  - lib/octokit/client/commit_pulls.rb
93
98
  - lib/octokit/client/commits.rb
@@ -110,6 +115,7 @@ files:
110
115
  - lib/octokit/client/meta.rb
111
116
  - lib/octokit/client/milestones.rb
112
117
  - lib/octokit/client/notifications.rb
118
+ - lib/octokit/client/oauth_applications.rb
113
119
  - lib/octokit/client/objects.rb
114
120
  - lib/octokit/client/organizations.rb
115
121
  - lib/octokit/client/pages.rb
@@ -129,6 +135,7 @@ files:
129
135
  - lib/octokit/client/source_import.rb
130
136
  - lib/octokit/client/stats.rb
131
137
  - lib/octokit/client/statuses.rb
138
+ - lib/octokit/client/tokens.rb
132
139
  - lib/octokit/client/traffic.rb
133
140
  - lib/octokit/client/users.rb
134
141
  - lib/octokit/configurable.rb
@@ -146,10 +153,10 @@ files:
146
153
  - lib/octokit/gist.rb
147
154
  - lib/octokit/middleware/follow_redirects.rb
148
155
  - lib/octokit/organization.rb
149
- - lib/octokit/preview.rb
150
156
  - lib/octokit/rate_limit.rb
151
157
  - lib/octokit/repo_arguments.rb
152
158
  - lib/octokit/repository.rb
159
+ - lib/octokit/response/base_middleware.rb
153
160
  - lib/octokit/response/feed_parser.rb
154
161
  - lib/octokit/response/raise_error.rb
155
162
  - lib/octokit/user.rb
@@ -159,7 +166,8 @@ files:
159
166
  homepage: https://github.com/octokit/octokit.rb
160
167
  licenses:
161
168
  - MIT
162
- metadata: {}
169
+ metadata:
170
+ rubygems_mfa_required: 'true'
163
171
  post_install_message:
164
172
  rdoc_options: []
165
173
  require_paths:
@@ -168,14 +176,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
176
  requirements:
169
177
  - - ">="
170
178
  - !ruby/object:Gem::Version
171
- version: 2.0.0
179
+ version: 2.7.0
172
180
  required_rubygems_version: !ruby/object:Gem::Requirement
173
181
  requirements:
174
182
  - - ">="
175
183
  - !ruby/object:Gem::Version
176
184
  version: 1.3.5
177
185
  requirements: []
178
- rubygems_version: 3.1.2
186
+ rubygems_version: 3.1.6
179
187
  signing_key:
180
188
  specification_version: 4
181
189
  summary: Ruby toolkit for working with the GitHub API