octopussy 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/.bundle/config +2 -0
  2. data/.document +4 -0
  3. data/.gitignore +22 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +32 -0
  6. data/LICENSE +20 -0
  7. data/README.markdown +68 -0
  8. data/Rakefile +23 -0
  9. data/changelog.markdown +36 -0
  10. data/lib/octopussy.rb +1 -1
  11. data/lib/octopussy/client.rb +1 -1
  12. data/octopussy.gemspec +26 -0
  13. data/test/fixtures/blob.json +10 -0
  14. data/test/fixtures/branches.json +6 -0
  15. data/test/fixtures/close_issue.json +1 -0
  16. data/test/fixtures/collaborators.json +1 -0
  17. data/test/fixtures/comment.json +1 -0
  18. data/test/fixtures/contributors.json +6 -0
  19. data/test/fixtures/emails.json +1 -0
  20. data/test/fixtures/followers.json +3 -0
  21. data/test/fixtures/full_user.json +27 -0
  22. data/test/fixtures/issue.json +14 -0
  23. data/test/fixtures/issues.json +50 -0
  24. data/test/fixtures/keys.json +1 -0
  25. data/test/fixtures/labels.json +1 -0
  26. data/test/fixtures/languages.json +1 -0
  27. data/test/fixtures/list_branch_commits.json +48 -0
  28. data/test/fixtures/list_commits.json +824 -0
  29. data/test/fixtures/network.json +26 -0
  30. data/test/fixtures/network_data.json +1 -0
  31. data/test/fixtures/network_meta.json +109 -0
  32. data/test/fixtures/open_issue.json +1 -0
  33. data/test/fixtures/raw_git_data.yaml +7 -0
  34. data/test/fixtures/reopen_issue.json +1 -0
  35. data/test/fixtures/repo.json +14 -0
  36. data/test/fixtures/repo_search.json +452 -0
  37. data/test/fixtures/repos.json +830 -0
  38. data/test/fixtures/search.json +44 -0
  39. data/test/fixtures/show_commit.json +37 -0
  40. data/test/fixtures/tags.json +8 -0
  41. data/test/fixtures/timeline.json +1018 -0
  42. data/test/fixtures/trees.json +140 -0
  43. data/test/fixtures/user.json +16 -0
  44. data/test/helper.rb +0 -2
  45. metadata +134 -44
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_DISABLE_SHARED_GEMS: "1"
@@ -0,0 +1,4 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ features/**/*.feature
4
+ LICENSE
@@ -0,0 +1,22 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+ *.gem
21
+
22
+ ## PROJECT::SPECIFIC
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
@@ -0,0 +1,32 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ octopussy (0.3.1)
5
+ hashie (~> 0.4.0)
6
+ httparty (~> 0.6.1)
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ crack (0.1.8)
12
+ fakeweb (1.3.0)
13
+ hashie (0.4.0)
14
+ httparty (0.6.1)
15
+ crack (= 0.1.8)
16
+ jnunemaker-matchy (0.4.0)
17
+ mocha (0.9.9)
18
+ rake
19
+ rake (0.8.7)
20
+ shoulda (2.11.3)
21
+
22
+ PLATFORMS
23
+ ruby
24
+
25
+ DEPENDENCIES
26
+ fakeweb (~> 1.3)
27
+ hashie (~> 0.4.0)
28
+ httparty (~> 0.6.1)
29
+ jnunemaker-matchy (~> 0.4.0)
30
+ mocha (~> 0.9)
31
+ octopussy!
32
+ shoulda (~> 2.11)
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Wynn Netherland
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,68 @@
1
+ # octopussy
2
+
3
+ <img src='http://upload.wikimedia.org/wikipedia/en/b/bb/007Octopussyposter.jpg' style='float: right; margin: 0 0 10px 10px'/>
4
+
5
+ Simple Ruby wrapper for the GitHub v2 API.
6
+
7
+ ## Installation
8
+
9
+ sudo gem install octopussy
10
+
11
+ ## Some examples
12
+
13
+ ### Show a user
14
+
15
+ Octopussy.user('pengwynn')
16
+ => <#Hashie::Mash blog="http://wynnnetherland.com" company="Orrka" created_at="2008/02/25 10:24:19 -0800" email="wynn.netherland@gmail.com" followers_count=21 following_count=55 id=865 location="Dallas, TX" login="pengwynn" name="Wynn Netherland" public_gist_count=4 public_repo_count=16>
17
+
18
+ ### Show who a user follows
19
+
20
+ Octopussy.following('pengwynn')
21
+ => ["cglee", "bryansray", "rails", "zachinglis", "wycats", "obie", "mully", "squeejee", "jderrett", "Shopify", "ReinH", "technoweenie", "errfree", "defunkt", "joshsusser", "hashrocket", "newbamboo", "bigtiger", "github", "jamis", "jeresig", "thoughtbot", "therealadam", "jnunemaker", "seaofclouds", "choan", "llimllib", "kwhinnery", "marshall", "handcrafted", "adamstac", "jashkenas", "dan", "remy", "hayesdavis", "documentcloud", "imathis", "mdeiters", "njonsson", "asenchi", "mattsa", "marclove", "webiest", "brogers", "polomasta", "stephp", "mchelen", "piyush", "davidnorth", "rmetzler", "jferris", "madrobby", "zh", "erikvold", "desandro"]
22
+
23
+ ## Working with repositories
24
+
25
+ For convenience, methods that require a repo argument may be passed in any of the following forms
26
+
27
+ * "pengwynn/linked"
28
+ * {:username => 'pengwynn', :name => 'linkedin'}
29
+ * {:username => 'pengwynn', :repo => 'linkedin'}
30
+ * instance of Repo
31
+
32
+ ### Show a repo
33
+
34
+ Octopussy.repo("pengwynn/linkedin")
35
+ => <#Hashie::Mash description="Ruby wrapper for the LinkedIn API" fork=false forks=1 homepage="http://bit.ly/ruby-linkedin" name="linkedin" open_issues=2 owner="pengwynn" private=false url="http://github.com/pengwynn/linkedin" watchers=36>
36
+
37
+ ## Authenticated requests
38
+
39
+ Some methods require authentication so you'll need to pass a login and an api_token. You can find your GitHub API token on your [account page](https://github.com/account)
40
+
41
+ client = Octopussy::Client.new(:login => 'pengwynn', :token => 'OU812')
42
+ client.follow!('adamstac')
43
+
44
+ Read the full [docs](http://rdoc.info/projects/pengwynn/octopussy) or check out the [examples](http://github.com/pengwynn/octopussy/tree/master/examples)
45
+
46
+ ## TODO
47
+
48
+ * Feed parsing
49
+ * More examples
50
+
51
+ ## Note on Patches/Pull Requests
52
+
53
+ * Fork the project.
54
+ * Make your feature addition or bug fix.
55
+ * Add tests for it. This is important so I don't break it in a
56
+ future version unintentionally.
57
+ * Commit, do not mess with rakefile, version, or history.
58
+ (if you want to have your own version, that is fine but
59
+ bump version in a commit by itself I can ignore when I pull)
60
+ * Send me a pull request. Bonus points for topic branches.
61
+
62
+ ## Credits
63
+
64
+ Octopussy is inspired by [Octopi](http://github.com/fcoury/octopi) and aims to be a lightweight, less active-resourcey alternative.
65
+
66
+ ## Copyright
67
+
68
+ Copyright (c) 2009 [Wynn Netherland](http://wynnnetherland.com), [Adam Stacoviak](http://adamstacoviak.com/). See LICENSE for details.
@@ -0,0 +1,23 @@
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
+ require "bundler/version"
3
+ require "shoulda/tasks"
4
+ require 'lib/octopussy'
5
+
6
+ require "rake/testtask"
7
+ Rake::TestTask.new(:test) do |test|
8
+ test.ruby_opts = ["-rubygems"] if defined? Gem
9
+ test.libs << "lib" << "test"
10
+ test.pattern = "test/**/*_test.rb"
11
+ end
12
+
13
+ desc "Build the gem"
14
+ task :build do
15
+ system "gem build octopussy.gemspec"
16
+ end
17
+
18
+ desc "Build and release the gem"
19
+ task :release => :build do
20
+ system "gem push octopussy-#{Octopussy::VERSION}.gem"
21
+ end
22
+
23
+ task :default => :test
@@ -0,0 +1,36 @@
1
+ # Changelog
2
+ ## 0.3.1
3
+ * Bumped HTTParty dependency
4
+ ## 0.3.0
5
+ * Added set_repo_info patch from [Scott Bronson](http://github.com/bronson)
6
+ ## 0.2.4
7
+ * Rev'd HTTParty dependency, switched to Bundler
8
+ ## 0.2.3
9
+ * Patch from [Sutto](http://github.com/Sutto) to use authentication with list repos if available
10
+ ## 0.2.2
11
+ * Patch from [abrader](http://github.com/abrader) to add auth_params query to the blob, tree, and repo class methods
12
+ ## 0.2.1
13
+ * Contributors API courtesy of @enricob
14
+ ## 0.2.0
15
+ * Commits API courtesy of @enricob
16
+
17
+ ## 0.1.4
18
+
19
+ * Preserved links array and content for events parsed from feeds
20
+
21
+ ## 0.1.3
22
+
23
+ * Added Download event
24
+
25
+ ## 0.1.2
26
+
27
+ * Added Delete event type
28
+ * Added Public event type
29
+
30
+ ## 0.1.1
31
+
32
+ * Added Comment event type
33
+
34
+ ## 0.0.1 Initial version
35
+
36
+ * GitHub v2 API complete
@@ -14,7 +14,7 @@ require 'octopussy/client'
14
14
  module Octopussy
15
15
  extend SingleForwardable
16
16
 
17
- VERSION = "0.3.0".freeze
17
+ VERSION = "0.3.1" unless defined?(Octopussy::VERSION)
18
18
 
19
19
  class OctopussyError < StandardError
20
20
  attr_reader :data
@@ -203,7 +203,7 @@ module Octopussy
203
203
  def delete(repo, delete_token={})
204
204
  repo = Repo.new(repo)
205
205
  response = self.class.post("/repos/delete/#{repo.name}", :query => auth_params, :body => {:delete_token => delete_token})
206
- Hashie::Mash.new(response).repository
206
+ Hashie::Mash.new(response)
207
207
  end
208
208
 
209
209
  def confirm_delete(repo, delete_token)
@@ -0,0 +1,26 @@
1
+ require 'bundler'
2
+ require 'bundler/version'
3
+
4
+ require File.expand_path('lib/octopussy')
5
+
6
+ Gem::Specification.new do |s|
7
+ s.add_development_dependency('fakeweb', '~> 1.3')
8
+ s.add_development_dependency('jnunemaker-matchy', '~> 0.4.0')
9
+ s.add_development_dependency('mocha', '~> 0.9')
10
+ s.add_development_dependency('shoulda', '~> 2.11')
11
+ s.add_runtime_dependency('hashie', '~> 0.4.0')
12
+ s.add_runtime_dependency('httparty', '~> 0.6.1')
13
+ s.name = "octopussy"
14
+ s.authors = ["Wynn Netherland", "Adam Stacoviak"]
15
+ s.description = %q{Simple wrapper for the GitHub API v2}
16
+ s.email = ["wynn.netherland@gmail.com"]
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{|f| File.basename(f)}
18
+ s.files = `git ls-files`.split("\n")
19
+ s.homepage = "http://wynnnetherland.com/projects/octopussy/"
20
+ s.require_paths = ["lib"]
21
+ s.summary = %q{Wrapper for the Octopussy API}
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.version = Octopussy::VERSION
24
+ s.platform = Gem::Platform::RUBY
25
+ s.required_rubygems_version = Gem::Requirement.new('>= 1.3.6') if s.respond_to? :required_rubygems_version=
26
+ end
@@ -0,0 +1,10 @@
1
+ {
2
+ "blob": {
3
+ "name": "README.txt",
4
+ "size": 178,
5
+ "sha": "d4fc2d5e810d9b4bc1ce67702603080e3086a4ed",
6
+ "data": "Please visit http://famspam.com/facebox/ or open index.html in your favorite browser.nnNeed help? Join our Google Groups mailing list:n http://groups.google.com/group/facebox/n",
7
+ "mode": "100644",
8
+ "mime_type": "text/plain"
9
+ }
10
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "branches": {
3
+ "integration": "e5bb86437ec67c115eee85ce6bf0b3b513946cee",
4
+ "master": "a202fb290bac4a488f6aee9f2d30ee0738e08602"
5
+ }
6
+ }
@@ -0,0 +1 @@
1
+ {"issue":{"number":2,"votes":0,"created_at":"2009/12/10 12:14:34 -0800","body":"testing api","title":"testing","updated_at":"2009/12/10 12:18:52 -0800","closed_at":"2009/12/10 12:18:52 -0800","user":"pengwynn","labels":[],"state":"closed"}}
@@ -0,0 +1 @@
1
+ {"collaborators":["pengwynn","adamstac"]}
@@ -0,0 +1 @@
1
+ {"comment": {"comment": "Nice catch!", "status": "saved"}}
@@ -0,0 +1,6 @@
1
+ {
2
+ "contributors": [
3
+ ["pengwynn", 39],
4
+ ["holman", 1]
5
+ ]
6
+ }
@@ -0,0 +1 @@
1
+ {"emails":["wynn@squeejee.com","wynn.netherland@gmail.com","wynn@orrka.com"]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "users": ["cglee", "mattsa", "zachinglis", "seaofclouds", "njonsson", "davidnorth", "stephp", "polomasta", "webiest", "mchelen", "brogers", "marclove", "adamstac", "marshall", "handcrafted", "asenchi", "piyush", "rmetzler", "nileshtrivedi", "erikvold", "thechangelog"]
3
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "user": {
3
+ "plan": {
4
+ "name": "free",
5
+ "collaborators": 0,
6
+ "space": 307200,
7
+ "private_repos": 0
8
+ },
9
+ "name": "Wynn Netherland",
10
+ "company": "Orrka",
11
+ "location": "Dallas, TX",
12
+ "created_at": "2008/02/25 10:24:19 -0800",
13
+ "collaborators": 0,
14
+ "disk_usage": 85605,
15
+ "public_gist_count": 3,
16
+ "public_repo_count": 15,
17
+ "blog": "http://wynnnetherland.com",
18
+ "following_count": 55,
19
+ "id": 865,
20
+ "private_gist_count": 1,
21
+ "owned_private_repo_count": 0,
22
+ "total_private_repo_count": 0,
23
+ "followers_count": 21,
24
+ "login": "pengwynn",
25
+ "email": "wynn.netherland@gmail.com"
26
+ }
27
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "issue": {
3
+ "number": 3,
4
+ "votes": 2,
5
+ "created_at": "2009/05/06 17:28:29 -0700",
6
+ "body": "Not sure if this is an issue with Crack or with this lib, but every time I try to create a friendship, I get this error:rnrn>> base.friendship_create('anyone')rnCrack::ParseError: Invalid JSON stringrntfrom /Library/Ruby/Gems/1.8/gems/crack-0.1.2/lib/crack/json.rb:14:in `parse'rntfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/request.rb:73:in `parse'rntfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/request.rb:48:in `make_friendly'rntfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/request.rb:34:in `perform'rntfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/request.rb:10:in `post'rntfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/base.rb:162:in `perform_post'rntfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/base.rb:76:in `friendship_create'rn",
7
+ "title": "Crack error when creating friendship",
8
+ "updated_at": "2009/08/17 14:25:17 -0700",
9
+ "closed_at": null,
10
+ "user": "shanev",
11
+ "labels": [],
12
+ "state": "open"
13
+ }
14
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "issues": [{
3
+ "number": 3,
4
+ "votes": 2,
5
+ "created_at": "2009/05/06 17:28:29 -0700",
6
+ "body": "Not sure if this is an issue with Crack or with this lib, but every time I try to create a friendship, I get this error:\r\n\r\n>> base.friendship_create('anyone')\r\nCrack::ParseError: Invalid JSON string\r\n\tfrom /Library/Ruby/Gems/1.8/gems/crack-0.1.2/lib/crack/json.rb:14:in `parse'\r\n\tfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/request.rb:73:in `parse'\r\n\tfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/request.rb:48:in `make_friendly'\r\n\tfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/request.rb:34:in `perform'\r\n\tfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/request.rb:10:in `post'\r\n\tfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/base.rb:162:in `perform_post'\r\n\tfrom /Library/Ruby/Gems/1.8/gems/twitter-0.6.8/lib/twitter/base.rb:76:in `friendship_create'\r\n",
7
+ "title": "Crack error when creating friendship",
8
+ "updated_at": "2009/08/17 14:25:17 -0700",
9
+ "closed_at": null,
10
+ "user": "shanev",
11
+ "labels": [],
12
+ "state": "open"
13
+ },
14
+ {
15
+ "number": 6,
16
+ "votes": 2,
17
+ "created_at": "2009/06/07 12:28:24 -0700",
18
+ "body": "The methods on the Twitter class (firehose, friend_ids, follower_ids, status, user) assume that no errors will occur, but all of them can at least return a 50x error. An example using FakeWeb:\r\n\r\n<pre>\r\n>> FakeWeb.register_uri(:get, 'http://twitter.com/statuses/public_timeline.json',\r\n?> :string => '{\"request\":\"\\/statuses\\/public_timeline.json\",\"error\":\"Bad gateway\"}',\r\n?> :status => ['502', 'Bad Gateway'])\r\n=> [#<FakeWeb::Responder:0x7f3b2138 @options={:status=>[\"502\", \"Bad Gateway\"], :string=>\"{\\\"request\\\":\\\"\\\\/statuses\\\\/public_timeline.json\\\",\\\"error\\\":\\\"Bad gateway\\\"}\"}, @method=:get, @uri=\"http://twitter.com/statuses/public_timeline.json\", @times=1>]\r\n>> Twitter.firehose\r\nNoMethodError: undefined method `stringify_keys' for [\"request\", \"/statuses/public_timeline.json\"]:Array\r\n from /usr/lib/ruby/gems/1.8/gems/mash-0.0.3/lib/mash.rb:131:in `deep_update'\r\n from /usr/lib/ruby/gems/1.8/gems/mash-0.0.3/lib/mash.rb:50:in `initialize'\r\n from /usr/lib/ruby/gems/1.8/gems/twitter-0.6.11/lib/twitter.rb:34:in `new'\r\n from /usr/lib/ruby/gems/1.8/gems/twitter-0.6.11/lib/twitter.rb:34:in `firehose' \r\n</pre>",
19
+ "title": "Methods on Twitter class don't check for errors",
20
+ "updated_at": "2009/10/29 16:28:45 -0700",
21
+ "closed_at": null,
22
+ "user": "bkocik",
23
+ "labels": [],
24
+ "state": "open"
25
+ },
26
+ {
27
+ "number": 8,
28
+ "votes": 0,
29
+ "created_at": "2009/06/17 14:40:43 -0700",
30
+ "body": "When you request a search with a :since_id parameter too old, according to [Twitter](http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search):\r\n\r\n> This method will return an HTTP 404 error if since_id is used and is too old to be in the search index\r\n\r\nwhich results in a +Crack::ParseError+ exception",
31
+ "title": "Error handling 404 from Twitter::Search (JSON error)",
32
+ "updated_at": "2009/06/17 14:40:43 -0700",
33
+ "closed_at": null,
34
+ "user": "chubas",
35
+ "labels": [],
36
+ "state": "open"
37
+ },
38
+ {
39
+ "number": 9,
40
+ "votes": 3,
41
+ "created_at": "2009/06/18 07:53:09 -0700",
42
+ "body": "happens periodically, presumably when twitter search services returns a string for a response instead of a hash?",
43
+ "title": "stringify_keys error in Mash.new when using Twitter::search",
44
+ "updated_at": "2009/11/12 08:52:13 -0800",
45
+ "closed_at": null,
46
+ "user": "metrostar",
47
+ "labels": [],
48
+ "state": "open"
49
+ }]
50
+ }
@@ -0,0 +1 @@
1
+ {"public_keys":[{"title":null,"id":2102,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAAddBIwAAAasdfasdfQEAxfm4eG+Dasd3b/d41W3BR8h9IOv63ISyaVTVXLsiwAfGZw17Kc9xpdp1NblqvDIj+T1bI6U420/Jb5tBw0MlltgUxwwySVH1f37w89VzdC7ArsR6X3KOIz/fhtmUCNyPakO+BjKjK3MtLcQvrNY5s0B91D/klP1pgcGVUzJxw5kCtZ6By3HjGXDK5lW9qMAG93ncrFc6tTE3WQ30Wgcsqf+uNmc9tyR5cO0asKneDaz1t486ydF9P97dzwM+SMY9GcpZ2gvOp0UHdA59Wr3LEE6/EqGxAxRDrT/1wtPk5Ya1TEWWX+WdlfZ1zttd3h7dkVom1cKWCa262mU3THoe5aytJw=="},{"title":null,"id":2686,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw4GP0832tasCsbl2QcEehotpcjfMMgbep9xWuf0T6fmMXgLI9QkiPdjA2oqxdJp7l33Echsb5gVjbY+96KPd9Q6Q7FM9Si9srfJpw2folq89+LJWBYe0qw3BMDFfmBtcmTMZT1NWzZ1RT/crPqDSEGYMny9s2jR3spL2K8R9dcWalFgpasRbfEacr7xUvFbIcxeU2xsWvTjA8+YwoU2pc3tG8XX8LMMRdzadN5L9rOrxlo6XybOH6KgKPA02jKbdmsbIZ3umHylMdTckjLWSDut+7ACD+7ztuPkH9Ya9lYWBzn8kVzwL91+4T8RbYndD0VqS4GpuL2AOqVrDHMrsjw=="},{"title":null,"id":17725,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxvbvBp9ugiuHPr8LvhAjO1qHmzNSJp/SpJoP0ZXfVVR4+m9fti2Kuf5efgDIKsW4l1ODCuhuQLaa5TB+X4/uZB8PUKtZaUswNRfN/w8fzX24+pEMq9Jf2l++Nz7xyA1PngSLeZ/FWbFP5Nl8DnOnb1GiLIcGPb0rMZ4CvoxwNtp8bb2F5HVVSF0n2cyJvsb+ZqQRZwejYmLlrzagUAfrz0BWDkGw2QitZhIsy7XaqK+jDM8k9qugk19n69e5VVYZYLvFUJ16aX+zhWsx5+Li2jXFlJcYpadV3KjY4+KF2I26idO/qhQv31+QH9/gTQxKZKsWWbjFMfDlzoquG9FtZw=="},{"title":null,"id":22206,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6JdBPCEoeH3nl93pjzkw88bJ3YSaZLUhe3rWULadU/fL0vxtRBaiRAfsSIq1/ank8fLnrl3TquQq26DOrZWyam4ODHQRzHdN4MlE3kH8tSHoRedwuzFyAjCC23QpLD+4vGwhyrJmuebT13mn2t0rbnOZMpKY1f9r97Tbhx6/sMIE+n6zaWBg/miOWMaR2rQ048vNuaA+hhJz+MdU6VL94GxchuQ7eeCP1tucbEG6qQraRhvWqV2GRDJ86Xc34uC2eMQaybk+UHH4TSe9DNYSRRpHWS5IgAPZHO267X3uOhSDOOXHQx/liVVWd6PTcJQkQ6u0W8hNBQVUZAHnTgG9cQ=="},{"title":"pengwynn","id":42883,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2QU45StpDGCM9KJgaIzv6/GXsUO8mrpOkfevd2ht7IMN5Fdl2R7jjCjv9eZmIWieBWsKiFUq2T5/+royc7jjHjGd9s8FGYIi9nACNblzDLT1w6WX6ORuS2LuUuq9uUdtAghbWImQSQDOpGaW73OCvBSuZKKKvqwSXsOFhstfwYaOLzfF9xdCVd02DJY75QSiUkNaaB4300yqQlVYdrtz2akXLXpxlzojALcoAHefuCOK7C8/J3LCiPVGftBZ7Fab6k6LV7rguhcfkyg4bwzAMMOcwx+AUj1WLv4rdDJOi4X6xJzEBitvhJFTQ4ynGXmaalKGwSzaIhByG74JsGq7Ew=="},{"title":"wynn@pengwynn.local","id":111978,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlugsW063BAHaUOYSJa+6T1/lKCIptIBXjppAXwnALKYJCfSTnQjEXhAv8CDXLkVDlF11A1rqYrHuVs/CdVJblRXfmHAhSy+3GcYqyrBNdRJtu/R1+ziDiAnSOTyZjLFwJwovy7coRJ4o2ZaZZkYhBQe6Th6cTtPFIho8yab3plxWzL7MvF6MPwIW3vJO38Z8c91SHBWQqbKBtLwjkWYjZSyu+MSB5BUXBIB6AcHcQOP0/0q/4rO4dk4qjkH5rXqa29knoCBHjpMJB7L3v0BedSzPN3/O7xwE85mok1OZaIYjFqNgSnEw3VVOiuJ95EVHN6ELR/gWbEYddvkRZUo8Pw=="}]}
@@ -0,0 +1 @@
1
+ {"labels":["oauth"]}
@@ -0,0 +1 @@
1
+ {"languages":{"Ruby":21515}}
@@ -0,0 +1,48 @@
1
+ {
2
+ "commits": [
3
+ {
4
+ "author": {
5
+ "name": "Scott Chacon",
6
+ "login": "schacon",
7
+ "email": "schacon@gmail.com"
8
+ },
9
+ "parents": [
10
+ {
11
+ "id": "a11bef06a3f659402fe7563abf99ad00de2209e6"
12
+ }
13
+ ],
14
+ "url": "http:\/\/github.com\/schacon\/simplegit\/commit\/085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7",
15
+ "id": "085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7",
16
+ "committed_date": "2009-04-17T21:55:53-07:00",
17
+ "authored_date": "2008-03-15T16:40:33-07:00",
18
+ "message": "removed unnecessary test code",
19
+ "committer": {
20
+ "name": "Scott Chacon",
21
+ "login": "schacon",
22
+ "email": "schacon@gmail.com"
23
+ },
24
+ "tree": "e1b3ececb0cbaf2320ca3eebb8aa2beb1bb45c66"
25
+ },
26
+ {
27
+ "author": {
28
+ "name": "Scott Chacon",
29
+ "login": "schacon",
30
+ "email": "schacon@gmail.com"
31
+ },
32
+ "parents": [
33
+
34
+ ],
35
+ "url": "http:\/\/github.com\/schacon\/simplegit\/commit\/a11bef06a3f659402fe7563abf99ad00de2209e6",
36
+ "id": "a11bef06a3f659402fe7563abf99ad00de2209e6",
37
+ "committed_date": "2008-03-15T10:31:28-07:00",
38
+ "authored_date": "2008-03-15T10:31:28-07:00",
39
+ "message": "first commit",
40
+ "committer": {
41
+ "name": "Scott Chacon",
42
+ "login": "schacon",
43
+ "email": "schacon@gmail.com"
44
+ },
45
+ "tree": "1a738da87a85f2b1c49c1421041cf41d1d90d434"
46
+ }
47
+ ]
48
+ }