corl 0.5.5 → 0.5.6

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
- ---
2
- SHA1:
3
- metadata.gz: 7a8900e16b96f2022f8c52ed251802c43e5a9224
4
- data.tar.gz: 357559d77d1dd84501a5284cbb199cd0c631d239
5
- SHA512:
6
- metadata.gz: febc1d9a88160e7066180c423cf6fe2d3a5d610a3dd4a988c79873e55a5590d4e27221c29c9067bdca02eee11dd04b985cdf6668902ecd1fbac788374200bc3b
7
- data.tar.gz: 3cc2e3bd2070075ce89166b1802f6049f68af56e027512ca16f1283a23e84cf1e49de6b0400964cba7376d844ce433a75ee83b31aeb21c744dc6bff415c08c14
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 316f191cc1156d9936eac3c2dd380d597c221f9e
4
+ data.tar.gz: 6d5d7475ca709a66e073b531a4b0851572d45556
5
+ SHA512:
6
+ metadata.gz: 9a39a6f7959c64870c9bce05081e0fd587b4b55f2bd8b1e0fbad52900fe5ee75da732a71684c8afeb512c5ef7906871dec7b184bd6ad65334170b0638d57d675
7
+ data.tar.gz: 792a4c8c53f7b4f3f875d6f1e94bea2c3f57f9579f28ec4befe2cd3daf802bbd8cbea53757c8272785c3962023db1294c54b8b29e851fc68b999766041dc6cd1
data/README.rdoc CHANGED
@@ -1,27 +1,592 @@
1
- === CORL (Coral Orchestration and Research Library)
1
+ # CORL - Coral Orchestration and Research Library
2
2
 
3
- Coming soon!
3
+ [Nucleon](https://github.com/coralnexus/nucleon) plugin library and framework for building, synchronizing, and executing
4
+ distributed actions and agents across heterogenous networks.
4
5
 
5
- Note: This library is still very early in development!
6
+ [Nucleon](https://github.com/coralnexus/nucleon) powered
6
7
 
7
- ==== Contributing to CORL
8
-
9
- * Check out the latest {major}.{minor} branch to make sure the feature hasn't
10
- been implemented or the bug hasn't been fixed yet.
11
- * Check out the issue tracker to make sure someone already hasn't requested
12
- it and/or contributed it.
13
- * Fork the project.
14
- * Start a feature/bugfix branch.
15
- * Commit and push until you are happy with your contribution.
16
- * If possible, add tests for it. This is important so I don't break it in a
17
- future version unintentionally.
18
- * Please try not to mess with the Rakefile, version, or history. If you want
19
- to have your own version, or is otherwise necessary, that is fine, but
20
- please isolate to its own commit so I can cherry-pick around it.
21
8
 
22
- ==== Copyright
23
9
 
24
- Licensed under Apache License 2.0. See LICENSE.txt for further details.
25
10
 
26
- Copyright (c) 2013-2014 Adrian Webb <adrian.webb@coralnexus.com>
27
- Coral Technology Group LLC
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+ ![Logo][logo]
23
+ [logo]: http://cl.ly/image/3Y013H0A2z3z/gundam-ruby.png
24
+
25
+ Upgrading? Check the [Upgrade Guide](#upgrading-guide) before bumping to a new
26
+ [major version][semver].
27
+
28
+ ## Philosophy
29
+
30
+ API wrappers [should reflect the idioms of the language in which they were
31
+ written][wrappers]. Octokit.rb wraps the [GitHub API][github-api] in a flat API
32
+ client that follows Ruby conventions and requires little knowledge of REST.
33
+ Most methods have positional arguments for required input and an options hash
34
+ for optional parameters, headers, or other options:
35
+
36
+ ```ruby
37
+ # Fetch a README with Accept header for HTML format
38
+ Octokit.readme 'al3x/sovereign', :accept => 'application/vnd.github.html'
39
+ ```
40
+
41
+
42
+ [wrappers]: http://wynnnetherland.com/journal/what-makes-a-good-api-wrapper
43
+ [github-api]: http://developer.github.com
44
+
45
+ ## Quick start
46
+
47
+ Install via Rubygems
48
+
49
+ gem install octokit
50
+
51
+ ... or add to your Gemfile
52
+
53
+ gem "octokit", "~> 3.0"
54
+
55
+ ### Making requests
56
+
57
+ [API methods][] are available as module methods (consuming module-level
58
+ configuration) or as client instance methods.
59
+
60
+ ```ruby
61
+ # Provide authentication credentials
62
+ Octokit.configure do |c|
63
+ c.login = 'defunkt'
64
+ c.password = 'c0d3b4ssssss!'
65
+ end
66
+
67
+ # Fetch the current user
68
+ Octokit.user
69
+ ```
70
+ or
71
+
72
+ ```ruby
73
+ # Provide authentication credentials
74
+ client = Octokit::Client.new(:login => 'defunkt', :password => 'c0d3b4ssssss!')
75
+ # Fetch the current user
76
+ client.user
77
+ ```
78
+
79
+ [API methods]: http://octokit.github.io/octokit.rb/method_list.html
80
+
81
+ ### Consuming resources
82
+
83
+ Most methods return a `Resource` object which provides dot notation and `[]`
84
+ access for fields returned in the API response.
85
+
86
+ ```ruby
87
+ # Fetch a user
88
+ user = Octokit.user 'jbarnette'
89
+ puts user.name
90
+ # => "John Barnette"
91
+ puts user.fields
92
+ # => <Set: {:login, :id, :gravatar_id, :type, :name, :company, :blog, :location, :email, :hireable, :bio, :public_repos, :followers, :following, :created_at, :updated_at, :public_gists}>
93
+ puts user[:company]
94
+ # => "GitHub"
95
+ user.rels[:gists].href
96
+ # => "https://api.github.com/users/jbarnette/gists"
97
+ ```
98
+
99
+ **Note:** URL fields are culled into a separate `.rels` collection for easier
100
+ [Hypermedia](#hypermedia-agent) support.
101
+
102
+ ### Accessing HTTP responses
103
+
104
+ While most methods return a `Resource` object or a Boolean, sometimes you may
105
+ need access to the raw HTTP response headers. You can access the last HTTP
106
+ response with `Client#last_response`:
107
+
108
+ ```ruby
109
+ user = Octokit.user 'andrewpthorp'
110
+ response = Octokit.last_response
111
+ etag = response.headers[:etag]
112
+ ```
113
+
114
+ ## Authentication
115
+
116
+ Octokit supports the various [authentication methods supported by the GitHub
117
+ API][auth]:
118
+
119
+ ### Basic Authentication
120
+
121
+ Using your GitHub username and password is the easiest way to get started
122
+ making authenticated requests:
123
+
124
+ ```ruby
125
+ client = Octokit::Client.new \
126
+ :login => 'defunkt',
127
+ :password => 'c0d3b4ssssss!'
128
+
129
+ user = client.user
130
+ user.login
131
+ # => "defunkt"
132
+ ```
133
+ While Basic Authentication allows you to get started quickly, OAuth access
134
+ tokens are the preferred way to authenticate on behalf of users.
135
+
136
+ ### OAuth access tokens
137
+
138
+ [OAuth access tokens][oauth] provide two main benefits over using your username
139
+ and password:
140
+
141
+ * **Revokable access**. Access tokens can be revoked, removing access for only
142
+ that token without having to change your password everywhere.
143
+ * **Limited access**. Access tokens have [access scopes][] which allow for more
144
+ granular access to API resources. For instance, you can grant a third party
145
+ access to your gists but not your private repositories.
146
+
147
+ To use an access token with the Octokit client, pass your token in the
148
+ `:access_token` options parameter in lieu of your username and password:
149
+
150
+ ```ruby
151
+ client = Octokit::Client.new(:access_token => "<your 40 char token>")
152
+
153
+ user = client.user
154
+ user.login
155
+ # => "defunkt"
156
+ ```
157
+
158
+ You can [create access tokens through your GitHub Account Settings](https://help.github.com/articles/creating-an-access-token-for-command-line-use)
159
+ or with a basic authenticated Octokit client:
160
+
161
+ ```ruby
162
+ client = Octokit::Client.new \
163
+ :login => 'defunkt',
164
+ :password => 'c0d3b4ssssss!'
165
+
166
+ client.create_authorization(:scopes => ["user"], :note => "Name of token")
167
+ # => <your new oauth token>
168
+ ```
169
+
170
+ ### Two-Factor Authentication
171
+
172
+ [Two-Factor Authentication](https://help.github.com/articles/about-two-factor-authentication) brings added security to the account by requiring more information to login.
173
+
174
+ Using two-factor authentication for API calls is as simple as adding the [required header](http://developer.github.com/v3/auth/#working-with-two-factor-authentication) as an option:
175
+
176
+ ```ruby
177
+ client = Octokit::Client.new \
178
+ :login => 'defunkt',
179
+ :password => 'c0d3b4ssssss!'
180
+
181
+ user = client.user("defunkt", :headers => { "X-GitHub-OTP" => "<your 2FA token>" })
182
+ ```
183
+
184
+ As you can imagine, this gets annoying quick since two-factor auth tokens are very short lived. So it is recommended to create an oauth token for the user to communicate with the API:
185
+
186
+ ```ruby
187
+ client = Octokit::Client.new \
188
+ :login => 'defunkt',
189
+ :password => 'c0d3b4ssssss!'
190
+
191
+ client.create_authorization(:scopes => ["user"], :note => "Name of token",
192
+ :headers => { "X-GitHub-OTP" => "<your 2FA token>" })
193
+ # => <your new oauth token>
194
+ ```
195
+
196
+ ### Using a .netrc file
197
+
198
+ Octokit supports reading credentials from a netrc file (defaulting to
199
+ `~/.netrc`). Given these lines in your netrc:
200
+
201
+ ```
202
+ machine api.github.com
203
+ login defunkt
204
+ password c0d3b4ssssss!
205
+ ```
206
+ You can now create a client with those credentials:
207
+
208
+ ```ruby
209
+ client = Octokit::Client.new(:netrc => true)
210
+ client.login
211
+ # => "defunkt"
212
+ ```
213
+ But _I want to use OAuth_ you say. Since the GitHub API supports using an OAuth
214
+ token as a Basic password, you totally can:
215
+
216
+ ```
217
+ machine api.github.com
218
+ login defunkt
219
+ password <your 40 char token>
220
+ ```
221
+
222
+ **Note:** Support for netrc requires adding the [netrc gem][] to your Gemfile
223
+ or `.gemspec`.
224
+
225
+ ### Application authentication
226
+
227
+ Octokit also supports application-only authentication [using OAuth application client
228
+ credentials][app-creds]. Using application credentials will result in making
229
+ anonymous API calls on behalf of an application in order to take advantage of
230
+ the higher rate limit.
231
+
232
+ ```ruby
233
+ client = Octokit::Client.new \
234
+ :client_id => "<your 20 char id>",
235
+ :client_secret => "<your 40 char secret>"
236
+
237
+ user = client.user 'defunkt'
238
+ ```
239
+
240
+ [auth]: http://developer.github.com/v3/#authentication
241
+ [oauth]: http://developer.github.com/v3/oauth/
242
+ [access scopes]: http://developer.github.com/v3/oauth/#scopes
243
+ [app-creds]: http://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications
244
+
245
+ ## Pagination
246
+
247
+ Many GitHub API resources are [paginated][]. While you may be tempted to start
248
+ adding `:page` parameters to your calls, the API returns links to the next,
249
+ previous, and last pages for you in the `Link` response header as [Hypermedia
250
+ link relations](#hypermedia-agent).
251
+
252
+ ```ruby
253
+ issues = Octokit.issues 'rails/rails', :per_page => 100
254
+ issues.concat Octokit.last_response.rels[:next].get.data
255
+ ```
256
+
257
+ ### Auto pagination
258
+
259
+ For smallish resource lists, Octokit provides auto pagination. When this is
260
+ enabled, calls for paginated resources will fetch and concatenate the results
261
+ from every page into a single array:
262
+
263
+ ```ruby
264
+ Octokit.auto_paginate = true
265
+ issues = Octokit.issues 'rails/rails'
266
+ issues.length
267
+
268
+ # => 702
269
+ ```
270
+
271
+ **Note:** While Octokit auto pagination will set the page size to the maximum
272
+ `100`, and seek to not overstep your rate limit, you probably want to use a
273
+ custom pattern for traversing large lists.
274
+
275
+ [paginated]: http://developer.github.com/v3/#pagination
276
+
277
+ ## Configuration and defaults
278
+
279
+ While `Octokit::Client` accepts a range of options when creating a new client
280
+ instance, Octokit's configuration API allows you to set your configuration
281
+ options at the module level. This is particularly handy if you're creating a
282
+ number of client instances based on some shared defaults.
283
+
284
+ ### Configuring module defaults
285
+
286
+ Every writable attribute in {Octokit::Configurable} can be set one at a time:
287
+
288
+ ```ruby
289
+ Octokit.api_endpoint = 'http://api.github.dev'
290
+ Octokit.web_endpoint = 'http://github.dev'
291
+ ```
292
+
293
+ or in batch:
294
+
295
+ ```ruby
296
+ Octokit.configure do |c|
297
+ c.api_endpoint = 'http://api.github.dev'
298
+ c.web_endpoint = 'http://github.dev'
299
+ end
300
+ ```
301
+
302
+ ### Using ENV variables
303
+
304
+ Default configuration values are specified in {Octokit::Default}. Many
305
+ attributes will look for a default value from the ENV before returning
306
+ Octokit's default.
307
+
308
+ ```ruby
309
+ # Given $OCTOKIT_API_ENDPOINT is "http://api.github.dev"
310
+ Octokit.api_endpoint
311
+
312
+ # => "http://api.github.dev"
313
+ ```
314
+
315
+ Deprecation warnings and API endpoints in development preview warnings are
316
+ printed to STDOUT by default, these can be disabled by setting the ENV
317
+ `OCTOKIT_SILENT=true`.
318
+
319
+ ## Hypermedia agent
320
+
321
+ Starting in version 2.0, Octokit is [hypermedia][]-enabled. Under the hood,
322
+ {Octokit::Client} uses [Sawyer][], a hypermedia client built on [Faraday][].
323
+
324
+ ### Hypermedia in Octokit
325
+
326
+ Resources returned by Octokit methods contain not only data but hypermedia
327
+ link relations:
328
+
329
+ ```ruby
330
+ user = Octokit.user 'technoweenie'
331
+
332
+ # Get the repos rel, returned from the API
333
+ # as repos_url in the resource
334
+ user.rels[:repos].href
335
+ # => "https://api.github.com/users/technoweenie/repos"
336
+
337
+ repos = user.rels[:repos].get.data
338
+ repos.last.name
339
+ # => "faraday-zeromq"
340
+ ```
341
+
342
+ When processing API responses, all `*_url` attributes are culled in to the link
343
+ relations collection. Any `url` attribute becomes `.rels[:self]`.
344
+
345
+ ### URI templates
346
+
347
+ You might notice many link relations have variable placeholders. Octokit
348
+ supports [URI Templates][uri-templates] for parameterized URI expansion:
349
+
350
+ ```ruby
351
+ repo = Octokit.repo 'pengwynn/pingwynn'
352
+ rel = repo.rels[:issues]
353
+ # => #<Sawyer::Relation: issues: get https://api.github.com/repos/pengwynn/pingwynn/issues{/number}>
354
+
355
+ # Get a page of issues
356
+ rel.get.data
357
+
358
+ # Get issue #2
359
+ rel.get(:uri => {:number => 2}).data
360
+ ```
361
+
362
+ ### The Full Hypermedia Experience™
363
+
364
+ If you want to use Octokit as a pure hypermedia API client, you can start at
365
+ the API root and follow link relations from there:
366
+
367
+ ```ruby
368
+ root = Octokit.root
369
+ root.rels[:repository].get :uri => {:owner => "octokit", :repo => "octokit.rb" }
370
+ ```
371
+
372
+ Octokit 3.0 aims to be hypermedia-driven, removing the internal URL
373
+ construction currently used throughout the client.
374
+
375
+ [hypermedia]: http://en.wikipedia.org/wiki/Hypermedia
376
+ [Sawyer]: https://github.com/lostisland/sawyer
377
+ [Faraday]: https://github.com/lostisland/faraday
378
+ [uri-templates]: http://tools.ietf.org/html/rfc6570
379
+
380
+ ## Upgrading guide
381
+
382
+ Version 3.0 includes a couple breaking changes when upgrading from v2.x.x:
383
+
384
+ The [default media type][default-media-type] is now `v3` instead of `beta`. If
385
+ you need to request the older media type, you can set the default media type
386
+ for the client:
387
+
388
+ ```ruby
389
+ Octokit.default_media_type = "application/vnd.github.beta+json"
390
+ ```
391
+ or per-request
392
+
393
+ ```ruby
394
+ Octokit.emails(:accept => "application/vnd.github.beta+json")
395
+ ```
396
+
397
+ The long-deprecated `Octokit::Client#create_download` method has been removed.
398
+
399
+ [default-media-type]: https://developer.github.com/changes/2014-01-07-upcoming-change-to-default-media-type/
400
+
401
+ ### Upgrading from 1.x.x
402
+
403
+ Version 2.0 includes a completely rewritten `Client` factory that now memoizes
404
+ client instances based on unique configuration options. Breaking changes also
405
+ include:
406
+
407
+ * `:oauth_token` is now `:access_token`
408
+ * `:auto_traversal` is now `:auto_paginate`
409
+ * `Hashie::Mash` has been removed. Responses now return a `Sawyer::Resource`
410
+ object. This new type behaves mostly like a Ruby `Hash`, but does not fully
411
+ support the `Hashie::Mash` API.
412
+ * Two new client error types are raised where appropriate:
413
+ `Octokit::TooManyRequests` and `Octokit::TooManyLoginAttempts`
414
+ * The `search_*` methods from v1.x are now found at `legacy_search_*`
415
+ * Support for netrc requires including the [netrc gem][] in your Gemfile or
416
+ gemspec.
417
+ * DateTime fields are now proper `DateTime` objects. Previous versions outputted DateTime fields as 'String' objects.
418
+
419
+ [netrc gem]: https://rubygems.org/gems/netrc
420
+
421
+
422
+ ## Advanced usage
423
+
424
+ Since Octokit employs [Faraday][faraday] under the hood, some behavior can be
425
+ extended via middleware.
426
+
427
+ ### Debugging
428
+
429
+ Often, it helps to know what Octokit is doing under the hood. You can add a
430
+ logger to the middleware that enables you to peek into the underlying HTTP
431
+ traffic:
432
+
433
+ ```ruby
434
+ stack = Faraday::RackBuilder.new do |builder|
435
+ builder.response :logger
436
+ builder.use Octokit::Response::RaiseError
437
+ builder.adapter Faraday.default_adapter
438
+ end
439
+ Octokit.middleware = stack
440
+ Octokit.user 'pengwynn'
441
+ ```
442
+ ```
443
+ I, [2013-08-22T15:54:38.583300 #88227] INFO -- : get https://api.github.com/users/pengwynn
444
+ D, [2013-08-22T15:54:38.583401 #88227] DEBUG -- request: Accept: "application/vnd.github.beta+json"
445
+ User-Agent: "Octokit Ruby Gem 2.0.0.rc4"
446
+ I, [2013-08-22T15:54:38.843313 #88227] INFO -- Status: 200
447
+ D, [2013-08-22T15:54:38.843459 #88227] DEBUG -- response: server: "GitHub.com"
448
+ date: "Thu, 22 Aug 2013 20:54:40 GMT"
449
+ content-type: "application/json; charset=utf-8"
450
+ transfer-encoding: "chunked"
451
+ connection: "close"
452
+ status: "200 OK"
453
+ x-ratelimit-limit: "60"
454
+ x-ratelimit-remaining: "39"
455
+ x-ratelimit-reset: "1377205443"
456
+ ...
457
+ ```
458
+
459
+ See the [Faraday README][faraday] for more middleware magic.
460
+
461
+ ### Caching
462
+
463
+ If you want to boost performance, stretch your API rate limit, or avoid paying
464
+ the hypermedia tax, you can use [Faraday Http Cache][cache].
465
+
466
+ Add the gem to your Gemfile
467
+
468
+ gem 'faraday-http-cache'
469
+
470
+ Next, construct your own Faraday middleware:
471
+
472
+ ```ruby
473
+ stack = Faraday::RackBuilder.new do |builder|
474
+ builder.use Faraday::HttpCache
475
+ builder.use Octokit::Response::RaiseError
476
+ builder.adapter Faraday.default_adapter
477
+ end
478
+ Octokit.middleware = stack
479
+ ```
480
+
481
+ Once configured, the middleware will store responses in cache based on ETag
482
+ fingerprint and serve those back up for future `304` responses for the same
483
+ resource. See the [project README][cache] for advanced usage.
484
+
485
+
486
+ [cache]: https://github.com/plataformatec/faraday-http-cache
487
+ [faraday]: https://github.com/lostisland/faraday
488
+
489
+ ## Hacking on Octokit.rb
490
+
491
+ If you want to hack on Octokit locally, we try to make [bootstrapping the
492
+ project][bootstrapping] as painless as possible. To start hacking, clone and run:
493
+
494
+ script/bootstrap
495
+
496
+ This will install project dependencies and get you up and running. If you want
497
+ to run a Ruby console to poke on Octokit, you can crank one up with:
498
+
499
+ script/console
500
+
501
+ Using the scripts in `./scripts` instead of `bundle exec rspec`, `bundle
502
+ console`, etc. ensures your dependencies are up-to-date.
503
+
504
+ ### Running and writing new tests
505
+
506
+ Octokit uses [VCR][] for recording and playing back API fixtures during test
507
+ runs. These cassettes (fixtures) are part of the Git project in the `spec/cassettes`
508
+ folder. If you're not recording new cassettes you can run the specs with existing
509
+ cassettes with:
510
+
511
+ script/test
512
+
513
+ Octokit uses environmental variables for storing credentials used in testing.
514
+ If you are testing an API endpoint that doesn't require authentication, you
515
+ can get away without any additional configuration. For the most part, tests
516
+ use an authenticated client, using a token stored in `ENV['OCTOKIT_TEST_GITHUB_TOKEN']`.
517
+ There are several different authenticating method's used across the api.
518
+ Here is the full list of configurable environmental variables for testing
519
+ Octokit:
520
+
521
+ ENV Variable | Description |
522
+ :-------------------|:-----------------|
523
+ `OCTOKIT_TEST_GITHUB_LOGIN`| GitHub login name (preferably one created specifically for testing against).
524
+ `OCTOKIT_TEST_GITHUB_PASSWORD`| Password for the test GitHub login.
525
+ `OCTOKIT_TEST_GITHUB_TOKEN` | [Personal Access Token](https://github.com/blog/1509-personal-api-tokens) for the test GitHub login.
526
+ `OCTOKIT_TEST_GITHUB_CLIENT_ID` | Test OAuth application client id.
527
+ `OCTOKIT_TEST_GITHUB_CLIENT_SECRET` | Test OAuth application client secret.
528
+ `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`
529
+ `OCTOKIT_TEST_GITHUB_ORGANIZATION` | Test organization.
530
+
531
+ Since we periodically refresh our cassettes, please keep some points in mind
532
+ when writing new specs.
533
+
534
+ * **Specs should be idempotent**. The HTTP calls made during a spec should be
535
+ able to be run over and over. This means deleting a known resource prior to
536
+ creating it if the name has to be unique.
537
+ * **Specs should be able to be run in random order.** If a spec depends on
538
+ another resource as a fixture, make sure that's created in the scope of the
539
+ spec and not depend on a previous spec to create the data needed.
540
+ * **Do not depend on authenticated user info.** Instead of asserting
541
+ actual values in resources, try to assert the existence of a key or that a
542
+ response is an Array. We're testing the client, not the API.
543
+
544
+ [bootstrapping]: http://wynnnetherland.com/linked/2013012801/bootstrapping-consistency
545
+ [VCR]: https://github.com/vcr/vcr
546
+
547
+ ## Supported Ruby Versions
548
+
549
+ This library aims to support and is [tested against][travis] the following Ruby
550
+ implementations:
551
+
552
+ * Ruby 1.9.2
553
+ * Ruby 1.9.3
554
+ * Ruby 2.0.0
555
+ * Ruby 2.1.0
556
+
557
+ If something doesn't work on one of these Ruby versions, it's a bug.
558
+
559
+ This library may inadvertently work (or seem to work) on other Ruby
560
+ implementations, but support will only be provided for the versions listed
561
+ above.
562
+
563
+ If you would like this library to support another Ruby version, you may
564
+ volunteer to be a maintainer. Being a maintainer entails making sure all tests
565
+ run and pass on that implementation. When something breaks on your
566
+ implementation, you will be responsible for providing patches in a timely
567
+ fashion. If critical issues for a particular implementation exist at the time
568
+ of a major release, support for that Ruby version may be dropped.
569
+
570
+ [travis]: https://travis-ci.org/octokit/octokit.rb
571
+
572
+ ## Versioning
573
+
574
+ This library aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations
575
+ of this scheme should be reported as bugs. Specifically, if a minor or patch
576
+ version is released that breaks backward compatibility, that version should be
577
+ immediately yanked and/or a new version should be immediately released that
578
+ restores compatibility. Breaking changes to the public API will only be
579
+ introduced with new major versions. As a result of this policy, you can (and
580
+ should) specify a dependency on this gem using the [Pessimistic Version
581
+ Constraint][pvc] with two digits of precision. For example:
582
+
583
+ spec.add_dependency 'octokit', '~> 3.0'
584
+
585
+ [semver]: http://semver.org/
586
+ [pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
587
+
588
+ ## License
589
+
590
+ Licensed under Apache License 2.0. See LICENSE.txt for further details.
591
+
592
+ Copyright © 2013-2014 Adrian Webb <adrian.webb@coralnexus.com> Coral Technology Group LLC
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.5
1
+ 0.5.6
@@ -60,7 +60,7 @@ do
60
60
  fi
61
61
  done
62
62
 
63
- echo "5. Installing Rubinius -- this will take some time"
63
+ echo "5. Installing Ruby version $RUBY_RVM_VERSION -- this might take some time"
64
64
 
65
65
  if [ -z "$RUBY_RVM_VERSION" ]
66
66
  then
data/corl.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: corl 0.5.5 ruby lib
5
+ # stub: corl 0.5.6 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "corl"
9
- s.version = "0.5.5"
9
+ s.version = "0.5.6"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Adrian Webb"]
14
- s.date = "2014-12-27"
14
+ s.date = "2014-12-29"
15
15
  s.description = "Framework that provides a simple foundation for growing organically in the cloud"
16
16
  s.email = "adrian.webb@coralnexus.com"
17
17
  s.executables = ["corl"]
@@ -171,7 +171,7 @@ Gem::Specification.new do |s|
171
171
  s.rdoc_options = ["--title", "Coral Orchestration and Research Library", "--main", "README.rdoc", "--line-numbers"]
172
172
  s.required_ruby_version = Gem::Requirement.new(">= 1.9.1")
173
173
  s.rubyforge_project = "corl"
174
- s.rubygems_version = "2.4.2"
174
+ s.rubygems_version = "2.4.3"
175
175
  s.summary = "Coral Orchestration and Research Library"
176
176
 
177
177
  if s.respond_to? :specification_version then
@@ -260,7 +260,7 @@ class Puppetnode < Nucleon.plugin_class(:CORL, :provisioner)
260
260
 
261
261
  @@puppet_lock.synchronize do
262
262
  begin
263
- info("Starting catalog generation", { :i18n => false })
263
+ info("Starting catalog generation at #{Time.now.to_s}", { :i18n => false })
264
264
 
265
265
  @@status[id] = code.success
266
266
  @@network = network
@@ -297,7 +297,7 @@ class Puppetnode < Nucleon.plugin_class(:CORL, :provisioner)
297
297
 
298
298
  unless config.get(:dry_run, false)
299
299
  info("\n", { :prefix => false, :i18n => false })
300
- info("Starting configuration run", { :i18n => false })
300
+ info("Starting configuration run at #{Time.now.to_s}", { :i18n => false })
301
301
 
302
302
  # Configure the machine
303
303
  Puppet.push_context({ :current_environment => apply_environment }, "CORL environment for configurer transaction")
@@ -40,6 +40,8 @@ class FogBase < Nucleon.plugin_class(:CORL, :machine)
40
40
  ENV['DEBUG'] = 'true' if CORL.log_level == :debug
41
41
 
42
42
  require 'fog'
43
+ Fog.timeout = 1000
44
+
43
45
  yield if block_given?
44
46
 
45
47
  myself.compute = ::Fog::Compute.new(export)