octokit 3.1.0 → 3.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +49 -23
- data/lib/octokit/client.rb +10 -10
- data/lib/octokit/client/users.rb +1 -3
- data/lib/octokit/response/feed_parser.rb +1 -4
- data/lib/octokit/version.rb +1 -1
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f72cdeb9fbffb817b2077f5bfde2c2c58e1dcbb
|
4
|
+
data.tar.gz: a3d4f0d9868bf8b4d7fbcd9474165e1c20b6a549
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c307f0ae66aab040bb0a404f358dc7f49ae948c3f1a07a463870f62c9bd182fec340bffeb534e2e5c6ea680887456d7395e5e93349f975e1ce8906961b77401
|
7
|
+
data.tar.gz: 2b6e8309bb74397136462e0d3528d05485c672389cda723ac19de02fa6797817ed582e6d48d10dbdc3e010ac23c830175bcf16a8806187b6d15c981d27f6aa21
|
data/README.md
CHANGED
@@ -33,7 +33,7 @@ Install via Rubygems
|
|
33
33
|
|
34
34
|
... or add to your Gemfile
|
35
35
|
|
36
|
-
gem "octokit", "~>
|
36
|
+
gem "octokit", "~> 3.0"
|
37
37
|
|
38
38
|
### Making requests
|
39
39
|
|
@@ -111,7 +111,7 @@ user = client.user
|
|
111
111
|
user.login
|
112
112
|
# => "defunkt"
|
113
113
|
```
|
114
|
-
While Basic Authentication
|
114
|
+
While Basic Authentication allows you to get started quickly, OAuth access
|
115
115
|
tokens are the preferred way to authenticate on behalf of users.
|
116
116
|
|
117
117
|
### OAuth access tokens
|
@@ -119,14 +119,14 @@ tokens are the preferred way to authenticate on behalf of users.
|
|
119
119
|
[OAuth access tokens][oauth] provide two main benefits over using your username
|
120
120
|
and password:
|
121
121
|
|
122
|
-
* **Revokable access**. Access tokens can be revoked, removing access for
|
122
|
+
* **Revokable access**. Access tokens can be revoked, removing access for only
|
123
123
|
that token without having to change your password everywhere.
|
124
124
|
* **Limited access**. Access tokens have [access scopes][] which allow for more
|
125
125
|
granular access to API resources. For instance, you can grant a third party
|
126
126
|
access to your gists but not your private repositories.
|
127
127
|
|
128
|
-
To use an access token with the Octokit client,
|
129
|
-
username and password:
|
128
|
+
To use an access token with the Octokit client, pass your token in the
|
129
|
+
`:access_token` options parameter in lieu of your username and password:
|
130
130
|
|
131
131
|
```ruby
|
132
132
|
client = Octokit::Client.new(:access_token => "<your 40 char token>")
|
@@ -136,8 +136,17 @@ user.login
|
|
136
136
|
# => "defunkt"
|
137
137
|
```
|
138
138
|
|
139
|
-
You can
|
140
|
-
|
139
|
+
You can [create access tokens through your GitHub Account Settings](https://help.github.com/articles/creating-an-access-token-for-command-line-use)
|
140
|
+
or with a basic authenticated Octokit client:
|
141
|
+
|
142
|
+
```ruby
|
143
|
+
client = Octokit::Client.new \
|
144
|
+
:login => 'defunkt',
|
145
|
+
:password => 'c0d3b4ssssss!'
|
146
|
+
|
147
|
+
client.create_authorization(:scopes => ["user"], :note => "Name of token")
|
148
|
+
# => <your new oauth token>
|
149
|
+
```
|
141
150
|
|
142
151
|
### Two-Factor Authentication
|
143
152
|
|
@@ -160,7 +169,8 @@ client = Octokit::Client.new \
|
|
160
169
|
:login => 'defunkt',
|
161
170
|
:password => 'c0d3b4ssssss!'
|
162
171
|
|
163
|
-
client.create_authorization(:scopes => ["user"], :
|
172
|
+
client.create_authorization(:scopes => ["user"], :note => "Name of token",
|
173
|
+
:headers => { "X-GitHub-OTP" => "<your 2FA token>" })
|
164
174
|
# => <your new oauth token>
|
165
175
|
```
|
166
176
|
|
@@ -208,8 +218,6 @@ client = Octokit::Client.new \
|
|
208
218
|
user = client.user 'defunkt'
|
209
219
|
```
|
210
220
|
|
211
|
-
|
212
|
-
|
213
221
|
[auth]: http://developer.github.com/v3/#authentication
|
214
222
|
[oauth]: http://developer.github.com/v3/oauth/
|
215
223
|
[access scopes]: http://developer.github.com/v3/oauth/#scopes
|
@@ -326,10 +334,10 @@ rel = repo.rels[:issues]
|
|
326
334
|
# => #<Sawyer::Relation: issues: get https://api.github.com/repos/pengwynn/pingwynn/issues{/number}>
|
327
335
|
|
328
336
|
# Get a page of issues
|
329
|
-
|
337
|
+
rel.get.data
|
330
338
|
|
331
339
|
# Get issue #2
|
332
|
-
|
340
|
+
rel.get(:uri => {:number => 2}).data
|
333
341
|
```
|
334
342
|
|
335
343
|
### The Full Hypermedia Experience™
|
@@ -378,8 +386,9 @@ extended via middleware.
|
|
378
386
|
|
379
387
|
### Debugging
|
380
388
|
|
381
|
-
Often, it helps to know what Octokit is doing under the hood.
|
382
|
-
|
389
|
+
Often, it helps to know what Octokit is doing under the hood. You can add a
|
390
|
+
logger to the middleware that enables you to peek into the underlying HTTP
|
391
|
+
traffic:
|
383
392
|
|
384
393
|
```ruby
|
385
394
|
stack = Faraday::RackBuilder.new do |builder|
|
@@ -440,7 +449,7 @@ resource. See the [project README][cache] for advanced usage.
|
|
440
449
|
## Hacking on Octokit.rb
|
441
450
|
|
442
451
|
If you want to hack on Octokit locally, we try to make [bootstrapping the
|
443
|
-
project][bootstrapping] as painless as possible.
|
452
|
+
project][bootstrapping] as painless as possible. To start hacking, clone and run:
|
444
453
|
|
445
454
|
script/bootstrap
|
446
455
|
|
@@ -455,12 +464,29 @@ console`, etc. ensures your dependencies are up-to-date.
|
|
455
464
|
### Running and writing new tests
|
456
465
|
|
457
466
|
Octokit uses [VCR][] for recording and playing back API fixtures during test
|
458
|
-
runs. These fixtures are part of the Git project in the `spec/cassettes`
|
459
|
-
folder.
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
467
|
+
runs. These cassettes (fixtures) are part of the Git project in the `spec/cassettes`
|
468
|
+
folder. If you're not recording new cassettes you can run the specs with existing
|
469
|
+
cassettes with:
|
470
|
+
|
471
|
+
script/test
|
472
|
+
|
473
|
+
Octokit uses environmental variables for storing credentials used in testing.
|
474
|
+
If you are testing an API endpoint that doesn't require authentication, you
|
475
|
+
can get away without any additional configuration. For the most part, tests
|
476
|
+
use an authenticated client, using a token stored in `ENV['OCTOKIT_TEST_GITHUB_TOKEN']`.
|
477
|
+
There are several different authenticating method's used accross the api.
|
478
|
+
Here is the full list of configurable environmental variables for testing
|
479
|
+
Octokit:
|
480
|
+
|
481
|
+
ENV Variable | Description |
|
482
|
+
:-------------------|:-----------------|
|
483
|
+
`OCTOKIT_TEST_GITHUB_LOGIN`| GitHub login name (preferably one created specifically for testing against).
|
484
|
+
`OCTOKIT_TEST_GITHUB_PASSWORD`| Password for the test GitHub login.
|
485
|
+
`OCTOKIT_TEST_GITHUB_TOKEN` | [Personal Access Token](https://github.com/blog/1509-personal-api-tokens) for the test GitHub login.
|
486
|
+
`OCTOKIT_TEST_GITHUB_CLIENT_ID` | Test OAuth application client id.
|
487
|
+
`OCTOKIT_TEST_GITHUB_CLIENT_SECRET` | Test OAuth application client secret.
|
488
|
+
`OCTOKIT_TEST_GITHUB_REPOSITORY` | Test repository to perform destructive actions against, this should not be set to any repository of importance. **Automatically created by the test suite if nonexistent** Default: `api-sandbox`
|
489
|
+
`OCTOKIT_TEST_GITHUB_ORGANIZATION` | Test organization.
|
464
490
|
|
465
491
|
Since we periodically refresh our cassettes, please keep some points in mind
|
466
492
|
when writing new specs.
|
@@ -491,7 +517,7 @@ implementations:
|
|
491
517
|
If something doesn't work on one of these Ruby versions, it's a bug.
|
492
518
|
|
493
519
|
This library may inadvertently work (or seem to work) on other Ruby
|
494
|
-
implementations,
|
520
|
+
implementations, but support will only be provided for the versions listed
|
495
521
|
above.
|
496
522
|
|
497
523
|
If you would like this library to support another Ruby version, you may
|
@@ -514,7 +540,7 @@ introduced with new major versions. As a result of this policy, you can (and
|
|
514
540
|
should) specify a dependency on this gem using the [Pessimistic Version
|
515
541
|
Constraint][pvc] with two digits of precision. For example:
|
516
542
|
|
517
|
-
spec.add_dependency 'octokit', '~>
|
543
|
+
spec.add_dependency 'octokit', '~> 3.0'
|
518
544
|
|
519
545
|
[semver]: http://semver.org/
|
520
546
|
[pvc]: http://docs.rubygems.org/read/chapter/16#page74
|
data/lib/octokit/client.rb
CHANGED
@@ -308,6 +308,16 @@ module Octokit
|
|
308
308
|
@client_secret = value
|
309
309
|
end
|
310
310
|
|
311
|
+
# Wrapper around Kernel#warn to print warnings unless
|
312
|
+
# OCTOKIT_SILENT is set to true.
|
313
|
+
#
|
314
|
+
# @return [nil]
|
315
|
+
def octokit_warn(*message)
|
316
|
+
unless ENV['OCTOKIT_SILENT']
|
317
|
+
warn message
|
318
|
+
end
|
319
|
+
end
|
320
|
+
|
311
321
|
private
|
312
322
|
|
313
323
|
def reset_agent
|
@@ -364,15 +374,5 @@ module Octokit
|
|
364
374
|
|
365
375
|
opts
|
366
376
|
end
|
367
|
-
|
368
|
-
# Wrapper around Kernel#warn to print warnings unless
|
369
|
-
# OCTOKIT_SILENT is set to true.
|
370
|
-
#
|
371
|
-
# @return [nil]
|
372
|
-
def octokit_warn(*message)
|
373
|
-
unless ENV['OCTOKIT_SILENT']
|
374
|
-
warn message
|
375
|
-
end
|
376
|
-
end
|
377
377
|
end
|
378
378
|
end
|
data/lib/octokit/client/users.rb
CHANGED
@@ -234,12 +234,10 @@ module Octokit
|
|
234
234
|
|
235
235
|
# Get list of public keys for user.
|
236
236
|
#
|
237
|
-
# Requires authenticated client.
|
238
|
-
#
|
239
237
|
# @return [Array<Sawyer::Resource>] Array of hashes representing public keys.
|
240
238
|
# @see https://developer.github.com/v3/users/keys/#list-public-keys-for-a-user
|
241
239
|
# @example
|
242
|
-
# @client.user_keys('pengwynn'
|
240
|
+
# @client.user_keys('pengwynn')
|
243
241
|
def user_keys(user, options = {})
|
244
242
|
# TODO: Roll this into .keys
|
245
243
|
paginate "users/#{user}/keys", options
|
@@ -7,14 +7,11 @@ module Octokit
|
|
7
7
|
# Parses RSS and Atom feed responses.
|
8
8
|
class FeedParser < Faraday::Response::Middleware
|
9
9
|
|
10
|
-
dependency do
|
11
|
-
require 'rss'
|
12
|
-
end
|
13
|
-
|
14
10
|
private
|
15
11
|
|
16
12
|
def on_complete(env)
|
17
13
|
if env[:response_headers]["content-type"] =~ /(\batom|\brss)/
|
14
|
+
require 'rss'
|
18
15
|
env[:body] = RSS::Parser.parse env[:body]
|
19
16
|
end
|
20
17
|
end
|
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: 3.1.
|
4
|
+
version: 3.1.2
|
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: 2014-
|
13
|
+
date: 2014-06-11 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -129,4 +129,3 @@ signing_key:
|
|
129
129
|
specification_version: 4
|
130
130
|
summary: Ruby toolkit for working with the GitHub API
|
131
131
|
test_files: []
|
132
|
-
has_rdoc:
|