octokit 3.1.0 → 3.1.2
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/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:
|