github_api 0.15.0 → 0.19.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.
Files changed (113) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +770 -0
  3. data/README.md +25 -8
  4. data/lib/github_api.rb +37 -76
  5. data/lib/github_api/api.rb +46 -19
  6. data/lib/github_api/api/arguments.rb +6 -1
  7. data/lib/github_api/api/config.rb +3 -5
  8. data/lib/github_api/api/config/property_set.rb +1 -0
  9. data/lib/github_api/authorization.rb +2 -0
  10. data/lib/github_api/client.rb +5 -0
  11. data/lib/github_api/client/activity.rb +2 -0
  12. data/lib/github_api/client/activity/events.rb +2 -0
  13. data/lib/github_api/client/activity/feeds.rb +2 -0
  14. data/lib/github_api/client/activity/notifications.rb +2 -0
  15. data/lib/github_api/client/activity/starring.rb +3 -1
  16. data/lib/github_api/client/activity/watching.rb +3 -1
  17. data/lib/github_api/client/authorizations.rb +2 -0
  18. data/lib/github_api/client/authorizations/app.rb +3 -1
  19. data/lib/github_api/client/emojis.rb +2 -0
  20. data/lib/github_api/client/gists.rb +4 -2
  21. data/lib/github_api/client/gists/comments.rb +3 -1
  22. data/lib/github_api/client/git_data.rb +2 -0
  23. data/lib/github_api/client/git_data/blobs.rb +2 -1
  24. data/lib/github_api/client/git_data/commits.rb +2 -0
  25. data/lib/github_api/client/git_data/references.rb +6 -2
  26. data/lib/github_api/client/git_data/tags.rb +2 -0
  27. data/lib/github_api/client/git_data/trees.rb +2 -0
  28. data/lib/github_api/client/gitignore.rb +2 -0
  29. data/lib/github_api/client/issues.rb +2 -0
  30. data/lib/github_api/client/issues/assignees.rb +35 -0
  31. data/lib/github_api/client/issues/comments.rb +2 -0
  32. data/lib/github_api/client/issues/events.rb +2 -0
  33. data/lib/github_api/client/issues/labels.rb +2 -0
  34. data/lib/github_api/client/issues/milestones.rb +2 -0
  35. data/lib/github_api/client/markdown.rb +4 -2
  36. data/lib/github_api/client/meta.rb +2 -0
  37. data/lib/github_api/client/orgs.rb +6 -0
  38. data/lib/github_api/client/orgs/hooks.rb +2 -0
  39. data/lib/github_api/client/orgs/members.rb +2 -0
  40. data/lib/github_api/client/orgs/memberships.rb +2 -0
  41. data/lib/github_api/client/orgs/projects.rb +57 -0
  42. data/lib/github_api/client/orgs/teams.rb +5 -3
  43. data/lib/github_api/client/projects.rb +83 -0
  44. data/lib/github_api/client/projects/cards.rb +158 -0
  45. data/lib/github_api/client/projects/columns.rb +146 -0
  46. data/lib/github_api/client/pull_requests.rb +2 -0
  47. data/lib/github_api/client/pull_requests/comments.rb +2 -0
  48. data/lib/github_api/client/pull_requests/reviews.rb +2 -0
  49. data/lib/github_api/client/repos.rb +27 -15
  50. data/lib/github_api/client/repos/branches.rb +48 -0
  51. data/lib/github_api/client/repos/branches/protections.rb +75 -0
  52. data/lib/github_api/client/repos/collaborators.rb +2 -1
  53. data/lib/github_api/client/repos/comments.rb +2 -1
  54. data/lib/github_api/client/repos/commits.rb +2 -0
  55. data/lib/github_api/client/repos/contents.rb +26 -4
  56. data/lib/github_api/client/repos/deployments.rb +3 -1
  57. data/lib/github_api/client/repos/downloads.rb +2 -0
  58. data/lib/github_api/client/repos/forks.rb +6 -2
  59. data/lib/github_api/client/repos/hooks.rb +2 -0
  60. data/lib/github_api/client/repos/invitations.rb +41 -0
  61. data/lib/github_api/client/repos/keys.rb +2 -0
  62. data/lib/github_api/client/repos/merging.rb +2 -0
  63. data/lib/github_api/client/repos/pages.rb +2 -0
  64. data/lib/github_api/client/repos/projects.rb +62 -0
  65. data/lib/github_api/client/repos/pub_sub_hubbub.rb +6 -6
  66. data/lib/github_api/client/repos/releases.rb +2 -0
  67. data/lib/github_api/client/repos/releases/assets.rb +3 -1
  68. data/lib/github_api/client/repos/releases/tags.rb +2 -0
  69. data/lib/github_api/client/repos/statistics.rb +2 -0
  70. data/lib/github_api/client/repos/statuses.rb +2 -0
  71. data/lib/github_api/client/say.rb +2 -0
  72. data/lib/github_api/client/scopes.rb +2 -0
  73. data/lib/github_api/client/search.rb +3 -0
  74. data/lib/github_api/client/search/legacy.rb +2 -0
  75. data/lib/github_api/client/users.rb +2 -0
  76. data/lib/github_api/client/users/emails.rb +3 -0
  77. data/lib/github_api/client/users/followers.rb +3 -1
  78. data/lib/github_api/client/users/keys.rb +2 -0
  79. data/lib/github_api/configuration.rb +4 -1
  80. data/lib/github_api/connection.rb +5 -1
  81. data/lib/github_api/error.rb +1 -4
  82. data/lib/github_api/error/client_error.rb +4 -2
  83. data/lib/github_api/error/service_error.rb +9 -2
  84. data/lib/github_api/ext/faraday.rb +3 -1
  85. data/lib/github_api/mash.rb +7 -0
  86. data/lib/github_api/middleware.rb +8 -6
  87. data/lib/github_api/normalizer.rb +3 -5
  88. data/lib/github_api/page_iterator.rb +4 -1
  89. data/lib/github_api/page_links.rb +4 -0
  90. data/lib/github_api/paged_request.rb +2 -0
  91. data/lib/github_api/pagination.rb +10 -7
  92. data/lib/github_api/parameter_filter.rb +4 -1
  93. data/lib/github_api/params_hash.rb +4 -4
  94. data/lib/github_api/request.rb +8 -9
  95. data/lib/github_api/request/basic_auth.rb +1 -1
  96. data/lib/github_api/request/jsonize.rb +0 -1
  97. data/lib/github_api/request/oauth2.rb +2 -0
  98. data/lib/github_api/request/verbs.rb +3 -0
  99. data/lib/github_api/response/follow_redirects.rb +140 -0
  100. data/lib/github_api/response/header.rb +6 -1
  101. data/lib/github_api/response/mashify.rb +2 -3
  102. data/lib/github_api/response/raise_error.rb +2 -1
  103. data/lib/github_api/response_wrapper.rb +5 -0
  104. data/lib/github_api/utils/url.rb +2 -0
  105. data/lib/github_api/validations.rb +5 -8
  106. data/lib/github_api/validations/format.rb +2 -0
  107. data/lib/github_api/validations/presence.rb +3 -1
  108. data/lib/github_api/validations/required.rb +2 -0
  109. data/lib/github_api/version.rb +2 -2
  110. metadata +100 -36
  111. data/lib/github_api/core_ext/ordered_hash.rb +0 -107
  112. data/lib/github_api/requestable.rb +0 -67
  113. data/lib/github_api/resource.rb +0 -13
@@ -1,10 +1,10 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'github_api/request/oauth2'
4
- require 'github_api/request/basic_auth'
5
- require 'github_api/request/jsonize'
6
-
7
- require 'github_api/connection'
3
+ require_relative 'connection'
4
+ require_relative 'response_wrapper'
5
+ require_relative 'request/oauth2'
6
+ require_relative 'request/basic_auth'
7
+ require_relative 'request/jsonize'
8
8
 
9
9
  module Github
10
10
  # A class responsible for dispatching http requests
@@ -43,8 +43,7 @@ module Github
43
43
 
44
44
  # Performs a request
45
45
  #
46
- # @param [Symbol] method - The Symbol the HTTP verb
47
- # @param [String] path - String relative URL to access
46
+ # @param current_options [Hash]
48
47
  # @param [ParamsHash] params - ParamsHash to configure the request API
49
48
  #
50
49
  # @return [Github::ResponseWrapper]
@@ -52,10 +51,10 @@ module Github
52
51
  # @api private
53
52
  def call(current_options, params)
54
53
  unless HTTP_METHODS.include?(action)
55
- raise ArgumentError, "unknown http method: #{method}"
54
+ raise ArgumentError, "unknown http method: #{action}"
56
55
  end
57
56
 
58
- puts "EXECUTED: #{action} - #{path} with PARAMS: #{params}" if ENV['DEBUG']
57
+ puts "EXECUTED: #{action} - #{path} with PARAMS: #{params.request_params}" if ENV['DEBUG']
59
58
 
60
59
  request_options = params.options
61
60
  connection_options = current_options.merge(request_options)
@@ -26,7 +26,7 @@ module Github
26
26
  # @api private
27
27
  def call(env)
28
28
  if @auth
29
- env[:request_headers].merge!('Authorization' => "Basic #{@auth}\"")
29
+ env[:request_headers].merge!('Authorization' => "Basic #{@auth}")
30
30
  end
31
31
 
32
32
  @app.call(env)
@@ -32,7 +32,6 @@ module Github
32
32
  end
33
33
 
34
34
  def request_with_body?(env)
35
- type = request_type(env)
36
35
  has_body?(env) and safe_to_modify?(env)
37
36
  end
38
37
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  require 'faraday'
4
4
 
5
+ require_relative '../utils/url'
6
+
5
7
  module Github
6
8
  class Request
7
9
  class OAuth2 < Faraday::Middleware
@@ -1,5 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
+ require_relative '../request'
4
+ require_relative '../params_hash'
5
+
3
6
  module Github
4
7
  # A class responsible for dispatching http requests
5
8
  class Request
@@ -0,0 +1,140 @@
1
+ require 'faraday'
2
+ require 'set'
3
+
4
+ # First saw on octokit, then copied from lostisland/faraday_middleware
5
+ # and adapted for this library.
6
+ #
7
+ # faraday_middleware/lib/faraday_middleware/response/follow_redirects.rb
8
+
9
+ module Github
10
+ # Public: Exception thrown when the maximum amount of requests is exceeded.
11
+ class RedirectLimitReached < Faraday::ClientError
12
+ attr_reader :response
13
+
14
+ def initialize(response)
15
+ super "too many redirects; last one to: #{response['location']}"
16
+ @response = response
17
+ end
18
+ end
19
+
20
+ # Public: Follow HTTP 301, 302, 303, 307, and 308 redirects.
21
+ #
22
+ # For HTTP 301, 302, and 303, the original GET, POST, PUT, DELETE, or PATCH
23
+ # request gets converted into a GET. With `:standards_compliant => true`,
24
+ # however, the HTTP method after 301/302 remains unchanged. This allows you
25
+ # to opt into HTTP/1.1 compliance and act unlike the major web browsers.
26
+ #
27
+ # This middleware currently only works with synchronous requests; i.e. it
28
+ # doesn't support parallelism.
29
+ #
30
+ # If you wish to persist cookies across redirects, you could use
31
+ # the faraday-cookie_jar gem:
32
+ #
33
+ # Faraday.new(:url => url) do |faraday|
34
+ # faraday.use FaradayMiddleware::FollowRedirects
35
+ # faraday.use :cookie_jar
36
+ # faraday.adapter Faraday.default_adapter
37
+ # end
38
+
39
+ class Response::FollowRedirects < Faraday::Middleware
40
+ # HTTP methods for which 30x redirects can be followed
41
+ ALLOWED_METHODS = Set.new [:head, :options, :get, :post, :put, :patch, :delete]
42
+ # HTTP redirect status codes that this middleware implements
43
+ REDIRECT_CODES = Set.new [301, 302, 303, 307, 308]
44
+ # Keys in env hash which will get cleared between requests
45
+ ENV_TO_CLEAR = Set.new [:status, :response, :response_headers]
46
+
47
+ # Default value for max redirects followed
48
+ FOLLOW_LIMIT = 3
49
+
50
+ # Regex that matches characters that need to be escaped in URLs, sans
51
+ # the "%" character which we assume already represents an escaped sequence.
52
+ URI_UNSAFE = /[^\-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]%]/
53
+
54
+ # Public: Initialize the middleware.
55
+ #
56
+ # options - An options Hash (default: {}):
57
+ # :limit - A Numeric redirect limit (default: 3)
58
+ # :standards_compliant - A Boolean indicating whether to respect
59
+ # the HTTP spec when following 301/302
60
+ # (default: false)
61
+ # :callback - A callable that will be called on redirects
62
+ # with the old and new envs
63
+ def initialize(app, options = {})
64
+ super(app)
65
+ @options = options
66
+
67
+ @convert_to_get = Set.new [303]
68
+ @convert_to_get << 301 << 302 unless standards_compliant?
69
+ end
70
+
71
+ def call(env)
72
+ perform_with_redirection(env, follow_limit)
73
+ end
74
+
75
+ private
76
+
77
+ def convert_to_get?(response)
78
+ ![:head, :options].include?(response.env[:method]) &&
79
+ @convert_to_get.include?(response.status)
80
+ end
81
+
82
+ def perform_with_redirection(env, follows)
83
+ request_body = env[:body]
84
+ response = @app.call(env)
85
+
86
+ response.on_complete do |response_env|
87
+ if follow_redirect?(response_env, response)
88
+ raise RedirectLimitReached, response if follows.zero?
89
+ new_request_env = update_env(response_env.dup, request_body, response)
90
+ callback.call(response_env, new_request_env) if callback
91
+ response = perform_with_redirection(new_request_env, follows - 1)
92
+ end
93
+ end
94
+ response
95
+ end
96
+
97
+ def update_env(env, request_body, response)
98
+ env[:url] += safe_escape(response['location'])
99
+
100
+ if convert_to_get?(response)
101
+ env[:method] = :get
102
+ env[:body] = nil
103
+ else
104
+ env[:body] = request_body
105
+ end
106
+
107
+ ENV_TO_CLEAR.each {|key| env.delete key }
108
+
109
+ env
110
+ end
111
+
112
+ def follow_redirect?(env, response)
113
+ ALLOWED_METHODS.include? env[:method] and
114
+ REDIRECT_CODES.include? response.status
115
+ end
116
+
117
+ def follow_limit
118
+ @options.fetch(:limit, FOLLOW_LIMIT)
119
+ end
120
+
121
+ def standards_compliant?
122
+ @options.fetch(:standards_compliant, false)
123
+ end
124
+
125
+ def callback
126
+ @options[:callback]
127
+ end
128
+
129
+ # Internal: escapes unsafe characters from an URL which might be a path
130
+ # component only or a fully qualified URI so that it can be joined onto an
131
+ # URI:HTTP using the `+` operator. Doesn't escape "%" characters so to not
132
+ # risk double-escaping.
133
+ def safe_escape(uri)
134
+ uri = uri.split('#')[0] # we want to remove the fragment if present
135
+ uri.to_s.gsub(URI_UNSAFE) { |match|
136
+ '%' + match.unpack('H2' * match.bytesize).join('%').upcase
137
+ }
138
+ end
139
+ end
140
+ end
@@ -1,5 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
+ require_relative '../constants'
4
+
3
5
  module Github
4
6
  class Response
5
7
 
@@ -13,6 +15,10 @@ module Github
13
15
  !!env
14
16
  end
15
17
 
18
+ def [](property)
19
+ loaded? ? env[:response_headers][property] : nil
20
+ end
21
+
16
22
  def oauth_scopes
17
23
  loaded? ? env[:response_headers][OAUTH_SCOPES] : nil
18
24
  end
@@ -76,7 +82,6 @@ module Github
76
82
  def body
77
83
  loaded? ? env[:body] : nil
78
84
  end
79
-
80
85
  end # Header
81
86
  end # Response
82
87
  end # Github
@@ -2,13 +2,12 @@
2
2
 
3
3
  require 'faraday'
4
4
  require 'hashie'
5
+ require 'github_api/mash'
5
6
 
6
7
  module Github
7
8
  class Response::Mashify < Response
8
- dependency 'hashie/mash'
9
-
10
9
  define_parser do |body|
11
- ::Hashie::Mash.new body
10
+ ::Github::Mash.new body
12
11
  end
13
12
 
14
13
  def parse(body)
@@ -1,7 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'faraday'
4
- require 'github_api/error'
4
+
5
+ require_relative '../error/service_error'
5
6
 
6
7
  module Github
7
8
  class Response::RaiseError < Faraday::Response::Middleware
@@ -1,5 +1,9 @@
1
1
  # encoding: utf-8
2
2
 
3
+ require 'forwardable'
4
+
5
+ require_relative 'pagination'
6
+
3
7
  module Github
4
8
  # A class responsible for proxing to faraday response
5
9
  class ResponseWrapper
@@ -19,6 +23,7 @@ module Github
19
23
  @response = response
20
24
  @current_api = current_api
21
25
  @env = response.env
26
+ @body = nil
22
27
  end
23
28
 
24
29
  # Overwrite methods to hash keys
@@ -1,3 +1,5 @@
1
+ # encoding:utf-8
2
+
1
3
  require 'cgi'
2
4
  require 'addressable/uri'
3
5
 
@@ -1,14 +1,12 @@
1
1
  # encoding: utf-8
2
2
 
3
+ require_relative 'validations/format'
4
+ require_relative 'validations/presence'
5
+ require_relative 'validations/required'
6
+ require_relative 'validations/token'
7
+
3
8
  module Github
4
9
  module Validations
5
-
6
- Github::require_all 'github_api/validations',
7
- 'presence',
8
- 'token',
9
- 'format',
10
- 'required'
11
-
12
10
  include Presence
13
11
  include Format
14
12
  include Token
@@ -20,6 +18,5 @@ module Github
20
18
  'auto_pagination',
21
19
  'jsonp_callback'
22
20
  ]
23
-
24
21
  end # Validation
25
22
  end # Github
@@ -1,5 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
+ require_relative '../error/client_error'
4
+
3
5
  module Github
4
6
  module Validations
5
7
  module Format
@@ -1,11 +1,13 @@
1
1
  # encoding: utf-8
2
2
 
3
+ require_relative '../error/client_error'
4
+
3
5
  module Github
4
6
  module Validations
5
7
  # A mixin to help validate presence of non-empty values
6
8
  module Presence
7
9
 
8
- # Ensure that esential arguments are present before request is made.
10
+ # Ensure that essential arguments are present before request is made.
9
11
  #
10
12
  # == Parameters
11
13
  # Hash/Array of arguments to be checked against nil and empty string
@@ -1,5 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
+ require_relative '../error/client_error'
4
+
3
5
  module Github
4
6
  module Validations
5
7
  module Required
@@ -1,5 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Github
4
- VERSION = "0.15.0"
4
+ VERSION = "0.19.0"
5
5
  end # Github
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Murach
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-25 00:00:00.000000000 Z
11
+ date: 2020-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -16,48 +16,54 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.4.0
19
+ version: '2.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.4.0
26
+ version: '2.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: hashie
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.5'
31
34
  - - ">="
32
35
  - !ruby/object:Gem::Version
33
- version: '3.4'
36
+ version: 3.5.2
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.5'
38
44
  - - ">="
39
45
  - !ruby/object:Gem::Version
40
- version: '3.4'
46
+ version: 3.5.2
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: faraday
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - "~>"
51
+ - - ">="
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0.8'
48
54
  - - "<"
49
55
  - !ruby/object:Gem::Version
50
- version: '0.10'
56
+ version: '2'
51
57
  type: :runtime
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
54
60
  requirements:
55
- - - "~>"
61
+ - - ">="
56
62
  - !ruby/object:Gem::Version
57
63
  version: '0.8'
58
64
  - - "<"
59
65
  - !ruby/object:Gem::Version
60
- version: '0.10'
66
+ version: '2'
61
67
  - !ruby/object:Gem::Dependency
62
68
  name: oauth2
63
69
  requirement: !ruby/object:Gem::Requirement
@@ -87,27 +93,21 @@ dependencies:
87
93
  - !ruby/object:Gem::Version
88
94
  version: 0.0.4
89
95
  - !ruby/object:Gem::Dependency
90
- name: mime-types
96
+ name: bundler
91
97
  requirement: !ruby/object:Gem::Requirement
92
98
  requirements:
93
99
  - - ">="
94
100
  - !ruby/object:Gem::Version
95
- version: '1.16'
96
- - - "<"
97
- - !ruby/object:Gem::Version
98
- version: '3.0'
99
- type: :runtime
101
+ version: 1.5.0
102
+ type: :development
100
103
  prerelease: false
101
104
  version_requirements: !ruby/object:Gem::Requirement
102
105
  requirements:
103
106
  - - ">="
104
107
  - !ruby/object:Gem::Version
105
- version: '1.16'
106
- - - "<"
107
- - !ruby/object:Gem::Version
108
- version: '3.0'
108
+ version: 1.5.0
109
109
  - !ruby/object:Gem::Dependency
110
- name: bundler
110
+ name: rake
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
113
  - - ">="
@@ -121,30 +121,89 @@ dependencies:
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
123
  - !ruby/object:Gem::Dependency
124
- name: rake
124
+ name: cucumber
125
125
  requirement: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - "<"
127
+ - - "~>"
128
128
  - !ruby/object:Gem::Version
129
- version: '11.0'
129
+ version: '2.1'
130
130
  type: :development
131
131
  prerelease: false
132
132
  version_requirements: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - "<"
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '2.1'
137
+ - !ruby/object:Gem::Dependency
138
+ name: rspec
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '3'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: '3'
151
+ - !ruby/object:Gem::Dependency
152
+ name: rspec-its
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: '1'
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '1'
165
+ - !ruby/object:Gem::Dependency
166
+ name: vcr
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: 3.0.3
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: 3.0.3
179
+ - !ruby/object:Gem::Dependency
180
+ name: webmock
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: '3.8'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
135
191
  - !ruby/object:Gem::Version
136
- version: '11.0'
137
- description: " Ruby client that supports all of the GitHub API methods. It's build
192
+ version: '3.8'
193
+ description: ' Ruby client that supports all of the GitHub API methods. It"s build
138
194
  in a modular way, that is, you can either instantiate the whole api wrapper Github.new
139
195
  or use parts of it e.i. Github::Client::Repos.new if working solely with repositories
140
- is your main concern. Intuitive query methods allow you easily call API endpoints. "
141
- email: ''
196
+ is your main concern. Intuitive query methods allow you easily call API endpoints. '
197
+ email:
198
+ - piotr@piotrmurach.com
142
199
  executables: []
143
200
  extensions: []
144
201
  extra_rdoc_files:
145
202
  - LICENSE.txt
146
203
  - README.md
204
+ - CHANGELOG.md
147
205
  files:
206
+ - CHANGELOG.md
148
207
  - LICENSE.txt
149
208
  - README.md
150
209
  - lib/github_api.rb
@@ -187,11 +246,17 @@ files:
187
246
  - lib/github_api/client/orgs/hooks.rb
188
247
  - lib/github_api/client/orgs/members.rb
189
248
  - lib/github_api/client/orgs/memberships.rb
249
+ - lib/github_api/client/orgs/projects.rb
190
250
  - lib/github_api/client/orgs/teams.rb
251
+ - lib/github_api/client/projects.rb
252
+ - lib/github_api/client/projects/cards.rb
253
+ - lib/github_api/client/projects/columns.rb
191
254
  - lib/github_api/client/pull_requests.rb
192
255
  - lib/github_api/client/pull_requests/comments.rb
193
256
  - lib/github_api/client/pull_requests/reviews.rb
194
257
  - lib/github_api/client/repos.rb
258
+ - lib/github_api/client/repos/branches.rb
259
+ - lib/github_api/client/repos/branches/protections.rb
195
260
  - lib/github_api/client/repos/collaborators.rb
196
261
  - lib/github_api/client/repos/comments.rb
197
262
  - lib/github_api/client/repos/commits.rb
@@ -200,9 +265,11 @@ files:
200
265
  - lib/github_api/client/repos/downloads.rb
201
266
  - lib/github_api/client/repos/forks.rb
202
267
  - lib/github_api/client/repos/hooks.rb
268
+ - lib/github_api/client/repos/invitations.rb
203
269
  - lib/github_api/client/repos/keys.rb
204
270
  - lib/github_api/client/repos/merging.rb
205
271
  - lib/github_api/client/repos/pages.rb
272
+ - lib/github_api/client/repos/projects.rb
206
273
  - lib/github_api/client/repos/pub_sub_hubbub.rb
207
274
  - lib/github_api/client/repos/releases.rb
208
275
  - lib/github_api/client/repos/releases/assets.rb
@@ -222,12 +289,12 @@ files:
222
289
  - lib/github_api/constants.rb
223
290
  - lib/github_api/core_ext/array.rb
224
291
  - lib/github_api/core_ext/hash.rb
225
- - lib/github_api/core_ext/ordered_hash.rb
226
292
  - lib/github_api/deprecation.rb
227
293
  - lib/github_api/error.rb
228
294
  - lib/github_api/error/client_error.rb
229
295
  - lib/github_api/error/service_error.rb
230
296
  - lib/github_api/ext/faraday.rb
297
+ - lib/github_api/mash.rb
231
298
  - lib/github_api/middleware.rb
232
299
  - lib/github_api/mime_type.rb
233
300
  - lib/github_api/normalizer.rb
@@ -244,10 +311,9 @@ files:
244
311
  - lib/github_api/request/jsonize.rb
245
312
  - lib/github_api/request/oauth2.rb
246
313
  - lib/github_api/request/verbs.rb
247
- - lib/github_api/requestable.rb
248
- - lib/github_api/resource.rb
249
314
  - lib/github_api/response.rb
250
315
  - lib/github_api/response/atom_parser.rb
316
+ - lib/github_api/response/follow_redirects.rb
251
317
  - lib/github_api/response/header.rb
252
318
  - lib/github_api/response/jsonize.rb
253
319
  - lib/github_api/response/mashify.rb
@@ -274,17 +340,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
274
340
  requirements:
275
341
  - - ">="
276
342
  - !ruby/object:Gem::Version
277
- version: 1.9.2
343
+ version: 2.0.0
278
344
  required_rubygems_version: !ruby/object:Gem::Requirement
279
345
  requirements:
280
346
  - - ">="
281
347
  - !ruby/object:Gem::Version
282
348
  version: '0'
283
349
  requirements: []
284
- rubyforge_project:
285
- rubygems_version: 2.5.1
350
+ rubygems_version: 3.1.2
286
351
  signing_key:
287
352
  specification_version: 4
288
353
  summary: Ruby client for the official GitHub API
289
354
  test_files: []
290
- has_rdoc: