From ed31abe6de768d67e44faa3a53dfad63ff914fee Mon Sep 17 00:00:00 2001 From: Vincent Jacques Date: Thu, 28 Jun 2012 22:06:05 +0100 Subject: [PATCH] Add 4 (failing) tests for legacy search API (issue #49) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Naïve implementation done in this commit will not work: - pagination is managed another way - users, repositories and issues do not have the standard format --- github/Github.py | 38 +++++++++++++++++-- github/Repository.py | 15 +++++++- test/Github.py | 10 +++++ test/ReplayData/Github.testSearchRepos.txt | 5 +++ .../Github.testSearchUserByEmail.txt | 5 +++ test/ReplayData/Github.testSearchUsers.txt | 5 +++ .../Repository.testSearchIssues.txt | 5 +++ test/Repository.py | 3 ++ 8 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 test/ReplayData/Github.testSearchRepos.txt create mode 100644 test/ReplayData/Github.testSearchUserByEmail.txt create mode 100644 test/ReplayData/Github.testSearchUsers.txt create mode 100644 test/ReplayData/Repository.testSearchIssues.txt diff --git a/github/Github.py b/github/Github.py index ec9ff2d7..0f64a0c5 100644 --- a/github/Github.py +++ b/github/Github.py @@ -17,6 +17,7 @@ import NamedUser import Organization import Gist import PaginatedList +import Repository class Github( object ): def __init__( self, login_or_token = None, password = None ): @@ -66,10 +67,41 @@ class Github( object ): ) def search_repos( self, keyword ): - pass + assert isinstance( keyword, ( str, unicode ) ), keyword + headers, data = self.__requester.requestAndCheck( + "GET", + "https://api.github.com/legacy/repos/search/" + keyword, + None, + None + ) + return PaginatedList.PaginatedList( + Repository.Repository, + self.__requester, + headers, + data[ "repositories" ] + ) def search_users( self, keyword ): - pass + assert isinstance( keyword, ( str, unicode ) ), keyword + headers, data = self.__requester.requestAndCheck( + "GET", + "https://api.github.com/legacy/user/search/" + keyword, + None, + None + ) + return PaginatedList.PaginatedList( + NamedUser.NamedUser, + self.__requester, + headers, + data[ "users" ] + ) def search_user_by_email( self, email ): - pass + assert isinstance( email, ( str, unicode ) ), email + headers, data = self.__requester.requestAndCheck( + "GET", + "https://api.github.com/legacy/user/email/" + email, + None, + None + ) + return NamedUser.NamedUser( self.__requester, data[ "user" ], completed = False ) diff --git a/github/Repository.py b/github/Repository.py index bb266689..499eab09 100644 --- a/github/Repository.py +++ b/github/Repository.py @@ -1003,7 +1003,20 @@ class Repository( GithubObject.GithubObject ): ) def search_issues( self, state, keyword ): - pass + assert state in [ "open", "closed" ], state + assert isinstance( keyword, ( str, unicode ) ), keyword + headers, data = self._requester.requestAndCheck( + "GET", + "https://api.github.com/legacy/issues/search/" + self.owner.login + "/" + self.name + "/" + state + "/" + keyword, + None, + None + ) + return PaginatedList.PaginatedList( + Issue.Issue, + self._requester, + headers, + data[ "issues" ] + ) @property def _identity( self ): diff --git a/test/Github.py b/test/Github.py index bf9ed4dd..6a9abe24 100644 --- a/test/Github.py +++ b/test/Github.py @@ -16,3 +16,13 @@ import Framework class Github( Framework.TestCase ): def testGetGists( self ): self.assertListKeyBegin( self.g.get_gists(), lambda g: g.id, [ "2729695", "2729656", "2729597", "2729584", "2729569", "2729554", "2729543", "2729537", "2729536", "2729533", "2729525", "2729522", "2729519", "2729515", "2729506", "2729487", "2729484", "2729482", "2729441", "2729432", "2729420", "2729398", "2729372", "2729371", "2729351", "2729346", "2729316", "2729304", "2729296", "2729276", "2729272", "2729265", "2729195", "2729160", "2729143", "2729127", "2729119", "2729113", "2729103", "2729069", "2729059", "2729051", "2729029", "2729027", "2729026", "2729022", "2729002", "2728985", "2728979", "2728964", "2728937", "2728933", "2728884", "2728869", "2728866", "2728855", "2728854", "2728853", "2728846", "2728825", "2728814", "2728813", "2728812", "2728805", "2728802", "2728800", "2728798", "2728797", "2728796", "2728793", "2728758", "2728754", "2728751", "2728748", "2728721", "2728716", "2728715", "2728705", "2728701", "2728699", "2728697", "2728688", "2728683", "2728677", "2728649", "2728640", "2728625", "2728620", "2728615", "2728614", "2728565", "2728564", "2728554", "2728523", "2728519", "2728511", "2728497", "2728496", "2728495", "2728487" ] ) + + def testSearchRepos( self ): + self.assertListKeyBegin( self.g.search_repos( "github api v3" ), lambda r: r.full_name, [ "pengwynn/octokit", "jwilger/github-v3-api", "acoulton/github_v3_api" ] ) + + def testSearchUsers( self ): + self.assertListKeyBegin( self.g.search_users( "vincent" ), lambda u: u.login, [ "nvie", "obra", "lusis" ] ) + + def testSearchUserByEmail( self ): + user = self.g.search_user_by_email( "vincent@vincent-jacques.net" ) + self.assertEqual( user.login, "jacquev6" ) diff --git a/test/ReplayData/Github.testSearchRepos.txt b/test/ReplayData/Github.testSearchRepos.txt new file mode 100644 index 00000000..86b964b2 --- /dev/null +++ b/test/ReplayData/Github.testSearchRepos.txt @@ -0,0 +1,5 @@ +GET /legacy/repos/search/github api v3 {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '41937'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ca6d7101af2acb5a04f11645bc01f4b2"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 20:53:53 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"repositories":[{"type":"repo","has_issues":true,"created_at":"2009-12-10T13:41:49-08:00","score":16.919834,"owner":"pengwynn","has_downloads":true,"followers":295,"created":"2009-12-10T13:41:49-08:00","pushed":"2012-06-28T05:54:54-07:00","homepage":"http://pengwynn.github.com/octokit","watchers":295,"has_wiki":true,"language":"Ruby","pushed_at":"2012-06-28T05:54:54-07:00","forks":73,"fork":false,"size":248,"name":"octokit","url":"https://github.com/pengwynn/octokit","description":"Simple Ruby wrapper for the GitHub v3 API","open_issues":2,"private":false,"integrate_branch":"master","username":"pengwynn"},{"type":"repo","has_issues":true,"created_at":"2011-06-23T15:52:33-07:00","score":8.835576,"owner":"jwilger","has_downloads":true,"followers":35,"created":"2011-06-23T15:52:33-07:00","pushed":"2012-01-20T12:46:30-08:00","watchers":35,"has_wiki":false,"language":"Ruby","pushed_at":"2012-01-20T12:46:30-08:00","forks":13,"fork":false,"size":212,"name":"github-v3-api","url":"https://github.com/jwilger/github-v3-api","description":"Ruby Client for the GitHub v3 API","open_issues":2,"private":false,"username":"jwilger"},{"type":"repo","has_issues":true,"created_at":"2011-10-11T13:02:03-07:00","master_branch":"develop","score":7.502039,"owner":"acoulton","has_downloads":true,"followers":11,"created":"2011-10-11T13:02:03-07:00","pushed":"2011-12-29T20:40:32-08:00","homepage":"","watchers":11,"has_wiki":true,"language":"PHP","pushed_at":"2011-12-29T20:40:32-08:00","forks":4,"fork":false,"size":164,"name":"github_v3_api","url":"https://github.com/acoulton/github_v3_api","description":"KO3 module for interacting with the new Github v3 API","open_issues":1,"private":false,"username":"acoulton"},{"type":"repo","has_issues":true,"created_at":"2011-09-25T12:36:22-07:00","score":7.3562603,"owner":"peter-murach","has_downloads":true,"followers":77,"created":"2011-09-25T12:36:22-07:00","pushed":"2012-06-24T10:54:21-07:00","homepage":"http://peter-murach.github.com/github","watchers":77,"has_wiki":true,"language":"Ruby","pushed_at":"2012-06-24T10:54:21-07:00","forks":26,"fork":false,"size":300,"name":"github","url":"https://github.com/peter-murach/github","description":"Ruby interface to github API v3","open_issues":1,"private":false,"username":"peter-murach"},{"type":"repo","has_issues":true,"created_at":"2012-06-04T15:20:41-07:00","score":7.121046,"owner":"VisualAppeal","has_downloads":true,"followers":2,"organization":"VisualAppeal","created":"2012-06-04T15:20:41-07:00","pushed":"2012-06-04T15:29:07-07:00","watchers":2,"has_wiki":true,"language":"PHP","pushed_at":"2012-06-04T15:29:07-07:00","forks":1,"fork":false,"size":132,"name":"Github-API-v3","url":"https://github.com/VisualAppeal/Github-API-v3","description":"PHP Github API client for version 3.","open_issues":0,"private":false,"username":"VisualAppeal"},{"type":"repo","has_issues":true,"created_at":"2012-02-21T02:02:04-08:00","score":7.116807,"owner":"guillaumepotier","has_downloads":true,"followers":2,"created":"2012-02-21T02:02:04-08:00","pushed":"2012-02-23T01:05:23-08:00","homepage":"","watchers":2,"has_wiki":true,"language":"PHP","pushed_at":"2012-02-23T01:05:23-08:00","forks":1,"fork":false,"size":104,"name":"GithubApi_v3","url":"https://github.com/guillaumepotier/GithubApi_v3","description":"Very simple class I use for my pet projects","open_issues":0,"private":false,"username":"guillaumepotier"},{"type":"repo","has_issues":true,"created_at":"2012-01-14T17:32:10-08:00","score":6.182912,"owner":"phated","has_downloads":true,"followers":3,"created":"2012-01-14T17:32:10-08:00","pushed":"2012-01-15T23:58:31-08:00","homepage":"","watchers":3,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-01-15T23:58:31-08:00","forks":1,"fork":false,"size":9196,"name":"github-v3-api-js","url":"https://github.com/phated/github-v3-api-js","description":"Experimentation with github api (v3) in javascript","open_issues":0,"private":false,"username":"phated"},{"type":"repo","has_issues":true,"created_at":"2012-02-05T20:34:12-08:00","score":6.127202,"owner":"rsanders","has_downloads":true,"followers":3,"created":"2012-02-05T20:34:12-08:00","pushed":"2012-02-07T22:50:13-08:00","homepage":"","watchers":3,"has_wiki":true,"language":"Emacs Lisp","pushed_at":"2012-02-07T22:50:13-08:00","forks":3,"fork":false,"size":120,"name":"github-api-v3.el","url":"https://github.com/rsanders/github-api-v3.el","description":"Emacs Lisp interface for the GitHub API v3","open_issues":0,"private":false,"username":"rsanders"},{"type":"repo","has_issues":true,"created_at":"2011-01-21T13:09:02-08:00","score":5.6330614,"owner":"farnoy","has_downloads":true,"followers":46,"created":"2011-01-21T13:09:02-08:00","pushed":"2012-01-31T04:33:03-08:00","homepage":"","watchers":46,"has_wiki":true,"language":"Ruby","pushed_at":"2012-01-31T04:33:03-08:00","forks":13,"fork":false,"size":164,"name":"github-api-client","url":"https://github.com/farnoy/github-api-client","description":"v2+v3 GitHub API Ruby client library","open_issues":5,"private":false,"username":"farnoy"},{"type":"repo","has_issues":true,"created_at":"2011-11-20T18:13:13-08:00","score":4.9115667,"owner":"pksunkara","has_downloads":true,"followers":61,"created":"2011-11-20T18:13:13-08:00","pushed":"2012-06-20T10:21:27-07:00","homepage":"","watchers":61,"has_wiki":true,"language":"CoffeeScript","pushed_at":"2012-06-20T10:21:27-07:00","forks":16,"fork":false,"size":160,"name":"octonode","url":"https://github.com/pksunkara/octonode","description":"github api v3 in nodejs","open_issues":2,"private":false,"username":"pksunkara"},{"type":"repo","has_issues":true,"created_at":"2011-10-23T01:34:00-07:00","score":4.2667623,"owner":"yiiext","has_downloads":true,"followers":11,"organization":"yiiext","created":"2011-10-23T01:34:00-07:00","pushed":"2011-11-16T01:07:50-08:00","homepage":"http://developer.github.com/v3/","watchers":11,"has_wiki":true,"language":"PHP","pushed_at":"2011-11-16T01:07:50-08:00","forks":2,"fork":false,"size":164,"name":"github-api","url":"https://github.com/yiiext/github-api","description":"implementation of github api v3","open_issues":1,"private":false,"username":"yiiext"},{"type":"repo","has_issues":true,"created_at":"2011-09-06T13:24:42-07:00","score":4.205773,"owner":"dsyph3r","has_downloads":true,"followers":22,"created":"2011-09-06T13:24:42-07:00","pushed":"2012-03-09T15:40:02-08:00","homepage":"","watchers":22,"has_wiki":true,"language":"PHP","pushed_at":"2012-03-09T15:40:02-08:00","forks":7,"fork":false,"size":168,"name":"github-api3-php","url":"https://github.com/dsyph3r/github-api3-php","description":"PHP library for the GitHub API v3","open_issues":1,"private":false,"username":"dsyph3r"},{"type":"repo","has_issues":true,"created_at":"2011-11-19T12:57:47-08:00","score":3.566463,"owner":"jcarver989","has_downloads":true,"followers":1,"created":"2011-11-19T12:57:47-08:00","pushed":"2011-11-19T13:21:11-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2011-11-19T13:21:11-08:00","forks":1,"fork":false,"size":140,"name":"GithubApi.js","url":"https://github.com/jcarver989/GithubApi.js","description":"Micro library for Github's API (v3)","open_issues":0,"private":false,"username":"jcarver989"},{"type":"repo","has_issues":true,"created_at":"2012-02-25T04:53:47-08:00","score":3.565757,"owner":"jacquev6","has_downloads":true,"followers":29,"created":"2012-02-25T04:53:47-08:00","pushed":"2012-06-28T13:28:23-07:00","homepage":"http://vincent-jacques.net/PyGithub","watchers":29,"has_wiki":false,"language":"Python","pushed_at":"2012-06-28T13:28:23-07:00","forks":5,"fork":false,"size":188,"name":"PyGithub","url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","open_issues":11,"private":false,"username":"jacquev6"},{"type":"repo","has_issues":true,"created_at":"2012-06-12T04:43:27-07:00","score":3.499493,"owner":"bcg","has_downloads":true,"followers":1,"created":"2012-06-12T04:43:27-07:00","pushed":"2012-06-12T04:46:45-07:00","watchers":1,"has_wiki":true,"language":"Go","pushed_at":"2012-06-12T04:46:45-07:00","forks":1,"fork":false,"size":92,"name":"github","url":"https://github.com/bcg/github","description":"Go api for github v3","open_issues":0,"private":false,"username":"bcg"},{"type":"repo","has_issues":true,"created_at":"2012-02-21T11:25:15-08:00","score":3.4658518,"owner":"csphere","has_downloads":true,"followers":5,"created":"2012-02-21T11:25:15-08:00","pushed":"2012-05-18T10:25:08-07:00","homepage":"","watchers":5,"has_wiki":true,"language":"PHP","pushed_at":"2012-05-18T10:25:08-07:00","forks":2,"fork":false,"size":136,"name":"GithubApiWrapper-PHP","url":"https://github.com/csphere/GithubApiWrapper-PHP","description":"An intuitive wrapper for the Github Api v3.","open_issues":0,"private":false,"username":"csphere"},{"type":"repo","has_issues":true,"created_at":"2012-02-22T03:20:10-08:00","score":3.4529202,"owner":"dkucinskas","has_downloads":true,"followers":2,"created":"2012-02-22T03:20:10-08:00","pushed":"2012-06-24T22:10:11-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"C#","pushed_at":"2012-06-24T22:10:11-07:00","forks":2,"fork":false,"size":116,"name":"net-github-api","url":"https://github.com/dkucinskas/net-github-api","description":"Simple Github API v3 client library for .Net","open_issues":0,"private":false,"username":"dkucinskas"},{"type":"repo","has_issues":true,"created_at":"2012-02-22T18:29:18-08:00","score":3.4125106,"owner":"csphere","has_downloads":true,"followers":4,"created":"2012-02-22T18:29:18-08:00","pushed":"2012-05-18T10:26:45-07:00","homepage":"","watchers":4,"has_wiki":true,"language":"Python","pushed_at":"2012-05-18T10:26:45-07:00","forks":4,"fork":false,"size":132,"name":"GithubApiWrapper-Python","url":"https://github.com/csphere/GithubApiWrapper-Python","description":"An intuitive wrapper for the Github Api v3.","open_issues":0,"private":false,"username":"csphere"},{"type":"repo","has_issues":true,"created_at":"2011-11-30T14:56:52-08:00","score":3.3439152,"owner":"edwardhotchkiss","has_downloads":true,"followers":20,"created":"2011-11-30T14:56:52-08:00","pushed":"2012-06-26T04:04:33-07:00","homepage":"http://edwardhotchkiss.com/github3/","watchers":20,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-06-26T04:04:33-07:00","forks":10,"fork":false,"size":140,"name":"github3","url":"https://github.com/edwardhotchkiss/github3","description":"Node.JS GitHub API (v3) Wrapper","open_issues":0,"private":false,"username":"edwardhotchkiss"},{"type":"repo","has_issues":true,"created_at":"2011-04-28T10:07:29-07:00","score":3.282869,"owner":"ChristopherMacGown","has_downloads":true,"followers":20,"created":"2011-04-28T10:07:29-07:00","pushed":"2012-06-14T19:06:26-07:00","homepage":"","watchers":20,"has_wiki":true,"language":"Python","pushed_at":"2012-06-14T19:06:26-07:00","forks":12,"fork":false,"size":136,"name":"python-github3","url":"https://github.com/ChristopherMacGown/python-github3","description":"Github API v3 library for Python.","open_issues":0,"private":false,"username":"ChristopherMacGown"},{"type":"repo","has_issues":true,"created_at":"2012-04-15T10:14:22-07:00","score":3.2326941,"owner":"RobertFischer","has_downloads":true,"followers":1,"created":"2012-04-15T10:14:22-07:00","pushed":"2012-05-15T05:40:26-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"Java","pushed_at":"2012-05-15T05:40:26-07:00","forks":1,"fork":false,"size":194,"name":"github-api-3","url":"https://github.com/RobertFischer/github-api-3","description":"An under-implemented version of the GitHub API v3 using the Groovy RESTClient.","open_issues":0,"private":false,"username":"RobertFischer"},{"type":"repo","has_issues":true,"created_at":"2010-09-10T23:51:56-07:00","score":3.026753,"owner":"lynnwallenstein","has_downloads":true,"followers":25,"created":"2010-09-10T23:51:56-07:00","pushed":"2012-06-24T15:22:01-07:00","homepage":"","watchers":25,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-06-24T15:22:01-07:00","forks":5,"fork":false,"size":173,"name":"jQuery-Github-Badge","url":"https://github.com/lynnwallenstein/jQuery-Github-Badge","description":"User and Project GitHub badge using jQuery and GitHub API v3","open_issues":4,"private":false,"username":"lynnwallenstein"},{"type":"repo","has_issues":true,"created_at":"2012-03-11T13:35:23-07:00","score":2.9790008,"owner":"peter-murach","has_downloads":true,"followers":18,"created":"2012-03-11T13:35:23-07:00","pushed":"2012-06-27T14:37:16-07:00","homepage":"","watchers":18,"has_wiki":true,"language":"Ruby","pushed_at":"2012-06-27T14:37:16-07:00","forks":3,"fork":false,"size":276,"name":"github_cli","url":"https://github.com/peter-murach/github_cli","description":"CLI-based access to GitHub API v3","open_issues":3,"private":false,"username":"peter-murach"},{"type":"repo","has_issues":true,"created_at":"2011-11-13T22:02:02-08:00","score":2.877118,"owner":"eed3si9n","has_downloads":true,"followers":5,"created":"2011-11-13T22:02:02-08:00","pushed":"2011-11-29T06:28:35-08:00","homepage":"","watchers":5,"has_wiki":true,"language":"Scala","pushed_at":"2011-11-29T06:28:35-08:00","forks":2,"fork":false,"size":200,"name":"dispatch-github","url":"https://github.com/eed3si9n/dispatch-github","description":"github API v3","open_issues":0,"private":false,"username":"eed3si9n"},{"type":"repo","has_issues":true,"created_at":"2011-06-25T03:40:24-07:00","score":2.6712246,"owner":"plu","has_downloads":true,"followers":19,"created":"2011-06-25T03:40:24-07:00","pushed":"2011-12-29T04:26:13-08:00","homepage":"http://metacpan.org/module/Pithub","watchers":19,"has_wiki":true,"language":"Perl","pushed_at":"2011-12-29T04:26:13-08:00","forks":1,"fork":false,"size":1382,"name":"Pithub","url":"https://github.com/plu/Pithub","description":"Perl Github v3 API","open_issues":18,"private":false,"username":"plu"},{"type":"repo","has_issues":true,"created_at":"2011-10-27T08:47:40-07:00","score":2.593327,"owner":"dominis","has_downloads":true,"followers":5,"created":"2011-10-27T08:47:40-07:00","pushed":"2012-01-07T14:01:34-08:00","homepage":"","watchers":5,"has_wiki":false,"language":"PHP","pushed_at":"2012-01-07T14:01:34-08:00","forks":1,"fork":false,"size":172,"name":"GitHub-API-PHP","url":"https://github.com/dominis/GitHub-API-PHP","description":"PHP library for GitHub's v3 api","open_issues":0,"private":false,"username":"dominis"},{"type":"repo","has_issues":false,"created_at":"2012-05-28T19:34:50-07:00","score":2.565456,"owner":"danielribeiro","has_downloads":true,"followers":1,"created":"2012-05-28T19:34:50-07:00","pushed":"2012-04-17T02:30:54-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-04-17T02:30:54-07:00","forks":0,"fork":false,"size":464,"name":"api-amazing","url":"https://github.com/danielribeiro/api-amazing","description":"Amazing API client, currently for Github's API v3, in the browser","open_issues":0,"private":false,"username":"danielribeiro"},{"type":"repo","has_issues":true,"created_at":"2011-05-12T12:18:23-07:00","score":2.4090881,"owner":"trustmaster","has_downloads":true,"followers":11,"created":"2011-05-12T12:18:23-07:00","pushed":"2011-10-04T04:47:18-07:00","homepage":"","watchers":11,"has_wiki":true,"language":"PHP","pushed_at":"2011-10-04T04:47:18-07:00","forks":4,"fork":false,"size":184,"name":"trac2github","url":"https://github.com/trustmaster/trac2github","description":"Converts Trac milestones, tickets and comments into Github issues 2.0 using github api v3","open_issues":0,"private":false,"username":"trustmaster"},{"type":"repo","has_issues":true,"created_at":"2011-12-26T14:00:46-08:00","score":2.3760638,"owner":"ozipi","has_downloads":true,"followers":3,"created":"2011-12-26T14:00:46-08:00","pushed":"2012-01-08T14:10:07-08:00","homepage":"","watchers":3,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-01-08T14:10:07-08:00","forks":2,"fork":false,"size":141,"name":"github.js","url":"https://github.com/ozipi/github.js","description":"Github v3 Api Javascript library","open_issues":0,"private":false,"username":"ozipi"},{"type":"repo","has_issues":true,"created_at":"2010-08-25T17:50:01-07:00","score":2.3341565,"owner":"diogenes","has_downloads":true,"followers":26,"created":"2010-08-25T17:50:01-07:00","pushed":"2011-10-17T08:15:23-07:00","homepage":"","watchers":26,"has_wiki":true,"language":"Ruby","pushed_at":"2011-10-17T08:15:23-07:00","forks":8,"fork":false,"size":112,"name":"hubruby","url":"https://github.com/diogenes/hubruby","description":"A simple Ruby library to access the current GitHub API (v3)","open_issues":0,"private":false,"username":"diogenes"},{"type":"repo","has_issues":true,"created_at":"2011-06-15T00:51:00-07:00","score":2.3227224,"owner":"rubik","has_downloads":true,"followers":2,"created":"2011-06-15T00:51:00-07:00","pushed":"2011-06-15T00:58:19-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"Python","pushed_at":"2011-06-15T00:58:19-07:00","forks":1,"fork":false,"size":96,"name":"github.py","url":"https://github.com/rubik/github.py","description":"Python wrapper for Github API v3","open_issues":0,"private":false,"username":"rubik"},{"type":"repo","has_issues":true,"created_at":"2012-02-14T06:15:34-08:00","score":2.2703757,"owner":"ji","has_downloads":true,"followers":1,"created":"2012-02-14T06:15:34-08:00","pushed":"2012-03-07T10:29:38-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-03-07T10:29:38-08:00","forks":1,"fork":false,"size":224,"name":"github_widgets","url":"https://github.com/ji/github_widgets","description":"Github widgets for the github v3 API.","open_issues":0,"private":false,"username":"ji"},{"type":"repo","has_issues":true,"created_at":"2011-08-16T09:17:47-07:00","score":2.2693808,"owner":"mixu","has_downloads":true,"followers":1,"created":"2011-08-16T09:17:47-07:00","pushed":"2011-08-16T09:44:41-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2011-08-16T09:44:41-07:00","forks":1,"fork":false,"size":96,"name":"github.js","url":"https://github.com/mixu/github.js","description":"Github API v3 JS client","open_issues":0,"private":false,"username":"mixu"},{"type":"repo","has_issues":true,"created_at":"2011-12-23T03:57:39-08:00","score":2.2693808,"owner":"zendflex","has_downloads":true,"followers":1,"organization":"zendflex","created":"2011-12-23T03:57:39-08:00","pushed":"2011-12-23T10:00:20-08:00","watchers":1,"has_wiki":true,"language":"PHP","pushed_at":"2011-12-23T10:00:20-08:00","forks":1,"fork":false,"size":112,"name":"zendflex-github-lib","url":"https://github.com/zendflex/zendflex-github-lib","description":"Php lib for github api v3","open_issues":0,"private":false,"username":"zendflex"},{"type":"repo","has_issues":true,"created_at":"2012-02-02T15:15:01-08:00","score":2.2693808,"owner":"devjones","has_downloads":true,"followers":1,"created":"2012-02-02T15:15:01-08:00","pushed":"2012-02-02T15:15:52-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Python","pushed_at":"2012-02-02T15:15:52-08:00","forks":1,"fork":false,"size":88,"name":"py_github3","url":"https://github.com/devjones/py_github3","description":"draft python wrapper for Github API v3","open_issues":0,"private":false,"username":"devjones"},{"type":"repo","has_issues":true,"created_at":"2012-01-01T21:15:53-08:00","score":2.125537,"owner":"mtutty","has_downloads":true,"followers":2,"created":"2012-01-01T21:15:53-08:00","pushed":"2012-01-18T13:24:44-08:00","homepage":"","watchers":2,"has_wiki":true,"language":"C#","pushed_at":"2012-01-18T13:24:44-08:00","forks":1,"fork":false,"size":4472,"name":"GithubIssueSync","url":"https://github.com/mtutty/GithubIssueSync","description":"Allows bulk import and export of issues via Github API V3","open_issues":1,"private":false,"username":"mtutty"},{"type":"repo","has_issues":true,"created_at":"2012-01-15T04:51:05-08:00","score":2.0350344,"owner":"Wolfy87","has_downloads":true,"followers":4,"created":"2012-01-15T04:51:05-08:00","pushed":"2012-01-23T06:38:19-08:00","homepage":"","watchers":4,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-01-23T06:38:19-08:00","forks":2,"fork":false,"size":228,"name":"github.js","url":"https://github.com/Wolfy87/github.js","description":"Frontend JavaScript library for interacting with the GitHub API v3","open_issues":0,"private":false,"username":"Wolfy87"},{"type":"repo","has_issues":true,"created_at":"2011-07-16T15:32:34-07:00","score":1.9842197,"owner":"jhelwig","has_downloads":true,"followers":15,"created":"2011-07-16T15:32:34-07:00","pushed":"2012-05-23T13:17:32-07:00","homepage":"http://rdoc.info/github/jhelwig/octocat_herder/master/frames","watchers":15,"has_wiki":false,"language":"Ruby","pushed_at":"2012-05-23T13:17:32-07:00","forks":4,"fork":false,"size":132,"name":"octocat_herder","url":"https://github.com/jhelwig/octocat_herder","description":"Ruby interface to the v3 GitHub API","open_issues":1,"private":false,"username":"jhelwig"},{"type":"repo","has_issues":true,"created_at":"2011-07-12T23:06:31-07:00","score":1.9816928,"owner":"bitprophet","has_downloads":true,"followers":3,"created":"2011-07-12T23:06:31-07:00","pushed":"2011-08-18T17:19:18-07:00","homepage":"","watchers":3,"has_wiki":true,"language":"Ruby","pushed_at":"2011-08-18T17:19:18-07:00","forks":2,"fork":false,"size":128,"name":"redmine2github","url":"https://github.com/bitprophet/redmine2github","description":"Port (Fabric's) Redmine tickets to (Fabric's) Github Issues v2 / API v3","open_issues":0,"private":false,"username":"bitprophet"},{"type":"repo","has_issues":true,"created_at":"2011-08-08T23:02:37-07:00","score":1.9816928,"owner":"joeworkman","has_downloads":true,"followers":3,"created":"2011-08-08T23:02:37-07:00","pushed":"2012-02-09T10:20:36-08:00","watchers":3,"has_wiki":true,"language":"PHP","pushed_at":"2012-02-09T10:20:36-08:00","forks":2,"fork":false,"size":132,"name":"github_oauth","url":"https://github.com/joeworkman/github_oauth","description":"PHP Library that makes using OAuth with the GitHUB v3API a piece of cake","open_issues":0,"private":false,"username":"joeworkman"},{"type":"repo","has_issues":true,"created_at":"2011-09-27T07:41:01-07:00","score":1.9283514,"owner":"thiagolocatelli","has_downloads":true,"followers":2,"created":"2011-09-27T07:41:01-07:00","pushed":"2011-09-27T07:53:33-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"Java","pushed_at":"2011-09-27T07:53:33-07:00","forks":1,"fork":false,"size":108,"name":"android-github-oauth","url":"https://github.com/thiagolocatelli/android-github-oauth","description":"Library and example project on how to connect to GitHub OAuth (v3) API","open_issues":0,"private":false,"username":"thiagolocatelli"},{"type":"repo","has_issues":true,"created_at":"2012-05-17T19:22:24-07:00","score":1.9283514,"owner":"erikcharlebois","has_downloads":false,"followers":2,"created":"2012-05-17T19:22:24-07:00","pushed":"2012-05-17T21:05:25-07:00","homepage":"https://github.com/erikcharlebois/git-hub","watchers":2,"has_wiki":false,"language":"Ruby","pushed_at":"2012-05-17T21:05:25-07:00","forks":1,"fork":false,"size":96,"name":"git-hub","url":"https://github.com/erikcharlebois/git-hub","description":"Command line extension to git for working with GitHub v3 API.","open_issues":1,"private":false,"username":"erikcharlebois"},{"type":"repo","has_issues":true,"created_at":"2011-05-12T19:11:45-07:00","score":1.8750099,"owner":"baz","has_downloads":true,"followers":1,"created":"2011-05-12T19:11:45-07:00","pushed":"2011-05-12T19:13:02-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2011-05-12T19:13:02-07:00","forks":1,"fork":false,"size":124,"name":"node-github-issues","url":"https://github.com/baz/node-github-issues","description":"GitHub Issues API v3 Node.js module","open_issues":0,"private":false,"username":"baz"},{"type":"repo","has_issues":true,"created_at":"2010-10-28T19:31:52-07:00","score":1.6202691,"owner":"Factual","has_downloads":true,"followers":15,"organization":"Factual","created":"2010-10-28T19:31:52-07:00","pushed":"2012-02-23T20:03:15-08:00","homepage":"http://wiki.developer.factual.com/","watchers":15,"has_wiki":true,"language":"Ruby","pushed_at":"2012-02-23T20:03:15-08:00","forks":5,"fork":false,"size":112,"name":"ruby-factual","url":"https://github.com/Factual/ruby-factual","description":"Ruby gem to access Factual API v2. Since the Factual API v2 will be deprecated in Q2 2012, and we are moving forward to API v3, there is new ruby gem for V3 accessing, which is at https://github.com/Factual/factual-ruby-driver.","open_issues":0,"private":false,"username":"Factual"},{"type":"repo","has_issues":true,"created_at":"2011-10-03T17:46:03-07:00","score":1.5275998,"owner":"testpilot","has_downloads":true,"followers":2,"organization":"testpilot","created":"2011-10-03T17:46:03-07:00","pushed":"2011-11-29T00:14:53-08:00","homepage":"testpilot.me","watchers":2,"has_wiki":true,"language":"Ruby","pushed_at":"2011-11-29T00:14:53-08:00","forks":1,"fork":false,"size":264,"name":"octoplex","url":"https://github.com/testpilot/octoplex","description":"Github v3 API wrapper gem","open_issues":0,"private":false,"username":"testpilot"},{"type":"repo","has_issues":true,"created_at":"2012-02-29T15:46:40-08:00","score":1.5275998,"owner":"woloski","has_downloads":true,"followers":2,"created":"2012-02-29T15:46:40-08:00","pushed":"2012-03-01T18:36:35-08:00","homepage":"","watchers":2,"has_wiki":true,"language":"","pushed_at":"2012-03-01T18:36:35-08:00","forks":2,"fork":false,"size":132,"name":"githubapi-testrepo","url":"https://github.com/woloski/githubapi-testrepo","description":"testing repo for github api v3","open_issues":0,"private":false,"username":"woloski"},{"type":"repo","has_issues":true,"created_at":"2011-07-18T11:55:00-07:00","score":1.5041462,"owner":"gitpilot","has_downloads":true,"followers":7,"organization":"gitpilot","created":"2011-07-18T11:55:00-07:00","pushed":"2011-07-21T12:18:26-07:00","homepage":"http://www.gitpilot.com","watchers":7,"has_wiki":true,"language":"Ruby","pushed_at":"2011-07-21T12:18:26-07:00","forks":2,"fork":false,"size":112,"name":"fuselage","url":"https://github.com/gitpilot/fuselage","description":"Light weight Ruby wrapper for Github v3 api","open_issues":0,"private":false,"username":"gitpilot"},{"type":"repo","has_issues":true,"created_at":"2011-07-14T19:46:55-07:00","score":1.4742583,"owner":"wanthony","has_downloads":true,"followers":1,"created":"2011-07-14T19:46:55-07:00","pushed":"2011-07-14T19:57:37-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2011-07-14T19:57:37-07:00","forks":1,"fork":false,"size":96,"name":"octo_rest","url":"https://github.com/wanthony/octo_rest","description":"A ruby client for the github v3 api","open_issues":0,"private":false,"username":"wanthony"},{"type":"repo","has_issues":true,"created_at":"2011-10-06T03:41:32-07:00","score":1.4742583,"owner":"markharmon","has_downloads":true,"followers":1,"created":"2011-10-06T03:41:32-07:00","pushed":null,"homepage":"","watchers":1,"has_wiki":true,"language":"","forks":1,"fork":false,"size":0,"name":"GitHub.Net","url":"https://github.com/markharmon/GitHub.Net","description":"GitHub Api V3 for .Net","open_issues":0,"private":false,"username":"markharmon"},{"type":"repo","has_issues":true,"created_at":"2011-06-25T16:25:57-07:00","score":1.4508047,"owner":"sbellity","has_downloads":true,"followers":5,"created":"2011-06-25T16:25:57-07:00","pushed":"2011-07-21T03:21:10-07:00","homepage":"","watchers":5,"has_wiki":true,"language":"Ruby","pushed_at":"2011-07-21T03:21:10-07:00","forks":2,"fork":false,"size":112,"name":"githu3","url":"https://github.com/sbellity/githu3","description":"Ruby wrapper for GitHub's v3 API","open_issues":4,"private":false,"username":"sbellity"},{"type":"repo","has_issues":true,"created_at":"2011-09-13T03:01:53-07:00","score":1.3974632,"owner":"francescomari","has_downloads":true,"followers":4,"created":"2011-09-13T03:01:53-07:00","pushed":"2012-04-10T14:08:39-07:00","homepage":"","watchers":4,"has_wiki":false,"language":"Python","pushed_at":"2012-04-10T14:08:39-07:00","forks":2,"fork":false,"size":148,"name":"pythub","url":"https://github.com/francescomari/pythub","description":"A simple Python wrapper around the Github API v3","open_issues":0,"private":false,"username":"francescomari"},{"type":"repo","has_issues":true,"created_at":"2011-12-22T00:01:31-08:00","score":1.2907803,"owner":"smoak","has_downloads":true,"followers":2,"created":"2011-12-22T00:01:31-08:00","pushed":"2011-12-22T00:20:57-08:00","homepage":"","watchers":2,"has_wiki":true,"language":"Python","pushed_at":"2011-12-22T00:20:57-08:00","forks":1,"fork":false,"size":92,"name":"pyhub","url":"https://github.com/smoak/pyhub","description":"Python Client for the GitHub v3 API ","open_issues":0,"private":false,"username":"smoak"},{"type":"repo","has_issues":true,"created_at":"2012-03-08T12:07:25-08:00","score":1.2907803,"owner":"csphere","has_downloads":true,"followers":2,"created":"2012-03-08T12:07:25-08:00","pushed":"2012-04-02T15:08:54-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"Ruby","pushed_at":"2012-04-02T15:08:54-07:00","forks":2,"fork":false,"size":264,"name":"rubhub","url":"https://github.com/csphere/rubhub","description":"Ruby Gem - An intuitive wrapper for the Github Api v3.","open_issues":0,"private":false,"username":"csphere"},{"type":"repo","has_issues":true,"created_at":"2012-06-03T12:59:40-07:00","score":1.2374389,"owner":"badsharkco","has_downloads":true,"followers":1,"created":"2012-06-03T12:59:40-07:00","pushed":"2012-06-03T13:58:55-07:00","watchers":1,"has_wiki":true,"language":"PHP","pushed_at":"2012-06-03T13:58:55-07:00","forks":1,"fork":false,"size":124,"name":"simplev3-php","url":"https://github.com/badsharkco/simplev3-php","description":"The simplest way to interact with the GitHub API v3, in PHP.","open_issues":0,"private":false,"username":"badsharkco"},{"type":"repo","has_issues":true,"created_at":"2012-06-07T08:51:53-07:00","score":1.2374389,"owner":"cheeyeo","has_downloads":true,"followers":1,"created":"2012-06-07T08:51:53-07:00","pushed":"2012-06-07T10:39:31-07:00","watchers":1,"has_wiki":true,"language":"","pushed_at":"2012-06-07T10:39:31-07:00","forks":1,"fork":false,"size":0,"name":"snipplets-test","url":"https://github.com/cheeyeo/snipplets-test","description":"Testing snipplets app link to github through api v3","open_issues":0,"private":false,"username":"cheeyeo"},{"type":"repo","has_issues":true,"created_at":"2012-06-05T00:39:13-07:00","score":1.2374389,"owner":"hahuang65","has_downloads":true,"followers":1,"created":"2012-06-05T00:39:13-07:00","pushed":"2012-06-14T17:11:06-07:00","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-06-14T17:11:06-07:00","forks":1,"fork":false,"size":436,"name":"Octobot","url":"https://github.com/hahuang65/Octobot","description":"GitHub V3 API Wrapper for Ruby","open_issues":0,"private":false,"username":"hahuang65"},{"type":"repo","has_issues":true,"created_at":"2012-06-14T14:31:40-07:00","score":1.2374389,"owner":"smencer","has_downloads":true,"followers":1,"created":"2012-06-14T14:31:40-07:00","pushed":"2012-06-25T19:51:13-07:00","watchers":1,"has_wiki":true,"language":"C#","pushed_at":"2012-06-25T19:51:13-07:00","forks":1,"fork":false,"size":396,"name":"CSharpGitHubAPIWrapper","url":"https://github.com/smencer/CSharpGitHubAPIWrapper","description":"A C# wrapper for the GitHub API (v3)","open_issues":0,"private":false,"username":"smencer"},{"type":"repo","has_issues":true,"created_at":"2011-04-29T15:16:32-07:00","score":1.2374388,"owner":"jeffremer","has_downloads":true,"followers":1,"created":"2011-04-29T15:16:32-07:00","pushed":"2011-04-30T19:43:37-07:00","homepage":"http://jeffremer.com","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2011-04-30T19:43:37-07:00","forks":1,"fork":false,"size":848,"name":"gist-client","url":"https://github.com/jeffremer/gist-client","description":"A REST client for CRUDing Github Gists via the v3 API.","open_issues":0,"private":false,"username":"jeffremer"},{"type":"repo","has_issues":true,"created_at":"2011-05-23T19:31:04-07:00","score":1.2374388,"owner":"kaiwu","has_downloads":true,"followers":1,"created":"2011-05-23T19:31:04-07:00","pushed":"2011-05-23T19:51:51-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"","pushed_at":"2011-05-23T19:51:51-07:00","forks":1,"fork":false,"size":108,"name":"githubv3objc","url":"https://github.com/kaiwu/githubv3objc","description":"github v3 api wrapper in objective-c","open_issues":0,"private":false,"username":"kaiwu"},{"type":"repo","has_issues":true,"created_at":"2011-07-28T15:57:34-07:00","master_branch":"develop","score":1.2374388,"owner":"mrtazz","has_downloads":true,"followers":1,"created":"2011-07-28T15:57:34-07:00","pushed":"2011-07-28T15:58:01-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"","pushed_at":"2011-07-28T15:58:01-07:00","forks":1,"fork":false,"size":100,"name":"octonode","url":"https://github.com/mrtazz/octonode","description":"[WIP] node.js wrapper for the github v3 API","open_issues":0,"private":false,"username":"mrtazz"},{"type":"repo","has_issues":true,"created_at":"2011-11-13T12:27:30-08:00","score":1.2374388,"owner":"mdellanoce","has_downloads":true,"followers":1,"created":"2011-11-13T12:27:30-08:00","pushed":"2012-01-17T18:24:42-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-01-17T18:24:42-08:00","forks":1,"fork":false,"size":268,"name":"gittycat","url":"https://github.com/mdellanoce/gittycat","description":"Yet another ruby binding for GitHub's V3 API","open_issues":0,"private":false,"username":"mdellanoce"},{"type":"repo","has_issues":true,"created_at":"2012-04-30T07:59:23-07:00","score":1.2374388,"owner":"Strech","has_downloads":true,"followers":1,"created":"2012-04-30T07:59:23-07:00","pushed":"2012-04-30T09:48:02-07:00","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-04-30T09:48:02-07:00","forks":1,"fork":false,"size":236,"name":"abak_oauth","url":"https://github.com/Strech/abak_oauth","description":"This is a simple rails app for github api v3 oauth2","open_issues":0,"private":false,"username":"Strech"},{"type":"repo","has_issues":true,"created_at":"2011-08-12T15:20:29-07:00","score":1.1073024,"owner":"meritt","has_downloads":true,"followers":3,"created":"2011-08-12T15:20:29-07:00","pushed":"2012-04-22T13:04:49-07:00","homepage":"http://github.com/meritt/node-gisty","watchers":3,"has_wiki":false,"language":"CoffeeScript","pushed_at":"2012-04-22T13:04:49-07:00","forks":1,"fork":false,"size":112,"name":"node-gisty","url":"https://github.com/meritt/node-gisty","description":"A Node.JS wrapper for GitHub gist API v3. ","open_issues":0,"private":false,"username":"meritt"},{"type":"repo","has_issues":true,"created_at":"2012-06-13T13:26:46-07:00","score":1.0669504,"owner":"ritratt","has_downloads":true,"followers":1,"created":"2012-06-13T13:26:46-07:00","pushed":"2012-06-13T13:37:31-07:00","watchers":1,"has_wiki":true,"language":"Python","pushed_at":"2012-06-13T13:37:31-07:00","forks":1,"fork":false,"size":92,"name":"gituserinfo","url":"https://github.com/ritratt/gituserinfo","description":"A simple python script that uses PyGithub for accessing user information through Github API v3","open_issues":0,"private":false,"username":"ritratt"},{"type":"repo","has_issues":true,"created_at":"2011-09-08T18:44:48-07:00","score":1.0006194,"owner":"wanthony","has_downloads":true,"followers":1,"created":"2011-09-08T18:44:48-07:00","pushed":null,"homepage":"","watchers":1,"has_wiki":true,"language":"","forks":1,"fork":false,"size":0,"name":"coffeehub","url":"https://github.com/wanthony/coffeehub","description":"A Node.js / CoffeeScript GitHub API v3 Implementation","open_issues":0,"private":false,"username":"wanthony"},{"type":"repo","has_issues":true,"created_at":"2011-11-17T23:39:13-08:00","score":1.0006194,"owner":"plu","has_downloads":true,"followers":1,"created":"2011-11-17T23:39:13-08:00","pushed":"2011-11-17T23:41:46-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Objective-C","pushed_at":"2011-11-17T23:41:46-08:00","forks":1,"fork":false,"size":348,"name":"Octotco","url":"https://github.com/plu/Octotco","description":"iOS App to access the Github v3 API via RestKit","open_issues":0,"private":false,"username":"plu"},{"type":"repo","has_issues":true,"created_at":"2012-02-11T22:46:07-08:00","score":1.0006194,"owner":"roopeshvaddepally","has_downloads":true,"followers":1,"created":"2012-02-11T22:46:07-08:00","pushed":"2012-02-12T15:14:35-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Python","pushed_at":"2012-02-12T15:14:35-08:00","forks":1,"fork":false,"size":108,"name":"pygh3","url":"https://github.com/roopeshvaddepally/pygh3","description":"python github wrapper for api v3. make it more like iorayne/tentacles","open_issues":0,"private":false,"username":"roopeshvaddepally"},{"type":"repo","has_issues":true,"created_at":"2011-11-02T09:35:46-07:00","score":1.0006194,"owner":"exallium","has_downloads":true,"followers":1,"created":"2011-11-02T09:35:46-07:00","pushed":"2012-03-02T15:30:29-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Java","pushed_at":"2012-03-02T15:30:29-08:00","forks":1,"fork":false,"size":1896,"name":"gitIssues2","url":"https://github.com/exallium/gitIssues2","description":"Complete Rewrite of GitIssues, including new UI and utilizing Github's V3 API Java Library","open_issues":2,"private":false,"username":"exallium"},{"type":"repo","has_issues":true,"created_at":"2012-03-09T05:24:54-08:00","score":1.0006194,"owner":"inkel","has_downloads":true,"followers":1,"created":"2012-03-09T05:24:54-08:00","pushed":"2012-03-12T05:38:07-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-03-12T05:38:07-07:00","forks":1,"fork":false,"size":380,"name":"cuba-omniauth-octokit","url":"https://github.com/inkel/cuba-omniauth-octokit","description":"Proof of concept of a Cuba application with OmniAuth and Octokit to access the GitHub v3 API","open_issues":3,"private":false,"username":"inkel"},{"type":"repo","has_issues":true,"created_at":"2012-02-17T09:18:01-08:00","score":1.0006194,"owner":"LukasKnuth","has_downloads":true,"followers":1,"created":"2012-02-17T09:18:01-08:00","pushed":"2012-02-17T15:31:14-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-02-17T15:31:14-08:00","forks":1,"fork":false,"size":124,"name":"jsg-hub","url":"https://github.com/LukasKnuth/jsg-hub","description":"This project aims to create a JavaScript library for the GitHub API v3","open_issues":0,"private":false,"username":"LukasKnuth"},{"type":"repo","has_issues":true,"created_at":"2012-01-01T17:23:26-08:00","score":0.9402493,"owner":"lrvick","has_downloads":true,"followers":1,"created":"2012-01-01T17:23:26-08:00","pushed":"2012-01-01T17:24:43-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"","pushed_at":"2012-01-01T17:24:43-08:00","forks":1,"fork":false,"size":96,"name":"jquery-githubnav","url":"https://github.com/lrvick/jquery-githubnav","description":"jQuery driven stack to render a tree-driven explorer of all your Github code via the Github v3 API","open_issues":0,"private":false,"username":"lrvick"},{"type":"repo","has_issues":true,"created_at":"2011-07-31T03:41:16-07:00","score":0.9355511,"owner":"mklabs","has_downloads":true,"followers":2,"created":"2011-07-31T03:41:16-07:00","pushed":"2011-07-31T08:34:55-07:00","homepage":"","watchers":2,"has_wiki":true,"language":"JavaScript","pushed_at":"2011-07-31T08:34:55-07:00","forks":1,"fork":false,"size":176,"name":"ghv3","url":"https://github.com/mklabs/ghv3","description":"GitHub Api v3 library. Ideally, it should work in node via http request, and in browsers using jsonp.","open_issues":0,"private":false,"username":"mklabs"},{"type":"repo","has_issues":true,"created_at":"2012-03-17T11:12:39-07:00","score":0.8517214,"owner":"mklabs","has_downloads":true,"followers":1,"created":"2012-03-17T11:12:39-07:00","pushed":"2012-03-17T11:13:30-07:00","homepage":"http://mklabs.github.com/gh-issues-widget/","watchers":1,"has_wiki":true,"language":"JavaScript","pushed_at":"2012-03-17T11:13:30-07:00","forks":1,"fork":false,"size":224,"name":"gh-issues-widget","url":"https://github.com/mklabs/gh-issues-widget","description":"A bit of GitHub API v3, GitHub Flavored Markdown, a soupcon of data-* attributes and you get github issue comment system. Something like that.","open_issues":2,"private":false,"username":"mklabs"},{"type":"repo","has_issues":true,"created_at":"2012-01-12T04:28:02-08:00","score":0.80183375,"owner":"jaikoo","has_downloads":true,"followers":1,"created":"2012-01-12T04:28:02-08:00","pushed":"2012-01-20T05:24:12-08:00","homepage":"","watchers":1,"has_wiki":true,"language":"Ruby","pushed_at":"2012-01-20T05:24:12-08:00","forks":1,"fork":false,"size":148,"name":"OctoCow","url":"https://github.com/jaikoo/OctoCow","description":"Work in progress Github v3 API wrapper with association chaining and semi-concrete classes (class are concrete but contents are flexible) to allow for flexible changes in the API.","open_issues":0,"private":false,"username":"jaikoo"},{"type":"repo","has_issues":true,"created_at":"2012-04-23T19:23:24-07:00","score":0.7637999,"owner":"misutowolf","has_downloads":true,"followers":1,"created":"2012-04-23T19:23:24-07:00","pushed":"2012-04-24T07:30:51-07:00","homepage":"","watchers":1,"has_wiki":true,"language":"","pushed_at":"2012-04-24T07:30:51-07:00","forks":1,"fork":false,"size":184,"name":"js-githubv3","url":"https://github.com/misutowolf/js-githubv3","description":"js-githubv3 -- A JavaScript (jQuery) library for the JSON-driven GitHub API v3","open_issues":0,"private":false,"username":"misutowolf"}]} + diff --git a/test/ReplayData/Github.testSearchUserByEmail.txt b/test/ReplayData/Github.testSearchUserByEmail.txt new file mode 100644 index 00000000..134f2422 --- /dev/null +++ b/test/ReplayData/Github.testSearchUserByEmail.txt @@ -0,0 +1,5 @@ +GET /legacy/user/email/vincent@vincent-jacques.net {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4981'), ('content-length', '395'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"baf55235e157428f731c446efe6d6cba"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 20:58:11 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","type":"User","location":"Paris, France","blog":"http://vincent-jacques.net","name":"Vincent Jacques","permission":null,"public_repo_count":11,"login":"jacquev6","email":"vincent@vincent-jacques.net","public_gist_count":3,"created_at":"2010-07-08T23:10:06-07:00","id":327146,"followers_count":13,"following_count":24,"company":"Criteo"}} + diff --git a/test/ReplayData/Github.testSearchUsers.txt b/test/ReplayData/Github.testSearchUsers.txt new file mode 100644 index 00000000..30244535 --- /dev/null +++ b/test/ReplayData/Github.testSearchUsers.txt @@ -0,0 +1,5 @@ +GET /legacy/user/search/vincent {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4982'), ('content-length', '41235'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"77b0277b5efb0ebf5f9e3de8a493fd0c"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 20:57:52 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"users":[{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","score":73.982216,"type":"user","name":"Vincent Driessen","location":"Netherlands","fullname":"Vincent Driessen","repos":63,"login":"nvie","public_repo_count":63,"username":"nvie","created_at":"2009-05-12T21:19:38Z","record":null,"id":"user-83844","followers":310,"followers_count":310,"created":"2009-05-12T21:19:38Z","language":"Python","pushed":"2012-06-26T14:15:26.172Z"},{"gravatar_id":"a145dbf5d67ba1eb717fbe3a1f51509c","score":35.851326,"type":"user","fullname":"Jesse Vincent","repos":57,"name":"Jesse Vincent","location":"Somerville, MA, USA","login":"obra","public_repo_count":57,"username":"obra","created_at":"2009-01-09T20:24:15Z","record":null,"id":"user-45416","followers":127,"followers_count":127,"created":"2009-01-09T20:24:15Z","language":"Perl","pushed":"2012-06-27T02:15:19.036Z"},{"gravatar_id":"03a966709300efb4a86ce5ee8f88f696","score":33.5964,"type":"user","repos":86,"name":"John E. Vincent","fullname":"John E. Vincent","location":"Roswell, GA.","login":"lusis","public_repo_count":86,"username":"lusis","created_at":"2010-03-23T20:28:44Z","record":null,"id":"user-228958","followers":112,"followers_count":112,"created":"2010-03-23T20:28:44Z","language":"Ruby","pushed":"2012-06-28T15:15:44.987Z"},{"gravatar_id":"c676f9efc8e54985e84c044899481267","score":29.771633,"type":"user","name":"Vincent Jousse","repos":43,"fullname":"Vincent Jousse","location":"Le Mans","login":"vjousse","public_repo_count":43,"username":"vjousse","created_at":"2009-11-18T15:43:09Z","record":null,"id":"user-154904","followers":102,"followers_count":102,"created":"2009-11-18T15:43:09Z","language":"PHP","pushed":"2012-06-19T10:15:25.469Z"},{"gravatar_id":"1d0a2ab73604a28d767acc0e547c8985","score":14.943241,"type":"user","name":"Vincent Hanquez","fullname":"Vincent Hanquez","repos":43,"location":"","login":"vincenthz","public_repo_count":43,"username":"vincenthz","created_at":"2009-12-31T10:52:40Z","record":null,"id":"user-174631","followers":30,"followers_count":30,"created":"2009-12-31T10:52:40Z","language":"Haskell","pushed":"2011-12-02T11:15:26.599Z"},{"gravatar_id":"dd02e2c7ecf7c377b6b9c2c1a23633d0","score":13.608737,"type":"user","location":"http://git.io/vt","name":"Vincent Tsai","fullname":"Vincent Tsai","repos":18,"login":"Vayn","public_repo_count":18,"username":"Vayn","created_at":"2010-03-17T07:53:26Z","record":null,"id":"user-224407","followers":32,"followers_count":32,"created":"2010-03-17T07:53:26Z","language":"Python","pushed":"2012-05-05T02:15:14.813Z"},{"gravatar_id":"a3895a2d6f26155968be47fc03dddc40","score":13.566472,"type":"user","fullname":"Vincent Battaglia","repos":11,"name":"Vincent Battaglia","location":"San Francisco, CA","login":"vinch","public_repo_count":11,"username":"vinch","created_at":"2009-11-19T11:56:56Z","record":null,"id":"user-155370","followers":34,"followers_count":34,"created":"2009-11-19T11:56:56Z","language":"JavaScript","pushed":"2012-06-27T19:15:37.908Z"},{"gravatar_id":"2c0bde3f5628f35390c42fe505b79da4","score":12.853587,"type":"user","fullname":"Vincent Bernat","name":"Vincent Bernat","repos":25,"location":"Paris","login":"vincentbernat","public_repo_count":25,"username":"vincentbernat","created_at":"2011-02-22T07:20:26Z","record":null,"id":"user-631446","followers":26,"followers_count":26,"created":"2011-02-22T07:20:26Z","language":"C","pushed":"2012-04-24T14:15:18.536Z"},{"gravatar_id":"bbd55fb25025ef973c45e587103a1007","score":12.540491,"type":"user","location":"Nantes, France","name":"Vincent Giersch","fullname":"Vincent Giersch","repos":20,"login":"gierschv","public_repo_count":20,"username":"gierschv","created_at":"2010-09-12T16:41:49Z","record":null,"id":"user-396537","followers":26,"followers_count":26,"created":"2010-09-12T16:41:49Z","language":"JavaScript","pushed":"2012-06-07T01:15:19.516Z"},{"gravatar_id":"c8ff80488014da414b65346806178fa5","score":12.304387,"type":"user","name":"Vincent Batts","repos":20,"fullname":"Vincent Batts","location":"Vienna, VA","login":"vbatts","public_repo_count":20,"username":"vbatts","created_at":"2009-03-25T14:57:43Z","record":null,"id":"user-67049","followers":25,"followers_count":25,"created":"2009-03-25T14:57:43Z","language":"Ruby","pushed":"2012-06-18T14:15:37.054Z"},{"gravatar_id":"5ad827a4eff2f5c23d26e1b4eb746143","score":12.204174,"type":"user","repos":16,"name":"Vincent","fullname":"Vincent","location":"","login":"Valodim","public_repo_count":16,"username":"Valodim","created_at":"2008-10-06T20:33:02Z","record":null,"id":"user-27813","followers":9,"followers_count":9,"created":"2008-10-06T20:33:02Z","language":"Python","pushed":"2011-11-27T18:15:31.138Z"},{"gravatar_id":"a267b99df7d74999affbda5c314083d7","score":12.204174,"type":"user","fullname":"Vincent","repos":25,"name":"Vincent","location":"","login":"Twinside","public_repo_count":25,"username":"Twinside","created_at":"2009-12-17T09:22:27Z","record":null,"id":"user-168874","followers":6,"followers_count":6,"created":"2009-12-17T09:22:27Z","language":"VimL","pushed":"2012-06-28T07:15:16.26Z"},{"gravatar_id":"722218c7702627097bd72901d7b39e6a","score":12.197243,"type":"user","name":"Mike Vincent","location":"FTW, TX","fullname":"Mike Vincent","repos":9,"login":"agile","public_repo_count":9,"username":"agile","created_at":"2008-02-13T19:58:02Z","record":null,"id":"user-249","followers":28,"followers_count":28,"created":"2008-02-13T19:58:02Z","language":"Ruby","pushed":"2012-06-23T19:16:35.651Z"},{"gravatar_id":"a56a9079e6af8a892337a671c3b1a230","score":12.029787,"type":"user","name":"Vincent Pit","repos":13,"location":"Paris, France","fullname":"Vincent Pit","login":"vpit","public_repo_count":13,"username":"vpit","created_at":"2009-04-05T16:43:32Z","record":null,"id":"user-70731","followers":26,"followers_count":26,"created":"2009-04-05T16:43:32Z","language":"Perl","pushed":"2012-04-25T22:15:28.818Z"},{"gravatar_id":"317cf21cbde7d18d79c27e123cbf7b73","score":11.095074,"type":"user","fullname":"Vincent Velociter","name":"Vincent Velociter","repos":14,"location":"Nantes","login":"veloce","public_repo_count":14,"username":"veloce","created_at":"2010-10-01T12:58:39Z","record":null,"id":"user-423393","followers":21,"followers_count":21,"created":"2010-10-01T12:58:39Z","language":"VimL","pushed":"2012-06-20T16:15:20.04Z"},{"gravatar_id":"d4ad14bf23231763ea3c1754a65de041","score":11.040714,"type":"user","repos":45,"name":"Vincent van Haaff","fullname":"Vincent van Haaff","location":"Vancouver, BC","login":"flyingoctopus","public_repo_count":45,"username":"flyingoctopus","created_at":"2009-02-03T08:21:05Z","record":null,"id":"user-51352","followers":16,"followers_count":16,"created":"2009-02-03T08:21:05Z","language":"JavaScript","pushed":"2012-06-28T19:15:23.553Z"},{"gravatar_id":"652e02cbd134e0e92f3f81fe14bda3d1","score":11.000038,"type":"user","name":"Seth Vincent","repos":52,"fullname":"Seth Vincent","location":"olympia, wa","login":"sethvincent","public_repo_count":52,"username":"sethvincent","created_at":"2009-12-08T05:13:00Z","record":null,"id":"user-164214","followers":8,"followers_count":8,"created":"2009-12-08T05:13:00Z","language":"JavaScript","pushed":"2012-06-13T05:15:13.738Z"},{"gravatar_id":"7d3e511e6531fa9fde610015867d5c82","score":10.762525,"type":"user","fullname":"Vincent","repos":13,"name":"Vincent","location":"Zurich","login":"minikermit","public_repo_count":13,"username":"minikermit","created_at":"2009-01-18T10:56:54Z","record":null,"id":"user-47452","followers":3,"followers_count":3,"created":"2009-01-18T10:56:54Z","language":"JavaScript","pushed":"2012-06-27T19:16:29.254Z"},{"gravatar_id":"d3f0155cbb376d40f0c2e6f2d70552a4","score":10.7480545,"type":"user","fullname":"Vincent Agnano","repos":15,"name":"Vincent Agnano","location":"Montpellier","login":"vinyll","public_repo_count":15,"username":"vinyll","created_at":"2009-10-27T09:00:05Z","record":null,"id":"user-145172","followers":19,"followers_count":19,"created":"2009-10-27T09:00:05Z","language":"PHP","pushed":"2012-06-27T13:15:35.164Z"},{"gravatar_id":"dca7a9de73436b37325226984917bec0","score":10.725438,"type":"user","fullname":"Vincent Mazenod","name":"Vincent Mazenod","repos":18,"location":"Clermont Ferrand (636)","login":"mazenovi","public_repo_count":18,"username":"mazenovi","created_at":"2010-08-17T08:26:28Z","record":null,"id":"user-366957","followers":18,"followers_count":18,"created":"2010-08-17T08:26:28Z","language":"PHP","pushed":"2012-06-12T10:15:21.258Z"},{"gravatar_id":"9cfe5fa2f21186a7bec97f0e25fdf68e","score":10.578381,"type":"user","fullname":"Vincent Lark","name":"Vincent Lark","location":"France / Luxembourg","repos":11,"login":"vincent","public_repo_count":11,"username":"vincent","created_at":"2008-04-07T17:52:22Z","record":null,"id":"user-5623","followers":9,"followers_count":9,"created":"2008-04-07T17:52:22Z","language":"Python","pushed":"2011-10-17T15:15:11.027Z"},{"gravatar_id":"2bb264ba6bb334e5bfa5e266788a94c7","score":10.556574,"type":"user","repos":13,"name":"Vincent","fullname":"Vincent","location":"","login":"vjcharles","public_repo_count":13,"username":"vjcharles","created_at":"2008-06-23T08:36:59Z","record":null,"id":"user-14668","followers":2,"followers_count":2,"created":"2008-06-23T08:36:59Z","language":"Ruby","pushed":"2012-06-28T18:15:31.165Z"},{"gravatar_id":"7105cb5590c1d689191fabaff3cfc23b","score":10.545874,"type":"user","name":"Sam Vincent","repos":6,"fullname":"Sam Vincent","location":"Vancouver, BC","login":"samvincent","public_repo_count":6,"username":"samvincent","created_at":"2009-02-25T08:54:33Z","record":null,"id":"user-57775","followers":21,"followers_count":21,"created":"2009-02-25T08:54:33Z","language":"Ruby","pushed":"2012-06-15T21:15:20.297Z"},{"gravatar_id":"96f903d97afc840d7c317ce094fef408","score":10.537209,"type":"user","name":"vincent","repos":18,"fullname":"vincent","location":"北京市海淀区海淀北街8号中关村SOHO ","login":"vincent1900","public_repo_count":18,"username":"vincent1900","created_at":"2011-04-21T04:53:45Z","record":null,"id":"user-743038","followers":0,"followers_count":0,"created":"2011-04-21T04:53:45Z","language":"JavaScript","pushed":"2012-01-10T03:15:21.421Z"},{"gravatar_id":"2ecfff7b4be5cc2a6f42a0e6258f1bdd","score":10.464482,"type":"user","name":"Aziz Hardaya","location":"Jakarta Timur","repos":5,"fullname":"Aziz Hardaya","login":"AzizVincent","public_repo_count":5,"username":"AzizVincent","created_at":"2011-08-12T03:56:24Z","record":null,"id":"user-975298","followers":30,"followers_count":30,"created":"2011-08-12T03:56:24Z","language":"","pushed":"2012-02-13T03:15:25.527Z"},{"gravatar_id":"e5e032ef6bc616aab797ce8562fa60fa","score":10.312129,"type":"user","repos":3,"name":"Vincent","fullname":"Vincent","location":"Rotterdam","login":"VvanGemert","public_repo_count":3,"username":"VvanGemert","created_at":"2010-03-22T15:14:38Z","record":null,"id":"user-227966","followers":4,"followers_count":4,"created":"2010-03-22T15:14:38Z","language":"Ruby","pushed":"2012-03-29T14:15:14.844Z"},{"gravatar_id":"31a9803728a756c2b6ec090cb77852b3","score":10.310701,"type":"user","name":"Vincent Toups","location":"North Carolina","fullname":"Vincent Toups","repos":17,"login":"VincentToups","public_repo_count":17,"username":"VincentToups","created_at":"2008-10-31T13:41:24Z","record":null,"id":"user-31994","followers":16,"followers_count":16,"created":"2008-10-31T13:41:24Z","language":"Common Lisp","pushed":"2012-05-20T16:15:19.958Z"},{"gravatar_id":"2843b1e49827c8a63ef3695778646263","score":10.281975,"type":"user","fullname":"vincent","name":"vincent","location":"","repos":6,"login":"vincentwv","public_repo_count":6,"username":"vincentwv","created_at":"2011-08-17T09:40:13Z","record":null,"id":"user-985725","followers":3,"followers_count":3,"created":"2011-08-17T09:40:13Z","language":"JavaScript","pushed":"2012-04-04T16:15:11.99Z"},{"gravatar_id":"2c7e6e3e5b099d9d9d3ceba6819ca864","score":10.244888,"type":"user","fullname":"Vincent Waller","repos":44,"name":"Vincent Waller","location":"Bend, OR","login":"vwall","public_repo_count":44,"username":"vwall","created_at":"2009-08-21T18:38:05Z","record":null,"id":"user-118020","followers":7,"followers_count":7,"created":"2009-08-21T18:38:05Z","language":"Ruby","pushed":"2012-06-26T19:16:08.156Z"},{"gravatar_id":"3a66abaecbdf3edc16b509b9f46a5128","score":10.102409,"type":"user","fullname":"Vincent","repos":3,"name":"Vincent","location":"Irvine, CA","login":"vmarquez","public_repo_count":3,"username":"vmarquez","created_at":"2010-10-05T06:35:10Z","record":null,"id":"user-427578","followers":3,"followers_count":3,"created":"2010-10-05T06:35:10Z","language":"VimL","pushed":"2012-06-26T23:15:29.811Z"},{"gravatar_id":"0fa1e7a2807be2aaf0bd66d688506199","score":10.076025,"type":"user","location":"Taipei/Taiwan ","name":"Vincent","repos":12,"fullname":"Vincent","login":"changyihsin","public_repo_count":12,"username":"changyihsin","created_at":"2012-01-10T07:09:41Z","record":null,"id":"user-1317650","followers":0,"followers_count":0,"created":"2012-01-10T07:09:41Z","language":"C","pushed":"2012-06-05T07:15:20.895Z"},{"gravatar_id":"a8d7a6a8449afeeeaf9583c80c9ce8fc","score":10.073187,"type":"user","fullname":"Vincent","name":"Vincent","location":"Rotterdam/NL","repos":11,"login":"vincent-psarga","public_repo_count":11,"username":"vincent-psarga","created_at":"2010-01-20T15:27:54Z","record":null,"id":"user-186248","followers":0,"followers_count":0,"created":"2010-01-20T15:27:54Z","language":"Python","pushed":"2011-10-19T10:15:15.782Z"},{"gravatar_id":"15f0181accb819d21fd149a30303d68c","score":10.065324,"type":"user","fullname":"Vincent Demeester","repos":38,"name":"Vincent Demeester","location":"Bordeaux, Aquitaine, France","login":"vdemeester","public_repo_count":38,"username":"vdemeester","created_at":"2008-04-11T06:56:22Z","record":null,"id":"user-6508","followers":8,"followers_count":8,"created":"2008-04-11T06:56:22Z","language":"Shell","pushed":"2012-06-26T21:15:36.396Z"},{"gravatar_id":"ea99573d979fd0a4e9503a1e9331e68a","score":10.0389385,"type":"user","name":"Vincent Cogne","location":"France, Paris","fullname":"Vincent Cogne","repos":20,"login":"xpac27","public_repo_count":20,"username":"xpac27","created_at":"2009-04-22T13:24:07Z","record":null,"id":"user-76585","followers":14,"followers_count":14,"created":"2009-04-22T13:24:07Z","language":"JavaScript","pushed":"2012-06-23T19:15:31.367Z"},{"gravatar_id":"cce588dc4e7a73ae4c284915ca4de863","score":10.007375,"type":"user","repos":11,"name":"VIncent","fullname":"VIncent","location":"Guangzhou,China","login":"ywdong","public_repo_count":11,"username":"ywdong","created_at":"2012-02-21T15:58:13Z","record":null,"id":"user-1457889","followers":0,"followers_count":0,"created":"2012-02-21T15:58:13Z","language":"Java","pushed":"2012-06-03T05:15:15.227Z"},{"gravatar_id":"06366cecc21b382cef72494f25bcbf3e","score":9.9387245,"type":"user","fullname":"Vincent","repos":10,"name":"Vincent","location":"","login":"zakora","public_repo_count":10,"username":"zakora","created_at":"2009-07-19T20:21:15Z","record":null,"id":"user-106620","followers":0,"followers_count":0,"created":"2009-07-19T20:21:15Z","language":"Python","pushed":"2012-06-27T20:15:10.991Z"},{"gravatar_id":"1255ca023ce9ca08c7354b619d562625","score":9.870074,"type":"user","location":"","name":"Vincent","repos":9,"fullname":"Vincent","login":"xuevin","public_repo_count":9,"username":"xuevin","created_at":"2010-06-04T01:46:36Z","record":null,"id":"user-296101","followers":0,"followers_count":0,"created":"2010-06-04T01:46:36Z","language":"Java","pushed":"2012-06-08T20:15:31.323Z"},{"gravatar_id":"94f3a1b384d13d1413422b6b64935d48","score":9.794494,"type":"user","fullname":"Vincent Anonymouse","repos":1,"name":"Vincent Anonymouse","location":"","login":"milomouse","public_repo_count":1,"username":"milomouse","created_at":"2009-04-23T05:11:40Z","record":null,"id":"user-76868","followers":19,"followers_count":19,"created":"2009-04-23T05:11:40Z","language":"Common Lisp","pushed":"2012-03-07T19:19:44.686Z"},{"gravatar_id":"0d131f51bf9526483afcac2dd0d3dad5","score":9.7643385,"type":"user","fullname":"Vincent Cabansag","repos":1,"name":"Vincent Cabansag","location":"Chicago, IL","login":"vcabansag","public_repo_count":1,"username":"vcabansag","created_at":"2011-09-19T15:10:07Z","record":null,"id":"user-1062352","followers":19,"followers_count":19,"created":"2011-09-19T15:10:07Z","language":"Ruby","pushed":"2012-06-27T15:15:38.916Z"},{"gravatar_id":"8c6856b195974b4e03bf9ce24f36ec16","score":9.6641245,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"Santa Barbara, CA","login":"vincentalindogan","public_repo_count":0,"username":"vincentalindogan","created_at":"2011-03-27T18:47:05Z","record":null,"id":"user-693707","followers":2,"followers_count":2,"created":"2011-03-27T18:47:05Z","language":"","pushed":"2012-03-26T00:15:09.735Z"},{"gravatar_id":"fb56e63daee1464b77209410873f0070","score":9.6641245,"type":"user","name":"Will Vincent","location":"Twin Cities, MN","repos":0,"fullname":"Will Vincent","login":"willvincent","public_repo_count":0,"username":"willvincent","created_at":"2011-03-25T08:19:27Z","record":null,"id":"user-689891","followers":2,"followers_count":2,"created":"2011-03-25T08:19:27Z","language":"","pushed":"2012-05-14T19:16:38.835Z"},{"gravatar_id":"ed4127e0b58e6d0f753a987f895abebd","score":9.6641245,"type":"user","name":"vincent","fullname":"vincent","location":"Beijing China","repos":3,"login":"vincenttone","public_repo_count":3,"username":"vincenttone","created_at":"2011-11-08T01:48:51Z","record":null,"id":"user-1179536","followers":1,"followers_count":1,"created":"2011-11-08T01:48:51Z","language":"Python","pushed":"2012-05-28T11:15:18.397Z"},{"gravatar_id":"aa7c3566126ee339d33fee2c801662d9","score":9.6641245,"type":"user","fullname":"Vincent","name":"Vincent","repos":6,"location":"Valence/France","login":"vinzcoco","public_repo_count":6,"username":"vinzcoco","created_at":"2012-01-23T21:13:58Z","record":null,"id":"user-1372480","followers":0,"followers_count":0,"created":"2012-01-23T21:13:58Z","language":"PHP","pushed":"2012-06-20T10:15:18.217Z"},{"gravatar_id":"8493dbf44e9a5995b24165464f10df92","score":9.595475,"type":"user","location":"","name":"Vincent ","repos":5,"fullname":"Vincent ","login":"livewire195","public_repo_count":5,"username":"livewire195","created_at":"2012-03-27T16:10:49Z","record":null,"id":"user-1580359","followers":0,"followers_count":0,"created":"2012-03-27T16:10:49Z","language":"Python","pushed":"2012-06-09T07:15:13.208Z"},{"gravatar_id":"4667846b9c1e5e426ca958ac96882eb9","score":9.576109,"type":"user","name":"vincent","repos":4,"fullname":"vincent","location":"","login":"vincent5295","public_repo_count":4,"username":"vincent5295","created_at":"2012-02-29T03:00:42Z","record":null,"id":"user-1483932","followers":0,"followers_count":0,"created":"2012-02-29T03:00:42Z","language":"C","pushed":"2012-06-17T14:15:11.01Z"},{"gravatar_id":"032f1a85263f21ff1f013421967ef99e","score":9.558389,"type":"user","name":"Vincent Franco","repos":13,"fullname":"Vincent Franco","location":"Sacramento","login":"vinniefranco","public_repo_count":13,"username":"vinniefranco","created_at":"2010-07-10T20:05:55Z","record":null,"id":"user-328428","followers":14,"followers_count":14,"created":"2010-07-10T20:05:55Z","language":"Ruby","pushed":"2012-06-17T19:15:32.752Z"},{"gravatar_id":"5ed6fc41ebf7d88590a4c07eae074e97","score":9.558389,"type":"user","fullname":"Vincent Deloso","repos":25,"name":"Vincent Deloso","location":"","login":"Mitsugaru","public_repo_count":25,"username":"Mitsugaru","created_at":"2011-11-09T21:32:35Z","record":null,"id":"user-1184640","followers":10,"followers_count":10,"created":"2011-11-09T21:32:35Z","language":"Java","pushed":"2012-06-27T15:15:40.449Z"},{"gravatar_id":"051a209f0b3759e8e51680562955d555","score":9.556979,"type":"user","name":"Vincent","fullname":"Vincent","repos":1,"location":"","login":"vgametoo","public_repo_count":1,"username":"vgametoo","created_at":"2012-03-19T12:39:35Z","record":null,"id":"user-1552699","followers":1,"followers_count":1,"created":"2012-03-19T12:39:35Z","language":"","pushed":"2012-06-21T19:15:26.276Z"},{"gravatar_id":"a270083a603e945d156b9fa5ba7f1270","score":9.55321,"type":"user","fullname":"Vincent","name":"Vincent","location":"","repos":1,"login":"dominiquevincent","public_repo_count":1,"username":"dominiquevincent","created_at":"2010-05-05T13:45:32Z","record":null,"id":"user-265581","followers":1,"followers_count":1,"created":"2010-05-05T13:45:32Z","language":"JavaScript","pushed":"2010-11-12T07:15:10.614Z"},{"gravatar_id":"4136d955e297f2759ac728b6d1701f36","score":9.55321,"type":"user","name":"Vincent","repos":1,"fullname":"Vincent","location":"","login":"vincentamari","public_repo_count":1,"username":"vincentamari","created_at":"2011-03-14T11:02:58Z","record":null,"id":"user-668429","followers":1,"followers_count":1,"created":"2011-03-14T11:02:58Z","language":"JavaScript","pushed":"2012-06-18T07:15:51.072Z"},{"gravatar_id":"4b44c097908d14610ba01790b5fc975c","score":9.526825,"type":"user","fullname":"Vincent","name":"Vincent","location":"","repos":4,"login":"ciex","public_repo_count":4,"username":"ciex","created_at":"2010-05-16T15:08:50Z","record":null,"id":"user-278463","followers":0,"followers_count":0,"created":"2010-05-16T15:08:50Z","language":"Python","pushed":"2012-04-16T15:15:29.943Z"},{"gravatar_id":"010564c5d5894e8e22ba40de45917566","score":9.526825,"type":"user","fullname":"Vincent","name":"Vincent","repos":1,"location":"The Netherlands","login":"Vinnl","public_repo_count":1,"username":"Vinnl","created_at":"2008-04-02T18:24:21Z","record":null,"id":"user-4251","followers":1,"followers_count":1,"created":"2008-04-02T18:24:21Z","language":"","pushed":"2012-05-04T14:15:33.377Z"},{"gravatar_id":"4b86e791cadf9cc2c0a4a7bfc32d9e9e","score":9.526825,"type":"user","fullname":"Vincent","name":"Vincent","repos":1,"location":"","login":"monkeymajiks","public_repo_count":1,"username":"monkeymajiks","created_at":"2012-01-25T22:10:51Z","record":null,"id":"user-1380497","followers":1,"followers_count":1,"created":"2012-01-25T22:10:51Z","language":"","pushed":"2012-06-12T11:15:31.686Z"},{"gravatar_id":"916769ca776c1e7576bcb7cd34be7391","score":9.526825,"type":"user","name":"Vincent","location":"","fullname":"Vincent","repos":4,"login":"vgauthier","public_repo_count":4,"username":"vgauthier","created_at":"2012-02-25T20:07:22Z","record":null,"id":"user-1473920","followers":0,"followers_count":0,"created":"2012-02-25T20:07:22Z","language":"Python","pushed":"2012-06-23T16:15:14.419Z"},{"gravatar_id":"b2f52d3a1a83d0fa6be6705d322bc1de","score":9.523987,"type":"user","name":"Vincent","location":"France","repos":0,"fullname":"Vincent","login":"Vincent-P","public_repo_count":0,"username":"Vincent-P","created_at":"2011-07-28T13:51:46Z","record":null,"id":"user-944506","followers":1,"followers_count":1,"created":"2011-07-28T13:51:46Z","language":"","pushed":"2012-05-12T09:15:15.844Z"},{"gravatar_id":"fc24888b3f4d2a85348e7bbded2f4100","score":9.488329,"type":"user","fullname":"Vincent","repos":0,"name":"Vincent","location":"Amsterdam","login":"viancen","public_repo_count":0,"username":"viancen","created_at":"2012-02-15T08:22:55Z","record":null,"id":"user-1439145","followers":1,"followers_count":1,"created":"2012-02-15T08:22:55Z","language":"","pushed":"2012-06-26T21:15:34.446Z"},{"gravatar_id":"8682561c2989398cda139818390a25c4","score":9.48456,"type":"user","name":"Vincent","repos":0,"fullname":"Vincent","location":"Singapore","login":"vsputra","public_repo_count":0,"username":"vsputra","created_at":"2010-07-19T17:38:53Z","record":null,"id":"user-337548","followers":1,"followers_count":1,"created":"2010-07-19T17:38:53Z","language":"","pushed":"2012-06-19T03:15:15.214Z"},{"gravatar_id":"d3d7715ddc9d2c98dc0acca41026e3ec","score":9.48079,"type":"user","name":"Vincent","location":"Melbourne/Australia","fullname":"Vincent","repos":3,"login":"vincentwongso","public_repo_count":3,"username":"vincentwongso","created_at":"2012-01-03T00:57:50Z","record":null,"id":"user-1300030","followers":0,"followers_count":0,"created":"2012-01-03T00:57:50Z","language":"JavaScript","pushed":"2012-05-10T23:15:22.719Z"},{"gravatar_id":"207cf37afe1b8de78411201832496eb3","score":9.48079,"type":"user","name":"vincent","location":"bordeaux","fullname":"vincent","repos":3,"login":"guillaumevincent","public_repo_count":3,"username":"guillaumevincent","created_at":"2011-07-28T06:59:30Z","record":null,"id":"user-943762","followers":0,"followers_count":0,"created":"2011-07-28T06:59:30Z","language":"Python","pushed":"2012-06-22T12:15:17.467Z"},{"gravatar_id":"fc35e4705d430b49a2e1f962e73d567f","score":9.458175,"type":"user","fullname":"Vincent","repos":0,"name":"Vincent","location":"","login":"vn","public_repo_count":0,"username":"vn","created_at":"2012-01-20T23:48:32Z","record":null,"id":"user-1361165","followers":1,"followers_count":1,"created":"2012-01-20T23:48:32Z","language":"","pushed":"2012-06-28T11:15:11.679Z"},{"gravatar_id":"c34027ae138bf86507c5a36a6b3bf3a5","score":9.421089,"type":"user","name":"Vincent Lannurien","fullname":"Vincent Lannurien","location":"France","repos":8,"login":"addikt1ve","public_repo_count":8,"username":"addikt1ve","created_at":"2008-09-01T13:41:54Z","record":null,"id":"user-22757","followers":15,"followers_count":15,"created":"2008-09-01T13:41:54Z","language":"Shell","pushed":"2011-04-29T22:15:09.273Z"},{"gravatar_id":"226e40fdc55d4597a46279296a616384","score":9.419679,"type":"user","location":"Denver","name":"Vincent","repos":2,"fullname":"Vincent","login":"vincentdavis","public_repo_count":2,"username":"vincentdavis","created_at":"2010-03-29T12:06:25Z","record":null,"id":"user-232564","followers":0,"followers_count":0,"created":"2010-03-29T12:06:25Z","language":"VimL","pushed":"2012-06-05T19:15:38.974Z"},{"gravatar_id":"f6e9045bb7bf8b000eaf62caffbd17ab","score":9.41591,"type":"user","fullname":"Vincent","repos":2,"name":"Vincent","location":"Mont sainte anne","login":"vincentvent","public_repo_count":2,"username":"vincentvent","created_at":"2011-08-10T01:40:18Z","record":null,"id":"user-970338","followers":0,"followers_count":0,"created":"2011-08-10T01:40:18Z","language":"","pushed":"2012-03-08T14:15:38.332Z"},{"gravatar_id":"dfac99df6d6b570feb68f0b88f720a80","score":9.41214,"type":"user","name":"vincent","repos":2,"fullname":"vincent","location":"China, Shenzhen, Nanshan","login":"chenws","public_repo_count":2,"username":"chenws","created_at":"2012-01-03T16:35:05Z","record":null,"id":"user-1301573","followers":0,"followers_count":0,"created":"2012-01-03T16:35:05Z","language":"C","pushed":"2012-05-02T09:15:37.412Z"},{"gravatar_id":"1cc07aa5b421181a130efdd61112ec3e","score":9.403019,"type":"user","fullname":"Vincent S","name":"Vincent S","repos":1,"location":"","login":"VincentS","public_repo_count":1,"username":"VincentS","created_at":"2011-08-23T12:33:31Z","record":null,"id":"user-998872","followers":0,"followers_count":0,"created":"2011-08-23T12:33:31Z","language":"Ruby","pushed":"2011-08-23T13:15:25.062Z"},{"gravatar_id":"304da7fc1421e25a18b95b784baf9539","score":9.389524,"type":"user","name":"Vincent","fullname":"Vincent","location":"","repos":2,"login":"copyshaft","public_repo_count":2,"username":"copyshaft","created_at":"2009-12-04T03:29:28Z","record":null,"id":"user-161704","followers":0,"followers_count":0,"created":"2009-12-04T03:29:28Z","language":"","pushed":"2010-05-24T00:25:15.443Z"},{"gravatar_id":"838409afe0def35c03da9757148df790","score":9.389524,"type":"user","name":"Vincent","repos":2,"fullname":"Vincent","location":"Paris","login":"vinceofdrink","public_repo_count":2,"username":"vinceofdrink","created_at":"2011-07-04T11:24:46Z","record":null,"id":"user-893359","followers":0,"followers_count":0,"created":"2011-07-04T11:24:46Z","language":"C","pushed":"2012-01-12T15:15:29.207Z"},{"gravatar_id":"1adf0d0b91278d02e88627ffbdd1c65a","score":9.389524,"type":"user","repos":2,"name":"Vincent","fullname":"Vincent","location":"China","login":"wenzheng","public_repo_count":2,"username":"wenzheng","created_at":"2011-08-11T12:35:23Z","record":null,"id":"user-973811","followers":0,"followers_count":0,"created":"2011-08-11T12:35:23Z","language":"","pushed":"2012-02-23T15:15:48.56Z"},{"score":9.389524,"type":"user","fullname":"Vincent","name":"Vincent","location":"France","repos":2,"login":"ziefno","public_repo_count":2,"username":"ziefno","created_at":"2012-03-10T14:44:03Z","record":null,"id":"user-1523263","followers":0,"followers_count":0,"created":"2012-03-10T14:44:03Z","language":"","pushed":"2012-03-10T22:15:17.63Z"},{"gravatar_id":"95bcdb7789b7c0481aea3cf55b5bb987","score":9.389524,"type":"user","name":"Vincent","location":"","fullname":"Vincent","repos":2,"login":"vincentm8","public_repo_count":2,"username":"vincentm8","created_at":"2010-09-12T19:26:07Z","record":null,"id":"user-396662","followers":0,"followers_count":0,"created":"2010-09-12T19:26:07Z","language":"PHP","pushed":"2012-04-16T08:15:17.843Z"},{"gravatar_id":"811d7edddfcb7e652f38c7e56d51ea51","score":9.389524,"type":"user","fullname":"Vincent","repos":2,"name":"Vincent","location":"HCM","login":"vnoob","public_repo_count":2,"username":"vnoob","created_at":"2011-04-15T15:26:21Z","record":null,"id":"user-731797","followers":0,"followers_count":0,"created":"2011-04-15T15:26:21Z","language":"","pushed":"2012-06-02T04:15:19.714Z"},{"gravatar_id":"bf4442de23d120becefaa556f41562f2","score":9.389524,"type":"user","name":"Vincente","repos":2,"fullname":"Vincente","location":"California","login":"vciancio","public_repo_count":2,"username":"vciancio","created_at":"2011-12-01T03:03:38Z","record":null,"id":"user-1232406","followers":0,"followers_count":0,"created":"2011-12-01T03:03:38Z","language":"Java","pushed":"2012-06-19T00:15:59.771Z"},{"gravatar_id":"d6288a0b3a370e4db4ea27adbeb74a30","score":9.378824,"type":"user","repos":10,"name":"Blanchon Vincent","fullname":"Blanchon Vincent","location":"Sophia Antipolis, France","login":"blanchonvincent","public_repo_count":10,"username":"blanchonvincent","created_at":"2012-03-27T17:07:35Z","record":null,"id":"user-1580512","followers":14,"followers_count":14,"created":"2012-03-27T17:07:35Z","language":"PHP","pushed":"2012-06-04T10:15:20.206Z"},{"gravatar_id":"667176b96540d167eb74f473c9aea5f7","score":9.378824,"type":"user","name":"Vincent Voyer","location":"Paris, france","fullname":"Vincent Voyer","repos":13,"login":"vvo","public_repo_count":13,"username":"vvo","created_at":"2009-09-06T14:28:06Z","record":null,"id":"user-123822","followers":13,"followers_count":13,"created":"2009-09-06T14:28:06Z","language":"JavaScript","pushed":"2012-06-26T17:15:45.365Z"},{"gravatar_id":"71e56904f65a1ad1f3a178062fad6897","score":9.370159,"type":"user","fullname":"Vincent","name":"Vincent","repos":1,"location":"France, Tarn","login":"Vincent81","public_repo_count":1,"username":"Vincent81","created_at":"2011-08-05T21:22:58Z","record":null,"id":"user-962113","followers":0,"followers_count":0,"created":"2011-08-05T21:22:58Z","language":"","pushed":"2011-09-06T14:15:24.224Z"},{"gravatar_id":"014023e8bd4f74bdd5dd949f9afcf9c9","score":9.34726,"type":"user","name":"Vincent","fullname":"Vincent","location":"","repos":1,"login":"Vincentbosch","public_repo_count":1,"username":"Vincentbosch","created_at":"2011-05-12T14:48:43Z","record":null,"id":"user-784014","followers":0,"followers_count":0,"created":"2011-05-12T14:48:43Z","language":"","pushed":"2011-05-17T14:15:16.145Z"},{"gravatar_id":"86f44ee7aef87c7df23227ed99af157c","score":9.34726,"type":"user","name":"vincent","location":"","repos":1,"fullname":"vincent","login":"legarconjoure","public_repo_count":1,"username":"legarconjoure","created_at":"2011-04-04T12:20:19Z","record":null,"id":"user-708274","followers":0,"followers_count":0,"created":"2011-04-04T12:20:19Z","language":"","pushed":"2012-05-14T08:15:24.999Z"},{"gravatar_id":"fceb28e90061e831277e161d5e85757a","score":9.327894,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"","login":"vincent7894","public_repo_count":0,"username":"vincent7894","created_at":"2011-12-10T20:26:26Z","record":null,"id":"user-1254570","followers":0,"followers_count":0,"created":"2011-12-10T20:26:26Z","language":"","pushed":"2012-03-29T18:15:22.448Z"},{"gravatar_id":"8a817ae82ab5e742c6aca7548e39ab65","score":9.327894,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"","login":"vincent73000","public_repo_count":0,"username":"vincent73000","created_at":"2011-07-30T13:45:47Z","record":null,"id":"user-948600","followers":0,"followers_count":0,"created":"2011-07-30T13:45:47Z","language":"","pushed":"2012-06-04T11:15:21.524Z"},{"gravatar_id":"d98356664e29463bdc8d8e77095a80bd","score":9.320875,"type":"user","name":"Vincent","fullname":"Vincent","location":"Shanghai, China","repos":1,"login":"ttyio","public_repo_count":1,"username":"ttyio","created_at":"2010-08-16T06:35:46Z","record":null,"id":"user-365590","followers":0,"followers_count":0,"created":"2010-08-16T06:35:46Z","language":"VimL","pushed":"2010-11-08T03:15:12.032Z"},{"gravatar_id":"74ccd2db6dd9211393d4bd62408c6c13","score":9.320875,"type":"user","fullname":"vincent","repos":1,"name":"vincent","location":"","login":"tean60","public_repo_count":1,"username":"tean60","created_at":"2011-01-20T06:55:22Z","record":null,"id":"user-574055","followers":0,"followers_count":0,"created":"2011-01-20T06:55:22Z","language":"","pushed":"2011-06-10T06:15:11.093Z"},{"gravatar_id":"3526439448f2288e0aa5f9456b6aad4b","score":9.320875,"type":"user","name":"Will Vincent","fullname":"Will Vincent","repos":1,"location":"","login":"tcindie","public_repo_count":1,"username":"tcindie","created_at":"2010-07-02T18:50:26Z","record":null,"id":"user-321392","followers":0,"followers_count":0,"created":"2010-07-02T18:50:26Z","language":"PHP","pushed":"2011-07-01T17:15:14.856Z"},{"gravatar_id":"3aeafe584ef75baac1976c910f069752","score":9.320875,"type":"user","name":"vincent","fullname":"vincent","location":"","repos":1,"login":"vincentye38","public_repo_count":1,"username":"vincentye38","created_at":"2011-01-27T07:37:41Z","record":null,"id":"user-586072","followers":0,"followers_count":0,"created":"2011-01-27T07:37:41Z","language":"","pushed":"2012-04-05T05:15:16.89Z"},{"gravatar_id":"49a3fcbf452d1e9d85259d8e1f510934","score":9.320875,"type":"user","repos":1,"name":"Vincent","location":"Rouen","fullname":"Vincent","login":"pasificking","public_repo_count":1,"username":"pasificking","created_at":"2012-03-30T09:07:51Z","record":null,"id":"user-1589894","followers":0,"followers_count":0,"created":"2012-03-30T09:07:51Z","language":"","pushed":"2012-04-10T09:15:35.441Z"},{"gravatar_id":"c3ca1e10cdb67296511fdb480b4acdf0","score":9.320875,"type":"user","name":"Vincent","repos":1,"fullname":"Vincent","location":"","login":"Bpbannerproject","public_repo_count":1,"username":"Bpbannerproject","created_at":"2012-05-07T19:08:32Z","record":null,"id":"user-1714420","followers":0,"followers_count":0,"created":"2012-05-07T19:08:32Z","language":"","pushed":"2012-05-16T06:15:09.874Z"},{"gravatar_id":"259619f6b128ff8886bffa31ea52ab35","score":9.320875,"type":"user","fullname":"Vincent","repos":1,"name":"Vincent","location":"Nanjing, China","login":"farawayboat","public_repo_count":1,"username":"farawayboat","created_at":"2011-09-23T16:35:39Z","record":null,"id":"user-1074475","followers":0,"followers_count":0,"created":"2011-09-23T16:35:39Z","language":"","pushed":"2012-06-28T07:15:16.399Z"},{"gravatar_id":"6b3cc4c0504401ebb74ecac20cec5fbb","score":9.301509,"type":"user","fullname":"Vincent","name":"Vincent","location":"","repos":0,"login":"vincent7842","public_repo_count":0,"username":"vincent7842","created_at":"2012-03-17T14:30:39Z","record":null,"id":"user-1547379","followers":0,"followers_count":0,"created":"2012-03-17T14:30:39Z","language":"","pushed":"2012-03-17T15:15:16.619Z"},{"gravatar_id":"886a562bd3cc225ec3250650d8cdf4bd","score":9.297433,"type":"user","name":"Zhiqiang Zhao","location":"Hangzhou, China","fullname":"Zhiqiang Zhao","repos":9,"login":"vincent-zhao","public_repo_count":9,"username":"vincent-zhao","created_at":"2012-01-31T03:18:49Z","record":null,"id":"user-1393423","followers":23,"followers_count":23,"created":"2012-01-31T03:18:49Z","language":"JavaScript","pushed":"2012-06-23T07:15:16.545Z"},{"gravatar_id":"4c7ff78c68f09a6294059d17df823fbf","score":9.291653,"type":"user","name":"Vincent","repos":0,"fullname":"Vincent","location":"Belgium","login":"VincentU","public_repo_count":0,"username":"VincentU","created_at":"2012-03-21T06:39:02Z","record":null,"id":"user-1559921","followers":0,"followers_count":0,"created":"2012-03-21T06:39:02Z","language":"","pushed":"2012-05-16T18:15:22.652Z"},{"gravatar_id":"9ec9ad37e9ab75436de0b3a0ce971dbe","score":9.283789,"type":"user","name":"Vincent Tencé","location":"Laval, Qc Canada","fullname":"Vincent Tencé","repos":12,"login":"testinfected","public_repo_count":12,"username":"testinfected","created_at":"2009-09-18T23:30:38Z","record":null,"id":"user-128804","followers":13,"followers_count":13,"created":"2009-09-18T23:30:38Z","language":"Java","pushed":"2012-06-23T19:16:06.24Z"},{"gravatar_id":"30d318bdf8e6a1d013c1bd8c5e9749a0","score":9.282379,"type":"user","name":"Vincent","fullname":"Vincent","location":"Coeur d'Alene ID","repos":0,"login":"thinkeryvin","public_repo_count":0,"username":"thinkeryvin","created_at":"2009-09-22T06:48:36Z","record":null,"id":"user-129806","followers":0,"followers_count":0,"created":"2009-09-22T06:48:36Z","language":"","pushed":"2011-03-30T07:15:09.25Z"},{"gravatar_id":"160934525d484d9269d3f5be05ff26da","score":9.282379,"type":"user","fullname":"Vincent","name":"Vincent","repos":0,"location":"Zoetermeer","login":"vinnyb","public_repo_count":0,"username":"vinnyb","created_at":"2010-08-16T13:04:14Z","record":null,"id":"user-365924","followers":0,"followers_count":0,"created":"2010-08-16T13:04:14Z","language":"","pushed":"2012-05-07T09:15:11.135Z"},{"gravatar_id":"e36b0ea5f740b3545bb9c39dcf4e5110","score":9.282379,"type":"user","fullname":"vincent","name":"vincent","location":"","repos":0,"login":"vinc3nt","public_repo_count":0,"username":"vinc3nt","created_at":"2011-07-01T11:34:07Z","record":null,"id":"user-888545","followers":0,"followers_count":0,"created":"2011-07-01T11:34:07Z","language":"","pushed":"2012-05-22T21:15:13.084Z"},{"gravatar_id":"953b83ade35b99fb82c2a6e134b2329a","score":9.27861,"type":"user","name":"vincent","location":"Montpellier, France","fullname":"vincent","repos":0,"login":"narf","public_repo_count":0,"username":"narf","created_at":"2010-10-28T16:11:35Z","record":null,"id":"user-458263","followers":0,"followers_count":0,"created":"2010-10-28T16:11:35Z","language":"","pushed":"2012-05-21T08:15:26.631Z"},{"gravatar_id":"a6c32849daa0d165f480bfa612116767","score":9.27861,"type":"user","name":"Vincent","location":"","repos":0,"fullname":"Vincent","login":"vincentveri","public_repo_count":0,"username":"vincentveri","created_at":"2011-05-03T08:59:39Z","record":null,"id":"user-765248","followers":0,"followers_count":0,"created":"2011-05-03T08:59:39Z","language":"","pushed":"2012-05-25T18:15:20.565Z"},{"gravatar_id":"23284aaf57ee593baa81a3d953386021","score":9.27861,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"","login":"vrafols","public_repo_count":0,"username":"vrafols","created_at":"2012-05-28T03:31:24Z","record":null,"id":"user-1784314","followers":0,"followers_count":0,"created":"2012-05-28T03:31:24Z","language":"","pushed":"2012-06-04T07:15:19.793Z"},{"gravatar_id":"24eb2af05f128cbf59314bddf59f3ed9","score":9.27861,"type":"user","name":"Vincent","fullname":"Vincent","repos":0,"location":"","login":"vinc38","public_repo_count":0,"username":"vinc38","created_at":"2012-01-18T08:14:07Z","record":null,"id":"user-1343597","followers":0,"followers_count":0,"created":"2012-01-18T08:14:07Z","language":"","pushed":"2012-06-14T14:15:37.571Z"},{"gravatar_id":"5a60bf71026c317ff9cacf9cce842924","score":9.27484,"type":"user","repos":0,"name":"Vincent","fullname":"Vincent","location":"","login":"Squee","public_repo_count":0,"username":"Squee","created_at":"2009-11-18T13:16:18Z","record":null,"id":"user-154841","followers":0,"followers_count":0,"created":"2009-11-18T13:16:18Z","language":"","pushed":"2011-11-15T17:15:15.363Z"},{"gravatar_id":"747d136a83a1e1fd26b5f001eb632d2c","score":9.252225,"type":"user","name":"Vincent","fullname":"Vincent","location":"","repos":0,"login":"msr911","public_repo_count":0,"username":"msr911","created_at":"2010-02-11T10:01:05Z","record":null,"id":"user-201682","followers":0,"followers_count":0,"created":"2010-02-11T10:01:05Z","language":"","pushed":"2010-05-23T23:30:14.272Z"},{"gravatar_id":"f09b6aab5c78a879998248e76e9e80b8","score":9.252225,"type":"user","name":"vincent","fullname":"vincent","location":"","repos":0,"login":"vincwu","public_repo_count":0,"username":"vincwu","created_at":"2009-05-02T14:51:55Z","record":null,"id":"user-80223","followers":0,"followers_count":0,"created":"2009-05-02T14:51:55Z","language":"","pushed":"2011-03-22T06:15:08.705Z"}]} + diff --git a/test/ReplayData/Repository.testSearchIssues.txt b/test/ReplayData/Repository.testSearchIssues.txt new file mode 100644 index 00000000..f2a6d6a8 --- /dev/null +++ b/test/ReplayData/Repository.testSearchIssues.txt @@ -0,0 +1,5 @@ +GET /legacy/issues/search/jacquev6/PyGithub/open/search {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('content-length', '875'), ('x-ratelimit-limit', '5000'), ('x-ratelimit-remaining', '4985'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('etag', '"2e397de657b33283e77ef12a21326d0d"'), ('cache-control', 'max-age=0, private, must-revalidate'), ('date', 'Thu, 28 Jun 2012 20:39:57 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"issues":[{"title":"Support new Search API","number":49,"user":"kukuts","html_url":"https://github.com/jacquev6/PyGithub/issues/49","labels":["Functionalities","RequestedByUser"],"body":"New API ported from v2 but i have trouble with adopting ask's library for v2 API to support v3 style for searching. \nhttp://developer.github.com/v3/search/\n\nIts not described in the page about parameters that search for repos API supports.\nThey are same as in v2 API, you can look them in ask's library.\nIn v2 was like that https://github.com/api/v2/json/repos/search/testing?start_page=2&language=Python\nIn v3 is https://api.github.com/legacy/repos/search/testing?start_page=2&language=Python","votes":0,"comments":2,"updated_at":"2012-06-25T12:31:14-07:00","gravatar_id":"9be6ba907be1740213b69422fdf52b57","position":1.0,"state":"open","created_at":"2012-06-21T05:27:38-07:00"}]} + diff --git a/test/Repository.py b/test/Repository.py index ff0d44a6..70220281 100644 --- a/test/Repository.py +++ b/test/Repository.py @@ -332,3 +332,6 @@ class Repository( Framework.TestCase ): def testGetPullsWithArguments( self ): self.assertListKeyEqual( self.repo.get_pulls( "closed" ), lambda p: p.id, [ 1448168, 1436310, 1436215 ] ) + + def testSearchIssues( self ): + self.assertListKeyEqual( self.repo.search_issues( "open", "search" ), lambda i: i.title, [ "Support new Search API" ] )