github_api 0.14.5 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46047e4b717b4da3c22007f7cae889de3c7170fa
4
- data.tar.gz: bb7c81cd821cbfbb0620d0c1a93095606720d23b
3
+ metadata.gz: 9312a6593c2f32bcc8b408beca9259a0747a70be
4
+ data.tar.gz: 9d5e113c5690642ef9fb0d9269ccc42d54421bd1
5
5
  SHA512:
6
- metadata.gz: e95e4a12984c0dd8075f0d7ed0dabbe3ee2b6f8755e2d4ca192ed8835c83dd9a2999ad2d20d2d1fd3c36ec6972cf743472960180f44f35d0d0c2b5b05766fdcf
7
- data.tar.gz: 6e12ab65ced01db43a703362537650c43b125c35cd16ee872b65120f246ed546157dab5330991a93c62c65823a012d254b21eed2bf486c8e8351fef5c2a92a90
6
+ metadata.gz: 15f1895fc1e726e678f67298e0489c681da59b2e0737c4baba47baa74dfe998ac8d76e0bd02f6f9bdf304fb8043694f70c15e77b670427d1cafa2cb2db4c35cb
7
+ data.tar.gz: e4e76f0e15c2ad51905fca1d8072072c689f8a80758e3f86b26bf8004e66fb58bea975393345dc8852d9bcfca495ae2bd195261f075b6cbbd5188087f2124c72
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  <div align="center">
2
2
  <a href="http://piotrmurach.github.io/github/"><img width="136" src="https://github.com/piotrmurach/github/raw/master/icons/github_api.png" alt="github api logo" /></a>
3
3
  </div>
4
+
4
5
  # GithubAPI
6
+
5
7
  [![Gem Version](https://badge.fury.io/rb/github_api.svg)][gem]
6
8
  [![Build Status](https://secure.travis-ci.org/piotrmurach/github.svg?branch=master)][travis]
7
9
  [![Code Climate](https://codeclimate.com/github/piotrmurach/github/badges/gpa.svg)][codeclimate]
@@ -122,7 +122,7 @@ module Github
122
122
  # @example
123
123
  # github = Github.new
124
124
  # github.git_data.references.delete 'user-name', 'repo-name',
125
- # ref: "refs/heads/master"
125
+ # "heads/master"
126
126
  #
127
127
  # @api public
128
128
  def delete(*args)
@@ -4,6 +4,7 @@ module Github
4
4
  class Client::GitData::Tags < API
5
5
  # This tags api only deals with tag objects -
6
6
  # so only annotated tags, not lightweight tags.
7
+ # Refer https://developer.github.com/v3/git/tags/#parameters
7
8
 
8
9
  VALID_TAG_PARAM_NAMES = %w[
9
10
  tag
@@ -13,8 +14,6 @@ module Github
13
14
  name
14
15
  email
15
16
  date
16
- sha
17
- url
18
17
  tagger
19
18
  ].freeze
20
19
 
@@ -3,10 +3,12 @@
3
3
  module Github
4
4
  class Client::PullRequests < API
5
5
 
6
- require_all 'github_api/client/pull_requests', 'comments'
6
+ require_all 'github_api/client/pull_requests', 'comments', 'reviews'
7
7
 
8
8
  # Access to PullRequests::Comments API
9
9
  namespace :comments
10
+ # Access to PullRequests::Reviews API
11
+ namespace :reviews
10
12
 
11
13
  # List pull requests
12
14
  #
@@ -171,8 +173,9 @@ module Github
171
173
  # Optional string - The message that will be used for the merge commit
172
174
  # @option params [String] :sha
173
175
  # Optional string - The SHA that pull request head must match to allow merge
174
- # @option params [Boolean] :squash
175
- # Optional boolean - Commit a single commit to the head branch.
176
+ # @option params [String] :merge_method
177
+ # Optional string - Merge method to use.
178
+ # Valid values are merge, squash, and rebase. Default is merge.
176
179
  #
177
180
  # @example
178
181
  # github = Github.new
@@ -58,7 +58,7 @@ module Github
58
58
  def get(*args)
59
59
  arguments(args, required: [:user, :repo, :number])
60
60
 
61
- get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/comments/#{arguments.number}", arguments.params)
61
+ get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/comments", arguments.params)
62
62
  end
63
63
  alias_method :find, :get
64
64
 
@@ -0,0 +1,156 @@
1
+ # encoding: utf-8
2
+
3
+ module Github
4
+ class Client::PullRequests::Reviews < API
5
+ PREVIEW_MEDIA = "application/vnd.github.black-cat-preview+json".freeze # :nodoc:
6
+
7
+ # List reviews on a pull request
8
+ #
9
+ # @example
10
+ # github = Github.new
11
+ # github.pull_requests.reviews.list 'user-name', 'repo-name', number: 'pull-request-number'
12
+ #
13
+ # List pull request reviews in a repository
14
+ #
15
+ # @example
16
+ # github = Github.new
17
+ # github.pull_requests.reviews.list 'user-name', 'repo-name', number: 'pull-request-number'
18
+ # github.pull_requests.reviews.list 'user-name', 'repo-name', number: 'pull-request-number' { |comm| ... }
19
+ #
20
+ # @api public
21
+ def list(*args)
22
+ arguments(args, required: [:user, :repo, :number])
23
+ params = arguments.params
24
+
25
+ params["accept"] ||= PREVIEW_MEDIA
26
+
27
+ response = get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/reviews", params)
28
+ return response unless block_given?
29
+ response.each { |el| yield el }
30
+ end
31
+ alias_method :all, :list
32
+
33
+ # Get a single review for pull requests
34
+ #
35
+ # @example
36
+ # github = Github.new
37
+ # github.pull_requests.reviews.get 'user-name', 'repo-name', 'number', 'id'
38
+ #
39
+ # @example
40
+ # github.pull_requests.reviews.get
41
+ # user: 'user-name',
42
+ # repo: 'repo-name',
43
+ # number: 1,
44
+ # id: 80
45
+ #
46
+ # @api public
47
+ def get(*args)
48
+ arguments(args, required: [:user, :repo, :number, :id])
49
+
50
+ params = arguments.params
51
+ params["accept"] ||= PREVIEW_MEDIA
52
+
53
+ get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/reviews/#{arguments.id}", params)
54
+ end
55
+ alias_method :find, :get
56
+
57
+ # Create a pull request review
58
+ #
59
+ # @param [Hash] params
60
+ # @option params [String] :event
61
+ # Required string - The review action (event) to perform; can be one of
62
+ # APPROVE, REQUEST_CHANGES, or COMMENT. If left blank, the API returns
63
+ # HTTP 422 (Unrecognizable entity) and the review is left PENDING
64
+ # @option params [String] :body
65
+ # Optional string. The text of the review.
66
+ # @option params [Array] :comments
67
+ # Optional array of draft review comment objects. An array of comments
68
+ # part of the review.
69
+ #
70
+ # @example
71
+ # github = Github.new
72
+ # github.pull_requests.reviews.create 'user-name', 'repo-name', 'number',
73
+ # body: "Nice change",
74
+ # event: "APPROVE",
75
+ # comments: [
76
+ # {
77
+ # path: 'path/to/file/commented/on',
78
+ # position: 10,
79
+ # body: 'This looks good.'
80
+ # }
81
+ # ]
82
+ #
83
+ # @api public
84
+ def create(*args)
85
+ arguments(args, required: [:user, :repo, :number])
86
+
87
+ params = arguments.params
88
+ params["accept"] ||= PREVIEW_MEDIA
89
+
90
+ post_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/reviews", params)
91
+ end
92
+
93
+ # Update a pull request review
94
+ #
95
+ # @param [Hash] params
96
+ # @option params [String] :state
97
+ # Required string - The review action (event) to perform; can be one of
98
+ # APPROVE, REQUEST_CHANGES, or COMMENT. If left blank, the API returns
99
+ # HTTP 422 (Unrecognizable entity) and the review is left PENDING
100
+ # @optoin params [String] :body
101
+ # Optional string
102
+ #
103
+ # @example
104
+ # github = Github.new oauth_token: '...'
105
+ # github.pull_requests.reviews.update 'user-name', 'repo-name', 'number', 'review-id'
106
+ # body: "Update body",
107
+ # event: "APPROVE"
108
+ #
109
+ # @api public
110
+ def update(*args)
111
+ arguments(args, required: [:user, :repo, :number, :id])
112
+ params = arguments.params
113
+
114
+ params["accept"] ||= PREVIEW_MEDIA
115
+
116
+ post_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/reviews/#{arguments.id}/events", params)
117
+ end
118
+
119
+ # @option params [String] :message
120
+ # Optional string - Reason for dismissal
121
+ #
122
+ # @example
123
+ # github = Github.new oauth_token: '...'
124
+ # github.pull_requests.reviews.dismiss 'user-name', 'repo-name', 'number', 'review-id'
125
+ # message: "I can't get to this right now."
126
+ #
127
+ # @api public
128
+ def dismiss(*args)
129
+ arguments(args, required: [:user, :repo, :number, :id])
130
+ params = arguments.params
131
+
132
+ params["accept"] ||= PREVIEW_MEDIA
133
+
134
+ put_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/reviews/#{arguments.id}/dismissals", params)
135
+ end
136
+
137
+ # List comments on a pull request review
138
+ #
139
+ # @example
140
+ # github = Github.new
141
+ # github.pull_requests.revieiws.comments 'user-name', 'repo-name', 'number', 'review-id'
142
+ #
143
+ # @api public
144
+ def comments(*args)
145
+ arguments(args, required: [:user, :repo, :number, :id])
146
+ params = arguments.params
147
+
148
+ params["accept"] ||= PREVIEW_MEDIA
149
+
150
+ response = get_request("/repos/#{arguments.user}/#{arguments.repo}/pulls/#{arguments.number}/reviews/#{arguments.id}/comments", params)
151
+ return response unless block_given?
152
+ response.each { |el| yield el }
153
+ end
154
+
155
+ end
156
+ end
@@ -20,14 +20,6 @@ module Github
20
20
  'statistics',
21
21
  'statuses'
22
22
 
23
- DEFAULT_REPO_OPTIONS = {
24
- "homepage" => "https://github.com",
25
- "private" => false,
26
- "has_issues" => true,
27
- "has_wiki" => true,
28
- "has_downloads" => true
29
- }.freeze
30
-
31
23
  REQUIRED_REPO_OPTIONS = %w[ name ]
32
24
 
33
25
  VALID_REPO_OPTIONS = %w[
@@ -166,6 +158,21 @@ module Github
166
158
  end
167
159
  alias :find :get
168
160
 
161
+ # Get a repository
162
+ #
163
+ # @example
164
+ # github = Github.new
165
+ # github.repos.get_by_id 'repo-id'
166
+ # github.repos.get_by_id id: 'repo-id'
167
+ # github.repos(id: 'repo-id').get_by_id
168
+ #
169
+ def get_by_id(*args)
170
+ arguments(args, required: [:id])
171
+
172
+ get_request("/repositories/#{arguments.id}", arguments.params)
173
+ end
174
+ alias :find_by_id :get_by_id
175
+
169
176
  # Create a new repository for the autheticated user.
170
177
  #
171
178
  # @param [Hash] params
@@ -229,9 +236,9 @@ module Github
229
236
 
230
237
  # Requires authenticated user
231
238
  if (org = params.delete('org') || org)
232
- post_request("/orgs/#{org}/repos", params.merge_default(DEFAULT_REPO_OPTIONS))
239
+ post_request("/orgs/#{org}/repos", params)
233
240
  else
234
- post_request('/user/repos', params.merge_default(DEFAULT_REPO_OPTIONS))
241
+ post_request("/user/repos", params)
235
242
  end
236
243
  end
237
244
 
@@ -313,7 +320,7 @@ module Github
313
320
  assert_required %w[ name ]
314
321
  end
315
322
 
316
- patch_request("/repos/#{arguments.user}/#{arguments.repo}", arguments.params.merge_default(DEFAULT_REPO_OPTIONS))
323
+ patch_request("/repos/#{arguments.user}/#{arguments.repo}", arguments.params)
317
324
  end
318
325
 
319
326
  # Delete a repository
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'faraday'
4
+ require 'hashie'
4
5
 
5
6
  module Github
6
7
  class Response::Mashify < Response
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Github
4
- VERSION = "0.14.5"
4
+ VERSION = "0.15.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.14.5
4
+ version: 0.15.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: 2016-08-07 00:00:00.000000000 Z
11
+ date: 2017-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -86,6 +86,26 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: 0.0.4
89
+ - !ruby/object:Gem::Dependency
90
+ name: mime-types
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '1.16'
96
+ - - "<"
97
+ - !ruby/object:Gem::Version
98
+ version: '3.0'
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '1.16'
106
+ - - "<"
107
+ - !ruby/object:Gem::Version
108
+ version: '3.0'
89
109
  - !ruby/object:Gem::Dependency
90
110
  name: bundler
91
111
  requirement: !ruby/object:Gem::Requirement
@@ -104,16 +124,16 @@ dependencies:
104
124
  name: rake
105
125
  requirement: !ruby/object:Gem::Requirement
106
126
  requirements:
107
- - - ">="
127
+ - - "<"
108
128
  - !ruby/object:Gem::Version
109
- version: '0'
129
+ version: '11.0'
110
130
  type: :development
111
131
  prerelease: false
112
132
  version_requirements: !ruby/object:Gem::Requirement
113
133
  requirements:
114
- - - ">="
134
+ - - "<"
115
135
  - !ruby/object:Gem::Version
116
- version: '0'
136
+ version: '11.0'
117
137
  description: " Ruby client that supports all of the GitHub API methods. It's build
118
138
  in a modular way, that is, you can either instantiate the whole api wrapper Github.new
119
139
  or use parts of it e.i. Github::Client::Repos.new if working solely with repositories
@@ -170,6 +190,7 @@ files:
170
190
  - lib/github_api/client/orgs/teams.rb
171
191
  - lib/github_api/client/pull_requests.rb
172
192
  - lib/github_api/client/pull_requests/comments.rb
193
+ - lib/github_api/client/pull_requests/reviews.rb
173
194
  - lib/github_api/client/repos.rb
174
195
  - lib/github_api/client/repos/collaborators.rb
175
196
  - lib/github_api/client/repos/comments.rb