From a39af6a0aae16a923f7be48a70fe1095b17280d2 Mon Sep 17 00:00:00 2001 From: Vincent Jacques Date: Sat, 26 May 2012 21:53:55 +0100 Subject: [PATCH] Improve test coverage --- .../description.000.human_readable.json | 15 ++-- .../description.001.normalized.json | 88 +++++++++---------- codegen/templates/GithubObject.py | 6 +- doc/ReferenceOfClasses.md | 9 +- src/github/AuthenticatedUser.py | 6 +- src/github/Authorization.py | 6 +- src/github/Commit.py | 6 +- src/github/CommitComment.py | 6 +- src/github/Download.py | 6 +- src/github/Event.py | 30 +------ src/github/Gist.py | 6 +- src/github/Issue.py | 20 +++-- src/github/IssueEvent.py | 6 +- src/github/NamedUser.py | 6 +- src/github/Organization.py | 6 +- src/github/PullRequest.py | 6 +- src/github/PullRequestComment.py | 6 +- src/github/Repository.py | 6 +- src/github/RepositoryKey.py | 25 ++++-- src/github/Team.py | 6 +- src/github/UserKey.py | 17 +++- test/AuthenticatedUser.py | 86 +++++++++--------- test/Event.py | 4 - test/Framework.py | 15 +++- test/IntegrationTest.py | 27 +++--- test/IssueEvent.py | 15 ++++ test/Organization.py | 46 ++-------- .../AuthenticatedUser.testCreateFork.txt | 15 ++++ .../AuthenticatedUser.testCreateKey.txt | 5 ++ ...enticatedUser.testEditWithAllArguments.txt | 11 --- .../AuthenticatedUser.testGetEvents.txt | 5 ++ .../AuthenticatedUser.testGetGists.txt | 5 ++ .../AuthenticatedUser.testGetIssues.txt | 5 ++ .../AuthenticatedUser.testGetKeys.txt | 5 ++ ...nticatedUser.testGetOrganizationEvents.txt | 15 ++++ .../AuthenticatedUser.testGetOrgs.txt | 5 ++ .../AuthenticatedUser.testGetRepos.txt | 5 ++ .../AuthenticatedUser.testGetStarredGists.txt | 5 ++ test/ReplayData/IssueEvent.setUp.txt | 20 +++++ test/ReplayData/IssueEvent.testAttributes.txt | 5 ++ .../Organization.testEditWithAllArguments.txt | 5 ++ test/ReplayData/Repository.testCreateKey.txt | 5 ++ test/ReplayData/RepositoryKey.setUp.txt | 15 ++++ test/ReplayData/UserKey.setUp.txt | 5 ++ test/ReplayData/UserKey.testDelete.txt | 5 ++ .../UserKey.testEditWithAllArguments.txt | 5 ++ .../UserKey.testEditWithoutArguments.txt | 5 ++ test/Repository.py | 4 + test/RepositoryKey.py | 25 ++++++ test/UserKey.py | 24 +++++ 50 files changed, 425 insertions(+), 260 deletions(-) create mode 100644 test/IssueEvent.py create mode 100644 test/ReplayData/AuthenticatedUser.testCreateFork.txt create mode 100644 test/ReplayData/AuthenticatedUser.testCreateKey.txt create mode 100644 test/ReplayData/AuthenticatedUser.testGetEvents.txt create mode 100644 test/ReplayData/AuthenticatedUser.testGetGists.txt create mode 100644 test/ReplayData/AuthenticatedUser.testGetIssues.txt create mode 100644 test/ReplayData/AuthenticatedUser.testGetKeys.txt create mode 100644 test/ReplayData/AuthenticatedUser.testGetOrganizationEvents.txt create mode 100644 test/ReplayData/AuthenticatedUser.testGetOrgs.txt create mode 100644 test/ReplayData/AuthenticatedUser.testGetRepos.txt create mode 100644 test/ReplayData/AuthenticatedUser.testGetStarredGists.txt create mode 100644 test/ReplayData/IssueEvent.setUp.txt create mode 100644 test/ReplayData/IssueEvent.testAttributes.txt create mode 100644 test/ReplayData/Organization.testEditWithAllArguments.txt create mode 100644 test/ReplayData/Repository.testCreateKey.txt create mode 100644 test/ReplayData/RepositoryKey.setUp.txt create mode 100644 test/ReplayData/UserKey.setUp.txt create mode 100644 test/ReplayData/UserKey.testDelete.txt create mode 100644 test/ReplayData/UserKey.testEditWithAllArguments.txt create mode 100644 test/ReplayData/UserKey.testEditWithoutArguments.txt create mode 100644 test/RepositoryKey.py create mode 100644 test/UserKey.py diff --git a/codegen/JsonDescriptionOfGithubApiV3/description.000.human_readable.json b/codegen/JsonDescriptionOfGithubApiV3/description.000.human_readable.json index 167535c0..56aa19c9 100644 --- a/codegen/JsonDescriptionOfGithubApiV3/description.000.human_readable.json +++ b/codegen/JsonDescriptionOfGithubApiV3/description.000.human_readable.json @@ -383,16 +383,12 @@ { "name": "Event", "attributes": [ - { "name": "commit_id", "type": "@todo" }, + { "name": "actor", "type": "NamedUser" }, { "name": "created_at", "type": "@todo" }, - { "name": "event", "type": "@todo" }, { "name": "id", "type": "@todo" }, - { "name": "issue", "type": "@todo" }, { "name": "payload", "type": "@todo" }, { "name": "public", "type": "@todo" }, { "name": "type", "type": "@todo" }, - { "name": "url", "type": "@todo" }, - { "name": "actor", "type": "NamedUser" }, { "name": "org", "type": "Organization" }, { "name": "repo", "type": "Repository" } ] @@ -679,6 +675,7 @@ { "name": "milestone", "type": "Milestone" }, { "name": "number", "type": "integer" }, { "name": "pull_request", "type": "@todo" }, + { "name": "repository", "type": "Repository" }, { "name": "state", "type": "string" }, { "name": "title", "type": "string" }, { "name": "updated_at", "type": "string" }, @@ -1649,7 +1646,7 @@ "name": "RepositoryKey", "isCompletable": true, "edit": { - "mandatoryParameters": [ + "optionalParameters": [ { "name": "title", "type": "@todo" }, { "name": "key", "type": "@todo" } ] @@ -1659,7 +1656,8 @@ { "name": "id", "type": "@todo" }, { "name": "key", "type": "@todo" }, { "name": "title", "type": "@todo" }, - { "name": "url", "type": "@todo" } + { "name": "url", "type": "@todo" }, + { "name": "verified", "type": "bool" } ] }, { @@ -1726,7 +1724,8 @@ { "name": "id", "type": "@todo" }, { "name": "key", "type": "@todo" }, { "name": "title", "type": "@todo" }, - { "name": "url", "type": "@todo" } + { "name": "url", "type": "@todo" }, + { "name": "verified", "type": "bool" } ] } ] diff --git a/codegen/JsonDescriptionOfGithubApiV3/description.001.normalized.json b/codegen/JsonDescriptionOfGithubApiV3/description.001.normalized.json index 3cf7ab84..e6553ebc 100644 --- a/codegen/JsonDescriptionOfGithubApiV3/description.001.normalized.json +++ b/codegen/JsonDescriptionOfGithubApiV3/description.001.normalized.json @@ -2321,14 +2321,6 @@ }, "name": "actor" }, - { - "type": { - "simple": true, - "cardinality": "scalar", - "name": "@todo" - }, - "name": "commit_id" - }, { "type": { "simple": true, @@ -2337,14 +2329,6 @@ }, "name": "created_at" }, - { - "type": { - "simple": true, - "cardinality": "scalar", - "name": "@todo" - }, - "name": "event" - }, { "type": { "simple": true, @@ -2353,14 +2337,6 @@ }, "name": "id" }, - { - "type": { - "simple": true, - "cardinality": "scalar", - "name": "@todo" - }, - "name": "issue" - }, { "type": { "simple": false, @@ -2400,14 +2376,6 @@ "name": "@todo" }, "name": "type" - }, - { - "type": { - "simple": true, - "cardinality": "scalar", - "name": "@todo" - }, - "name": "url" } ], "isCompletable": false, @@ -3740,6 +3708,14 @@ }, "name": "pull_request" }, + { + "type": { + "simple": false, + "cardinality": "scalar", + "name": "Repository" + }, + "name": "repository" + }, { "type": { "simple": true, @@ -9907,6 +9883,14 @@ "name": "@todo" }, "name": "url" + }, + { + "type": { + "simple": true, + "cardinality": "scalar", + "name": "bool" + }, + "name": "verified" } ], "isCompletable": true, @@ -9917,7 +9901,22 @@ "name": [ "edit" ], - "mandatoryParameters": [ + "mandatoryParameters": [], + "request": { + "url": [ + { + "type": "attribute", + "value": [ + "url" + ] + } + ], + "postParameters": true, + "verb": "PATCH", + "information": "data" + }, + "isMutation": true, + "optionalParameters": [ { "type": { "simple": true, @@ -9935,21 +9934,6 @@ "name": "key" } ], - "request": { - "url": [ - { - "type": "attribute", - "value": [ - "url" - ] - } - ], - "postParameters": true, - "verb": "PATCH", - "information": "data" - }, - "isMutation": true, - "optionalParameters": [], "type": { "simple": true, "cardinality": "scalar", @@ -10557,6 +10541,14 @@ "name": "@todo" }, "name": "url" + }, + { + "type": { + "simple": true, + "cardinality": "scalar", + "name": "bool" + }, + "name": "verified" } ], "isCompletable": true, diff --git a/codegen/templates/GithubObject.py b/codegen/templates/GithubObject.py index bc9da959..fc385119 100644 --- a/codegen/templates/GithubObject.py +++ b/codegen/templates/GithubObject.py @@ -13,7 +13,7 @@ class {{ class.name }}( object ): {% if class.isCompletable %} self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover {% endif %} {% for attribute in class.attributes|dictsort:"name" %} @@ -50,9 +50,9 @@ class {{ class.name }}( object ): {% if class.isCompletable %} def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/doc/ReferenceOfClasses.md b/doc/ReferenceOfClasses.md index e2004ea8..9b4bd78a 100644 --- a/doc/ReferenceOfClasses.md +++ b/doc/ReferenceOfClasses.md @@ -291,17 +291,13 @@ Class `Event` Attributes ---------- * `actor`: `NamedUser` -* `commit_id` * `created_at` -* `event` * `id` -* `issue` * `org`: `Organization` * `payload` * `public` * `repo`: `Repository` * `type` -* `url` Class `Gist` ============ @@ -528,6 +524,7 @@ Attributes * `milestone`: `Milestone` * `number`: integer * `pull_request` +* `repository`: `Repository` * `state`: string * `title`: string * `updated_at`: string @@ -1188,6 +1185,7 @@ Attributes * `key` * `title` * `url` +* `verified`: bool Deletion -------- @@ -1195,7 +1193,7 @@ Deletion Modification ------------ -* `edit( title, key )` +* `edit( [title, key] )` * `title` * `key` @@ -1260,6 +1258,7 @@ Attributes * `key` * `title` * `url` +* `verified`: bool Deletion -------- diff --git a/src/github/AuthenticatedUser.py b/src/github/AuthenticatedUser.py index 72842f5c..78ba3344 100644 --- a/src/github/AuthenticatedUser.py +++ b/src/github/AuthenticatedUser.py @@ -20,7 +20,7 @@ class AuthenticatedUser( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def avatar_url( self ): @@ -551,9 +551,9 @@ class AuthenticatedUser( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/Authorization.py b/src/github/Authorization.py index a7459d0c..4c7caada 100644 --- a/src/github/Authorization.py +++ b/src/github/Authorization.py @@ -11,7 +11,7 @@ class Authorization( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def app( self ): @@ -100,9 +100,9 @@ class Authorization( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/Commit.py b/src/github/Commit.py index a8ab17d6..c0a39fec 100644 --- a/src/github/Commit.py +++ b/src/github/Commit.py @@ -17,7 +17,7 @@ class Commit( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def author( self ): @@ -103,9 +103,9 @@ class Commit( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/CommitComment.py b/src/github/CommitComment.py index 8890ba7c..0a5fab83 100644 --- a/src/github/CommitComment.py +++ b/src/github/CommitComment.py @@ -12,7 +12,7 @@ class CommitComment( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def body( self ): @@ -104,9 +104,9 @@ class CommitComment( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/Download.py b/src/github/Download.py index e8231eaf..bee6975a 100644 --- a/src/github/Download.py +++ b/src/github/Download.py @@ -11,7 +11,7 @@ class Download( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def accesskeyid( self ): @@ -145,9 +145,9 @@ class Download( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/Event.py b/src/github/Event.py index 288dce5b..31c72b46 100644 --- a/src/github/Event.py +++ b/src/github/Event.py @@ -17,26 +17,14 @@ class Event( object ): def actor( self ): return self.__actor - @property - def commit_id( self ): - return self.__commit_id - @property def created_at( self ): return self.__created_at - @property - def event( self ): - return self.__event - @property def id( self ): return self.__id - @property - def issue( self ): - return self.__issue - @property def org( self ): return self.__org @@ -57,42 +45,28 @@ class Event( object ): def type( self ): return self.__type - @property - def url( self ): - return self.__url - def __initAttributes( self ): self.__actor = None - self.__commit_id = None self.__created_at = None - self.__event = None self.__id = None - self.__issue = None self.__org = None self.__payload = None self.__public = None self.__repo = None self.__type = None - self.__url = None def __useAttributes( self, attributes ): # @todo Remove this debug weakness: we shall assume that github will add new attributes for attribute in attributes: - assert attribute in [ "actor", "commit_id", "created_at", "event", "id", "issue", "org", "payload", "public", "repo", "type", "url", ], attribute + assert attribute in [ "actor", "created_at", "id", "org", "payload", "public", "repo", "type", ], attribute # @todo No need to check if attribute is in attributes when attribute is mandatory if "actor" in attributes and attributes[ "actor" ] is not None: assert isinstance( attributes[ "actor" ], dict ) self.__actor = NamedUser.NamedUser( self.__requester, attributes[ "actor" ], completion = LazyCompletion ) - if "commit_id" in attributes and attributes[ "commit_id" ] is not None: - self.__commit_id = attributes[ "commit_id" ] if "created_at" in attributes and attributes[ "created_at" ] is not None: self.__created_at = attributes[ "created_at" ] - if "event" in attributes and attributes[ "event" ] is not None: - self.__event = attributes[ "event" ] if "id" in attributes and attributes[ "id" ] is not None: self.__id = attributes[ "id" ] - if "issue" in attributes and attributes[ "issue" ] is not None: - self.__issue = attributes[ "issue" ] if "org" in attributes and attributes[ "org" ] is not None: assert isinstance( attributes[ "org" ], dict ) self.__org = Organization.Organization( self.__requester, attributes[ "org" ], completion = LazyCompletion ) @@ -105,5 +79,3 @@ class Event( object ): self.__repo = Repository.Repository( self.__requester, attributes[ "repo" ], completion = LazyCompletion ) if "type" in attributes and attributes[ "type" ] is not None: self.__type = attributes[ "type" ] - if "url" in attributes and attributes[ "url" ] is not None: - self.__url = attributes[ "url" ] diff --git a/src/github/Gist.py b/src/github/Gist.py index b0c2cd24..3d5b1e6c 100644 --- a/src/github/Gist.py +++ b/src/github/Gist.py @@ -15,7 +15,7 @@ class Gist( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def comments( self ): @@ -203,9 +203,9 @@ class Gist( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/Issue.py b/src/github/Issue.py index 1d639a60..bdd910e4 100644 --- a/src/github/Issue.py +++ b/src/github/Issue.py @@ -3,10 +3,11 @@ import PaginatedList from GithubObject import * -import IssueComment +import Repository import IssueEvent import NamedUser import Milestone +import IssueComment import Label class Issue( object ): @@ -16,7 +17,7 @@ class Issue( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def assignee( self ): @@ -78,6 +79,11 @@ class Issue( object ): self.__completeIfNeeded( self.__pull_request ) return self.__pull_request + @property + def repository( self ): + self.__completeIfNeeded( self.__repository ) + return self.__repository + @property def state( self ): self.__completeIfNeeded( self.__state ) @@ -225,6 +231,7 @@ class Issue( object ): self.__milestone = None self.__number = None self.__pull_request = None + self.__repository = None self.__state = None self.__title = None self.__updated_at = None @@ -233,9 +240,9 @@ class Issue( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, @@ -248,7 +255,7 @@ class Issue( object ): def __useAttributes( self, attributes ): # @todo Remove this debug weakness: we shall assume that github will add new attributes for attribute in attributes: - assert attribute in [ "assignee", "body", "closed_at", "closed_by", "comments", "created_at", "html_url", "id", "labels", "milestone", "number", "pull_request", "state", "title", "updated_at", "url", "user", ], attribute + assert attribute in [ "assignee", "body", "closed_at", "closed_by", "comments", "created_at", "html_url", "id", "labels", "milestone", "number", "pull_request", "repository", "state", "title", "updated_at", "url", "user", ], attribute # @todo No need to check if attribute is in attributes when attribute is mandatory if "assignee" in attributes and attributes[ "assignee" ] is not None: assert isinstance( attributes[ "assignee" ], dict ) @@ -288,6 +295,9 @@ class Issue( object ): self.__number = attributes[ "number" ] if "pull_request" in attributes and attributes[ "pull_request" ] is not None: self.__pull_request = attributes[ "pull_request" ] + if "repository" in attributes and attributes[ "repository" ] is not None: + assert isinstance( attributes[ "repository" ], dict ) + self.__repository = Repository.Repository( self.__requester, attributes[ "repository" ], completion = LazyCompletion ) if "state" in attributes and attributes[ "state" ] is not None: assert isinstance( attributes[ "state" ], ( str, unicode ) ) self.__state = attributes[ "state" ] diff --git a/src/github/IssueEvent.py b/src/github/IssueEvent.py index dd541744..ef738b2c 100644 --- a/src/github/IssueEvent.py +++ b/src/github/IssueEvent.py @@ -13,7 +13,7 @@ class IssueEvent( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def actor( self ): @@ -61,9 +61,9 @@ class IssueEvent( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/NamedUser.py b/src/github/NamedUser.py index 1b7ac5df..9a8c687e 100644 --- a/src/github/NamedUser.py +++ b/src/github/NamedUser.py @@ -17,7 +17,7 @@ class NamedUser( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def avatar_url( self ): @@ -348,9 +348,9 @@ class NamedUser( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/Organization.py b/src/github/Organization.py index d530d9bf..a0bdefe6 100644 --- a/src/github/Organization.py +++ b/src/github/Organization.py @@ -16,7 +16,7 @@ class Organization( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def avatar_url( self ): @@ -364,9 +364,9 @@ class Organization( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/PullRequest.py b/src/github/PullRequest.py index 69a4fb64..735a8bdc 100644 --- a/src/github/PullRequest.py +++ b/src/github/PullRequest.py @@ -15,7 +15,7 @@ class PullRequest( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def additions( self ): @@ -262,9 +262,9 @@ class PullRequest( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/PullRequestComment.py b/src/github/PullRequestComment.py index 932c878c..0552de02 100644 --- a/src/github/PullRequestComment.py +++ b/src/github/PullRequestComment.py @@ -12,7 +12,7 @@ class PullRequestComment( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def body( self ): @@ -104,9 +104,9 @@ class PullRequestComment( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/Repository.py b/src/github/Repository.py index 00ab36b6..ec94af15 100644 --- a/src/github/Repository.py +++ b/src/github/Repository.py @@ -36,7 +36,7 @@ class Repository( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def clone_url( self ): @@ -888,9 +888,9 @@ class Repository( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/RepositoryKey.py b/src/github/RepositoryKey.py index f0d8f266..fdaf8133 100644 --- a/src/github/RepositoryKey.py +++ b/src/github/RepositoryKey.py @@ -11,7 +11,7 @@ class RepositoryKey( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def id( self ): @@ -33,6 +33,11 @@ class RepositoryKey( object ): self.__completeIfNeeded( self.__url ) return self.__url + @property + def verified( self ): + self.__completeIfNeeded( self.__verified ) + return self.__verified + def delete( self ): status, headers, data = self.__requester.request( "DELETE", @@ -41,11 +46,13 @@ class RepositoryKey( object ): None ) - def edit( self, title, key ): + def edit( self, title = DefaultValueForOptionalParameters, key = DefaultValueForOptionalParameters ): post_parameters = { - "title": title, - "key": key, } + if title is not DefaultValueForOptionalParameters: + post_parameters[ "title" ] = title + if key is not DefaultValueForOptionalParameters: + post_parameters[ "key" ] = key status, headers, data = self.__requester.request( "PATCH", str( self.url ), @@ -59,12 +66,13 @@ class RepositoryKey( object ): self.__key = None self.__title = None self.__url = None + self.__verified = None def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, @@ -77,7 +85,7 @@ class RepositoryKey( object ): def __useAttributes( self, attributes ): # @todo Remove this debug weakness: we shall assume that github will add new attributes for attribute in attributes: - assert attribute in [ "id", "key", "title", "url", ], attribute + assert attribute in [ "id", "key", "title", "url", "verified", ], attribute # @todo No need to check if attribute is in attributes when attribute is mandatory if "id" in attributes and attributes[ "id" ] is not None: self.__id = attributes[ "id" ] @@ -87,3 +95,6 @@ class RepositoryKey( object ): self.__title = attributes[ "title" ] if "url" in attributes and attributes[ "url" ] is not None: self.__url = attributes[ "url" ] + if "verified" in attributes and attributes[ "verified" ] is not None: + assert isinstance( attributes[ "verified" ], bool ) + self.__verified = attributes[ "verified" ] diff --git a/src/github/Team.py b/src/github/Team.py index c1c1689c..b351581f 100644 --- a/src/github/Team.py +++ b/src/github/Team.py @@ -13,7 +13,7 @@ class Team( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def id( self ): @@ -155,9 +155,9 @@ class Team( object ): def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, diff --git a/src/github/UserKey.py b/src/github/UserKey.py index e552b0a7..00c2c2a6 100644 --- a/src/github/UserKey.py +++ b/src/github/UserKey.py @@ -11,7 +11,7 @@ class UserKey( object ): self.__useAttributes( attributes ) self.__completed = completion != LazyCompletion if completion == ImmediateCompletion: - self.__complete() + self.__complete() # pragma: no cover @property def id( self ): @@ -33,6 +33,11 @@ class UserKey( object ): self.__completeIfNeeded( self.__url ) return self.__url + @property + def verified( self ): + self.__completeIfNeeded( self.__verified ) + return self.__verified + def delete( self ): status, headers, data = self.__requester.request( "DELETE", @@ -61,12 +66,13 @@ class UserKey( object ): self.__key = None self.__title = None self.__url = None + self.__verified = None def __completeIfNeeded( self, testedAttribute ): if not self.__completed and testedAttribute is None: - self.__complete() + self.__complete() # pragma: no cover - def __complete( self ): + def __complete( self ): # pragma: no cover status, headers, data = self.__requester.request( "GET", self.__url, @@ -79,7 +85,7 @@ class UserKey( object ): def __useAttributes( self, attributes ): # @todo Remove this debug weakness: we shall assume that github will add new attributes for attribute in attributes: - assert attribute in [ "id", "key", "title", "url", ], attribute + assert attribute in [ "id", "key", "title", "url", "verified", ], attribute # @todo No need to check if attribute is in attributes when attribute is mandatory if "id" in attributes and attributes[ "id" ] is not None: self.__id = attributes[ "id" ] @@ -89,3 +95,6 @@ class UserKey( object ): self.__title = attributes[ "title" ] if "url" in attributes and attributes[ "url" ] is not None: self.__url = attributes[ "url" ] + if "verified" in attributes and attributes[ "verified" ] is not None: + assert isinstance( attributes[ "verified" ], bool ) + self.__verified = attributes[ "verified" ] diff --git a/test/AuthenticatedUser.py b/test/AuthenticatedUser.py index 0a0ddafd..cad9c6bf 100644 --- a/test/AuthenticatedUser.py +++ b/test/AuthenticatedUser.py @@ -39,44 +39,14 @@ class AuthenticatedUser( Framework.TestCase ): self.user.edit() def testEditWithAllArguments( self ): - oldName = self.user.name - newName = "Name edited by PyGithub" - - oldEmail = self.user.email - newEmail = "Email edited by PyGithub" - - oldBlog = self.user.blog - newBlog = "Blog edited by PyGithub" - - oldCompany = self.user.company - newCompany = "Company edited by PyGithub" - - oldLocation = self.user.location - newLocation = "Location edited by PyGithub" - - oldHireable = self.user.hireable - newHireable = not oldHireable - - oldBio = self.user.bio - newBio = "Bio edited by PyGithub" - - self.user.edit( newName, newEmail, newBlog, newCompany, newLocation, newHireable, newBio ) - self.assertEqual( self.user.name, newName ) - self.assertEqual( self.user.email, newEmail ) - self.assertEqual( self.user.blog, newBlog ) - self.assertEqual( self.user.company, newCompany ) - self.assertEqual( self.user.location, newLocation ) - self.assertEqual( self.user.hireable, newHireable ) - self.assertEqual( self.user.bio, newBio ) - - self.user.edit( oldName, oldEmail, oldBlog, oldCompany, oldLocation, oldHireable, oldBio ) - self.assertEqual( self.user.name, oldName ) - self.assertEqual( self.user.email, oldEmail ) - self.assertEqual( self.user.blog, oldBlog ) - self.assertEqual( self.user.company, oldCompany ) - self.assertEqual( self.user.location, oldLocation ) - self.assertEqual( self.user.hireable, oldHireable ) - self.assertEqual( self.user.bio, oldBio ) + self.user.edit( "Name edited by PyGithub", "Email edited by PyGithub", "Blog edited by PyGithub", "Company edited by PyGithub", "Location edited by PyGithub", True, "Bio edited by PyGithub" ) + self.assertEqual( self.user.name, "Name edited by PyGithub" ) + self.assertEqual( self.user.email, "Email edited by PyGithub" ) + self.assertEqual( self.user.blog, "Blog edited by PyGithub" ) + self.assertEqual( self.user.company, "Company edited by PyGithub" ) + self.assertEqual( self.user.location, "Location edited by PyGithub" ) + self.assertEqual( self.user.hireable, True ) + self.assertEqual( self.user.bio, "Bio edited by PyGithub" ) def testEmails( self ): self.assertEqual( self.user.get_emails(), [ "vincent@vincent-jacques.net", "github.com@vincent-jacques.net" ] ) @@ -125,10 +95,42 @@ class AuthenticatedUser( Framework.TestCase ): def testCreateGist( self ): gist = self.user.create_gist( True, { "foobar.txt": { "content": "File created by PyGithub" } }, "Gist created by PyGithub" ) - self.assertEquals( gist.description, "Gist created by PyGithub" ) - self.assertEquals( gist.files, {u'foobar.txt': {u'raw_url': u'https://gist.github.com/raw/2729810/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt', u'language': u'Text', u'filename': u'foobar.txt', u'content': u'File created by PyGithub', u'type': u'text/plain', u'size': 24}} ) ### @todo + self.assertEqual( gist.description, "Gist created by PyGithub" ) + self.assertEqual( gist.files, {u'foobar.txt': {u'raw_url': u'https://gist.github.com/raw/2729810/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt', u'language': u'Text', u'filename': u'foobar.txt', u'content': u'File created by PyGithub', u'type': u'text/plain', u'size': 24}} ) ### @todo def testCreateGistWithoutDescription( self ): gist = self.user.create_gist( True, { "foobar.txt": { "content": "File created by PyGithub" } } ) - self.assertEquals( gist.description, None ) - self.assertEquals( gist.files, {u'foobar.txt': {u'raw_url': u'https://gist.github.com/raw/2793179/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt', u'language': u'Text', u'filename': u'foobar.txt', u'content': u'File created by PyGithub', u'type': u'text/plain', u'size': 24}} ) ### @todo + self.assertEqual( gist.description, None ) + self.assertEqual( gist.files, {u'foobar.txt': {u'raw_url': u'https://gist.github.com/raw/2793179/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt', u'language': u'Text', u'filename': u'foobar.txt', u'content': u'File created by PyGithub', u'type': u'text/plain', u'size': 24}} ) ### @todo + + def testCreateKey( self ): + key = self.user.create_key( "Key added through PyGithub", "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw== vincent@IDEE" ) + self.assertEqual( key.id, 2626650 ) + + def testGetEvents( self ): + self.assertListKeyBegin( self.user.get_events(), lambda e: e.type, [ "PushEvent", "IssuesEvent", "IssueCommentEvent", "PushEvent" ] ) + + def testGetOrganizationEvents( self ): + self.assertListKeyBegin( self.user.get_organization_events( self.g.get_organization( "BeaverSoftware" ) ), lambda e: e.type, [ "CreateEvent", "CreateEvent", "PushEvent", "PushEvent" ] ) + + def testGetGists( self ): + self.assertListKeyEqual( self.user.get_gists(), lambda g: g.id, [ "2793505", "2793179", "11cb445f8197e17d303d", "1942384", "dcb7de17e8a52b74541d" ] ) + + def testGetStarredGists( self ): + self.assertListKeyEqual( self.user.get_starred_gists(), lambda g: g.id, [ "1942384", "dcb7de17e8a52b74541d" ] ) + + def testGetIssues( self ): + self.assertListKeyEqual( self.user.get_issues(), lambda i: i.id, [ 4639931, 4452000, 4356743, 3716033, 3715946, 3643837, 3628022, 3624595, 3624570, 3624561, 3624556, 3619973, 3527266, 3527245, 3527231 ] ) + + def testGetKeys( self ): + self.assertListKeyEqual( self.user.get_keys(), lambda k: k.title, [ "vincent@home", "vincent@gandi", "vincent@aws", "vincent@macbook" ] ) + + def testGetOrgs( self ): + self.assertListKeyEqual( self.user.get_orgs(), lambda o: o.login, [ "BeaverSoftware" ] ) + + def testGetRepos( self ): + self.assertListKeyEqual( self.user.get_repos(), lambda r: r.name, [ "TestPyGithub", "django", "PyGithub", "developer.github.com", "acme-public-website", "C4Planner", "Hacking", "vincent-jacques.net", "Contests", "Candidates", "Tests", "DrawTurksHead", "DrawSyntax", "QuadProgMm", "Boost.HierarchicalEnum", "ViDE" ] ) + + def testCreateFork( self ): + repo = self.user.create_fork( self.g.get_user( "nvie" ).get_repo( "gitflow" ) ) + self.assertEqual( repo.source.full_name, "nvie/gitflow" ) diff --git a/test/Event.py b/test/Event.py index 7e7ca391..8cdf2a65 100644 --- a/test/Event.py +++ b/test/Event.py @@ -7,14 +7,10 @@ class Event( Framework.TestCase ): def testAttributes( self ): self.assertEqual( self.event.actor.login, "jacquev6" ) - self.assertEqual( self.event.commit_id, None ) self.assertEqual( self.event.created_at, "2012-05-26T10:01:39Z" ) - self.assertEqual( self.event.event, None ) self.assertEqual( self.event.id, "1556114751" ) - self.assertEqual( self.event.issue, None ) self.assertEqual( self.event.org, None ) self.assertEqual( self.event.payload, {u'commits': [{u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7', u'sha': u'5bb654d26dd014d36794acd1e6ecf3736f12aad7', u'message': u'Implement the three authentication schemes', u'distinct': False, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5', u'sha': u'cb0313157bf904f2d364377d35d9397b269547a5', u'message': u"Merge branch 'topic/Authentication' into develop", u'distinct': False, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16', u'sha': u'0cec0d25e606c023a62a4fc7cdc815309ebf6d16', u'message': u'Publish version 0.7', u'distinct': False, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7', u'sha': u'ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7', u'message': u"Merge branch 'develop'", u'distinct': False, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/3a3bf4763192ee1234eb0557628133e06f3dfc76', u'sha': u'3a3bf4763192ee1234eb0557628133e06f3dfc76', u'message': u"Merge branch 'master' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\tgithub/Github.py\n\tgithub/Requester.py", u'distinct': True, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/608f17794664f61693a3dc05e6056fea8fbef0ff', u'sha': u'608f17794664f61693a3dc05e6056fea8fbef0ff', u'message': u'Restore some form of Authorization header in replay data', u'distinct': True, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/2c04b8adbd91d38eef4f0767337ab7a12b2f684b', u'sha': u'2c04b8adbd91d38eef4f0767337ab7a12b2f684b', u'message': u'Allow test without pre-set-up Github', u'distinct': True, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/5b97389988b6fe43e15a079702f6f1671257fb28', u'sha': u'5b97389988b6fe43e15a079702f6f1671257fb28', u'message': u'Test three authentication schemes', u'distinct': True, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/12747613c5ec00deccf296b8619ad507f7050475', u'sha': u'12747613c5ec00deccf296b8619ad507f7050475', u'message': u'Test Issue.getComments', u'distinct': True, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/2982fa96c5ca75abe717d974d83f9135d664232e', u'sha': u'2982fa96c5ca75abe717d974d83f9135d664232e', u'message': u'Test the new Repository.full_name attribute', u'distinct': True, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}, {u'url': u'https://api.github.com/repos/jacquev6/PyGithub/commits/619eae8d51c5988f0d2889fc767fa677438ba95d', u'sha': u'619eae8d51c5988f0d2889fc767fa677438ba95d', u'message': u'Improve coverage of AuthenticatedUser', u'distinct': True, u'author': {u'name': u'Vincent Jacques', u'email': u'vincent@vincent-jacques.net'}}], u'head': u'619eae8d51c5988f0d2889fc767fa677438ba95d', u'push_id': 80673538, u'ref': u'refs/heads/topic/RewriteWithGeneratedCode', u'size': 11} ) ### @todo self.assertEqual( self.event.public, True ) self.assertEqual( self.event.repo.name, "jacquev6/PyGithub" ) self.assertEqual( self.event.type, "PushEvent" ) - self.assertEqual( self.event.url, None ) diff --git a/test/Framework.py b/test/Framework.py index 4f0308aa..a0426047 100644 --- a/test/Framework.py +++ b/test/Framework.py @@ -120,12 +120,19 @@ class BasicTestCase( unittest.TestCase ): self.__file.close() def assertListKeyEqual( self, elements, key, expectedKeys ): - for element, expectedKey in itertools.izip_longest( elements, expectedKeys ): - self.assertEqual( key( element ), expectedKey ) + realKeys = [ key( element ) for element in elements ] + self.assertEqual( realKeys, expectedKeys ) def assertListKeyBegin( self, elements, key, expectedKeys ): - for element, expectedKey in itertools.izip( elements, expectedKeys ): - self.assertEqual( key( element ), expectedKey ) + def take( sequence, length ): + taken = list() + for element in elements: + taken.append( element ) + if len( taken ) >= length: + break + return taken + realKeys = [ key( element ) for element in take( elements, len( expectedKeys ) ) ] + self.assertEqual( realKeys, expectedKeys ) class TestCase( BasicTestCase ): def setUp( self ): diff --git a/test/IntegrationTest.py b/test/IntegrationTest.py index 71beb5ac..01c65195 100644 --- a/test/IntegrationTest.py +++ b/test/IntegrationTest.py @@ -3,30 +3,33 @@ import Framework from AuthenticatedUser import * +from Authentication import * +from Authorization import * from Branch import * from Commit import * from CommitComment import * +from Download import * +from Event import * +from Gist import * +from GistComment import * from GitBlob import * from GitCommit import * +from Github import * from GitRef import * from GitTag import * from GitTree import * -from Tag import * -from Repository import * -from Organization import * -from Milestone import * +from Hook import * from Issue import * from IssueComment import * +from IssueEvent import * from Label import * +from Milestone import * from NamedUser import * -from Hook import * -from Gist import * -from GistComment import * -from Authorization import * +from Organization import * from RateLimiting import * -from Download import * -from Authentication import * -from Event import * -from Github import * +from Repository import * +from RepositoryKey import * +from Tag import * +from UserKey import * Framework.main() diff --git a/test/IssueEvent.py b/test/IssueEvent.py new file mode 100644 index 00000000..f1b87cec --- /dev/null +++ b/test/IssueEvent.py @@ -0,0 +1,15 @@ +import Framework + +class IssueEvent( Framework.TestCase ): + def setUp( self ): + Framework.TestCase.setUp( self ) + self.event = self.g.get_user().get_repo( "PyGithub" ).get_issue( 28 ).get_events()[ 0 ] + + def testAttributes( self ): + self.assertEqual( self.event.actor.login, "jacquev6" ) + self.assertEqual( self.event.commit_id, None ) + self.assertEqual( self.event.created_at, "2012-05-19T10:38:23Z" ) + self.assertEqual( self.event.event, "subscribed" ) + self.assertEqual( self.event.id, 15819975 ) + self.assertEqual( self.event.issue.number, 28 ) + self.assertEqual( self.event.url, "https://api.github.com/repos/jacquev6/PyGithub/issues/events/15819975" ) diff --git a/test/Organization.py b/test/Organization.py index c9276c1b..21f7a2bd 100644 --- a/test/Organization.py +++ b/test/Organization.py @@ -37,42 +37,10 @@ class Organization( Framework.TestCase ): self.org.edit() def testEditWithAllArguments( self ): - # oldName = self.org.name - # newName = "Name edited by PyGithub" - - # oldEmail = self.org.email - # newEmail = "Email edited by PyGithub" - - # oldBlog = self.org.blog - # newBlog = "Blog edited by PyGithub" - - # oldCompany = self.org.company - # newCompany = "Company edited by PyGithub" - - # oldLocation = self.org.location - # newLocation = "Location edited by PyGithub" - - # oldHireable = self.org.hireable - # newHireable = not oldHireable - - # oldBio = self.org.bio - # newBio = "Bio edited by PyGithub" - - # self.org.edit( newName, newEmail, newBlog, newCompany, newLocation, newHireable, newBio ) - # self.assertEqual( self.org.name, newName ) - # self.assertEqual( self.org.email, newEmail ) - # self.assertEqual( self.org.blog, newBlog ) - # self.assertEqual( self.org.company, newCompany ) - # self.assertEqual( self.org.location, newLocation ) - # self.assertEqual( self.org.hireable, newHireable ) - # self.assertEqual( self.org.bio, newBio ) - - # self.org.edit( oldName, oldEmail, oldBlog, oldCompany, oldLocation, oldHireable, oldBio ) - # self.assertEqual( self.org.name, oldName ) - # self.assertEqual( self.org.email, oldEmail ) - # self.assertEqual( self.org.blog, oldBlog ) - # self.assertEqual( self.org.company, oldCompany ) - # self.assertEqual( self.org.location, oldLocation ) - # self.assertEqual( self.org.hireable, oldHireable ) - # self.assertEqual( self.org.bio, oldBio ) - pass + self.org.edit( "BeaverSoftware2@vincent-jacques.net", "http://vincent-jacques.net", "Company edited by PyGithub", "BeaverSoftware2@vincent-jacques.net", "Location edited by PyGithub", "Name edited by PyGithub" ) + self.assertEqual( self.org.billing_email, "BeaverSoftware2@vincent-jacques.net" ) + self.assertEqual( self.org.blog, "http://vincent-jacques.net" ) + self.assertEqual( self.org.company, "Company edited by PyGithub" ) + self.assertEqual( self.org.email, "BeaverSoftware2@vincent-jacques.net" ) + self.assertEqual( self.org.location, "Location edited by PyGithub" ) + self.assertEqual( self.org.name, "Name edited by PyGithub" ) diff --git a/test/ReplayData/AuthenticatedUser.testCreateFork.txt b/test/ReplayData/AuthenticatedUser.testCreateFork.txt new file mode 100644 index 00000000..0544d55d --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testCreateFork.txt @@ -0,0 +1,15 @@ +GET /users/nvie {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4960'), ('content-length', '598'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"75740284d989e9a492e32f435cff48ac"'), ('date', 'Sat, 26 May 2012 20:23:33 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"type":"User","public_gists":19,"url":"https://api.github.com/users/nvie","hireable":false,"bio":null,"company":"3rd Cloud","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","login":"nvie","blog":"http://nvie.com","email":"vincent@3rdcloud.com","public_repos":62,"followers":299,"name":"Vincent Driessen","created_at":"2009-05-12T21:19:38Z","location":"Netherlands","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":83844,"following":41,"html_url":"https://github.com/nvie"} + +GET /repos/nvie/gitflow {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4959'), ('content-length', '1182'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b96ea8f5f6ac24b533e2a5dc5ea2479d"'), ('date', 'Sat, 26 May 2012 20:23:34 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","full_name":"nvie/gitflow","has_wiki":true,"has_issues":true,"updated_at":"2012-05-26T19:46:41Z","forks":330,"mirror_url":null,"homepage":"http://nvie.com/posts/a-successful-git-branching-model/","ssh_url":"git@github.com:nvie/gitflow.git","open_issues":92,"fork":false,"svn_url":"https://github.com/nvie/gitflow","pushed_at":"2012-02-14T13:11:04Z","size":4602,"html_url":"https://github.com/nvie/gitflow","private":false,"url":"https://api.github.com/repos/nvie/gitflow","clone_url":"https://github.com/nvie/gitflow.git","owner":{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/nvie","login":"nvie","id":83844},"name":"gitflow","has_downloads":true,"language":"Shell","watchers":3973,"git_url":"git://github.com/nvie/gitflow.git","id":481366,"permissions":{"admin":false,"pull":true,"push":false},"master_branch":"develop","created_at":"2010-01-20T23:14:12Z"} + +POST /repos/nvie/gitflow/forks {'Authorization': 'Basic login_and_password_removed'} null +202 +[('status', '202 Accepted'), ('x-ratelimit-remaining', '4958'), ('content-length', '3486'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"92f5b171559bccda47d7ebb598ba4f73"'), ('date', 'Sat, 26 May 2012 20:23:35 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"parent":{"clone_url":"https://github.com/nvie/gitflow.git","has_downloads":true,"watchers":3973,"updated_at":"2012-05-26T20:23:35Z","master_branch":"develop","homepage":"http://nvie.com/posts/a-successful-git-branching-model/","url":"https://api.github.com/repos/nvie/gitflow","has_wiki":true,"has_issues":true,"fork":false,"forks":331,"size":4602,"private":false,"open_issues":92,"svn_url":"https://github.com/nvie/gitflow","owner":{"url":"https://api.github.com/users/nvie","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","login":"nvie","id":83844},"name":"gitflow","language":"Shell","description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","ssh_url":"git@github.com:nvie/gitflow.git","git_url":"git://github.com/nvie/gitflow.git","pushed_at":"2012-02-14T13:11:04Z","created_at":"2010-01-20T23:14:12Z","id":481366,"mirror_url":null,"html_url":"https://github.com/nvie/gitflow","full_name":"nvie/gitflow"},"clone_url":"https://github.com/jacquev6/gitflow.git","has_downloads":true,"watchers":1,"updated_at":"2012-05-26T20:23:35Z","source":{"clone_url":"https://github.com/nvie/gitflow.git","has_downloads":true,"watchers":3973,"updated_at":"2012-05-26T20:23:35Z","master_branch":"develop","homepage":"http://nvie.com/posts/a-successful-git-branching-model/","url":"https://api.github.com/repos/nvie/gitflow","has_wiki":true,"has_issues":true,"fork":false,"forks":331,"size":4602,"private":false,"open_issues":92,"svn_url":"https://github.com/nvie/gitflow","owner":{"url":"https://api.github.com/users/nvie","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","login":"nvie","id":83844},"name":"gitflow","language":"Shell","description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","ssh_url":"git@github.com:nvie/gitflow.git","git_url":"git://github.com/nvie/gitflow.git","pushed_at":"2012-02-14T13:11:04Z","created_at":"2010-01-20T23:14:12Z","id":481366,"mirror_url":null,"html_url":"https://github.com/nvie/gitflow","full_name":"nvie/gitflow"},"permissions":{"pull":true,"admin":true,"push":true},"master_branch":"develop","homepage":"http://nvie.com/posts/a-successful-git-branching-model/","url":"https://api.github.com/repos/jacquev6/gitflow","has_wiki":true,"has_issues":false,"fork":true,"forks":0,"size":4602,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/gitflow","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"gitflow","language":"Shell","description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","ssh_url":"git@github.com:jacquev6/gitflow.git","git_url":"git://github.com/jacquev6/gitflow.git","pushed_at":"2012-02-14T13:11:04Z","created_at":"2012-05-26T20:23:35Z","id":4457584,"mirror_url":null,"html_url":"https://github.com/jacquev6/gitflow","full_name":"jacquev6/gitflow"} + diff --git a/test/ReplayData/AuthenticatedUser.testCreateKey.txt b/test/ReplayData/AuthenticatedUser.testCreateKey.txt new file mode 100644 index 00000000..fc84bac8 --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testCreateKey.txt @@ -0,0 +1,5 @@ +POST /user/keys {'Authorization': 'Basic login_and_password_removed'} {"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw== vincent@IDEE", "title": "Key added through PyGithub"} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4984'), ('content-length', '505'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7261ec55c886d6bf42e48d5bf9544586"'), ('date', 'Sat, 26 May 2012 19:49:30 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/user/keys/2626650')] +{"url":"https://api.github.com/user/keys/2626650","key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==","verified":true,"title":"Key added through PyGithub","id":2626650} + diff --git a/test/ReplayData/AuthenticatedUser.testEditWithAllArguments.txt b/test/ReplayData/AuthenticatedUser.testEditWithAllArguments.txt index f1e3ffd4..f3107975 100644 --- a/test/ReplayData/AuthenticatedUser.testEditWithAllArguments.txt +++ b/test/ReplayData/AuthenticatedUser.testEditWithAllArguments.txt @@ -1,15 +1,4 @@ -GET /user {'Authorization': 'Basic login_and_password_removed'} null -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4999'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"de86c6f4ddb4f540ee7eef9e15823351"'), ('date', 'Tue, 08 May 2012 10:04:55 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"private_gists":5,"type":"User","hireable":false,"following":24,"company":"Criteo","blog":"http://vincent-jacques.net","bio":"","html_url":"https://github.com/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","total_private_repos":5,"public_repos":10,"url":"https://api.github.com/users/jacquev6","owned_private_repos":5,"login":"jacquev6","collaborators":0,"email":"vincent@vincent-jacques.net","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","disk_usage":16692,"plan":{"private_repos":5,"collaborators":1,"space":614400,"name":"micro"},"created_at":"2010-07-09T06:10:06Z","name":"Vincent Jacques","public_gists":1,"followers":13,"id":327146,"location":"Paris, France"} - PATCH /user {'Authorization': 'Basic login_and_password_removed'} {"bio": "Bio edited by PyGithub", "name": "Name edited by PyGithub", "company": "Company edited by PyGithub", "blog": "Blog edited by PyGithub", "location": "Location edited by PyGithub", "hireable": true, "email": "Email edited by PyGithub"} 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('content-length', '858'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"4695e7d2dc3084a322fe83f342448a79"'), ('date', 'Tue, 08 May 2012 10:04:55 GMT'), ('content-type', 'application/json; charset=utf-8')] {"private_gists":5,"type":"User","hireable":true,"following":24,"company":"Company edited by PyGithub","blog":"Blog edited by PyGithub","bio":"Bio edited by PyGithub","html_url":"https://github.com/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","total_private_repos":5,"public_repos":10,"url":"https://api.github.com/users/jacquev6","owned_private_repos":5,"login":"jacquev6","collaborators":0,"email":"Email edited by PyGithub","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","disk_usage":16692,"plan":{"private_repos":5,"collaborators":1,"space":614400,"name":"micro"},"created_at":"2010-07-09T06:10:06Z","name":"Name edited by PyGithub","public_gists":1,"followers":13,"id":327146,"location":"Location edited by PyGithub"} - -PATCH /user {'Authorization': 'Basic login_and_password_removed'} {"bio": "", "name": "Vincent Jacques", "company": "Criteo", "blog": "http://vincent-jacques.net", "location": "Paris, France", "hireable": false, "email": "vincent@vincent-jacques.net"} -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"24e5c5dc98abb7a960c2e3e24791403d"'), ('date', 'Tue, 08 May 2012 10:04:56 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"public_gists":1,"type":"User","blog":"http://vincent-jacques.net","url":"https://api.github.com/users/jacquev6","public_repos":10,"followers":13,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","private_gists":5,"disk_usage":16692,"plan":{"private_repos":5,"space":614400,"name":"micro","collaborators":1},"html_url":"https://github.com/jacquev6","hireable":false,"login":"jacquev6","email":"vincent@vincent-jacques.net","bio":"","created_at":"2010-07-09T06:10:06Z","company":"Criteo","location":"Paris, France","total_private_repos":5,"following":24,"name":"Vincent Jacques","collaborators":0,"id":327146,"owned_private_repos":5} - diff --git a/test/ReplayData/AuthenticatedUser.testGetEvents.txt b/test/ReplayData/AuthenticatedUser.testGetEvents.txt new file mode 100644 index 00000000..8ba00b64 --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testGetEvents.txt @@ -0,0 +1,5 @@ +GET /events {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '57490'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"9260400c8db419d7375cf37a6a89b38e"'), ('date', 'Sat, 26 May 2012 20:10:48 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"type":"PushEvent","payload":{"head":"45dd4d971758b54af0b4138aa54b2a7266a66719","size":2,"push_id":80706714,"commits":[{"sha":"471b65cb6e5b4b57cca494d81a19a7cfecb9dcd7","author":{"name":"Chide","email":"c.groenouwe@ati-a.nl"},"url":"https://api.github.com/repos/swiftgame/SWiFT-fososc/commits/471b65cb6e5b4b57cca494d81a19a7cfecb9dcd7","distinct":true,"message":"added large part of current source code base of SWiFT fososc. More to come!"},{"sha":"45dd4d971758b54af0b4138aa54b2a7266a66719","author":{"name":"Chide","email":"c.groenouwe@ati-a.nl"},"url":"https://api.github.com/repos/swiftgame/SWiFT-fososc/commits/45dd4d971758b54af0b4138aa54b2a7266a66719","distinct":true,"message":"continued..."}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/swiftgame/SWiFT-fososc","id":2935425,"name":"swiftgame/SWiFT-fososc"},"created_at":"2012-05-26T20:10:46Z","id":"1556178218","actor":{"gravatar_id":"5866525f1e1a06544aaff0fa4f4f083a","url":"https://api.github.com/users/swiftgame","avatar_url":"https://secure.gravatar.com/avatar/5866525f1e1a06544aaff0fa4f4f083a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1248161,"login":"swiftgame"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":1,"created_at":"2012-05-23T18:10:30Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"* text\n\n(for now, just keep test passages short!)","title":"passages model","comments":1,"updated_at":"2012-05-26T20:10:46Z","url":"https://api.github.com/repos/unobliged/plymlet/issues/1","id":4717430,"assignee":{"gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/unobliged","id":1250266,"login":"unobliged"},"milestone":{"number":1,"due_on":null,"created_at":"2012-05-25T23:02:34Z","title":"Iteration 1","creator":{"gravatar_id":"3ba9e4f33f3277e20ee649efcf379ab9","avatar_url":"https://secure.gravatar.com/avatar/3ba9e4f33f3277e20ee649efcf379ab9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/dpaola2","id":150509,"login":"dpaola2"},"url":"https://api.github.com/repos/unobliged/plymlet/milestones/1","id":124261,"open_issues":3,"closed_issues":2,"description":"","state":"open"},"closed_at":"2012-05-26T20:10:46Z","user":{"gravatar_id":"3ba9e4f33f3277e20ee649efcf379ab9","avatar_url":"https://secure.gravatar.com/avatar/3ba9e4f33f3277e20ee649efcf379ab9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/dpaola2","id":150509,"login":"dpaola2"},"html_url":"https://github.com/unobliged/plymlet/issues/1","labels":[],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/unobliged/plymlet","id":4423508,"name":"unobliged/plymlet"},"created_at":"2012-05-26T20:10:46Z","id":"1556178217","actor":{"gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","url":"https://api.github.com/users/unobliged","avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1250266,"login":"unobliged"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-26T20:10:46Z","body":"text has title, author, language, and content","updated_at":"2012-05-26T20:10:46Z","url":"https://api.github.com/repos/unobliged/plymlet/issues/comments/5949286","id":5949286,"user":{"avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","url":"https://api.github.com/users/unobliged","id":1250266,"login":"unobliged"}},"action":"created","issue":{"number":1,"created_at":"2012-05-23T18:10:30Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"title":"passages model","body":"* text\n\n(for now, just keep test passages short!)","comments":1,"updated_at":"2012-05-26T20:10:46Z","url":"https://api.github.com/repos/unobliged/plymlet/issues/1","id":4717430,"assignee":{"avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","url":"https://api.github.com/users/unobliged","id":1250266,"login":"unobliged"},"milestone":{"number":1,"due_on":null,"created_at":"2012-05-25T23:02:34Z","title":"Iteration 1","creator":{"avatar_url":"https://secure.gravatar.com/avatar/3ba9e4f33f3277e20ee649efcf379ab9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3ba9e4f33f3277e20ee649efcf379ab9","url":"https://api.github.com/users/dpaola2","id":150509,"login":"dpaola2"},"url":"https://api.github.com/repos/unobliged/plymlet/milestones/1","id":124261,"open_issues":3,"closed_issues":2,"description":"","state":"open"},"closed_at":"2012-05-26T20:10:46Z","user":{"avatar_url":"https://secure.gravatar.com/avatar/3ba9e4f33f3277e20ee649efcf379ab9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3ba9e4f33f3277e20ee649efcf379ab9","url":"https://api.github.com/users/dpaola2","id":150509,"login":"dpaola2"},"html_url":"https://github.com/unobliged/plymlet/issues/1","labels":[],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/unobliged/plymlet","id":4423508,"name":"unobliged/plymlet"},"created_at":"2012-05-26T20:10:46Z","id":"1556178216","actor":{"gravatar_id":"8dd3d820658d79bb8cec3afe94c986d5","url":"https://api.github.com/users/unobliged","avatar_url":"https://secure.gravatar.com/avatar/8dd3d820658d79bb8cec3afe94c986d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1250266,"login":"unobliged"}},{"type":"PushEvent","payload":{"head":"be261259304b3f6361a546ef5ae1809d446216fa","size":1,"push_id":80706711,"commits":[{"sha":"be261259304b3f6361a546ef5ae1809d446216fa","author":{"name":"Ben Hundley","email":"ben.hundley@gmail.com"},"url":"https://api.github.com/repos/FestivalBobcats/newton.js/commits/be261259304b3f6361a546ef5ae1809d446216fa","distinct":true,"message":"having the camera follow the systems center of mass to maintain focus"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/FestivalBobcats/newton.js","id":4421856,"name":"FestivalBobcats/newton.js"},"created_at":"2012-05-26T20:10:45Z","id":"1556178213","actor":{"gravatar_id":"eb3fba221d6fb7f3298b132efae536e4","url":"https://api.github.com/users/FestivalBobcats","avatar_url":"https://secure.gravatar.com/avatar/eb3fba221d6fb7f3298b132efae536e4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":251029,"login":"FestivalBobcats"}},{"type":"PushEvent","payload":{"head":"bbbf9af215b683afefb3eaa2421c8d71bb02f70f","size":1,"push_id":80706710,"commits":[{"sha":"bbbf9af215b683afefb3eaa2421c8d71bb02f70f","author":{"name":"Bradley","email":"brmirly@gmail.com"},"url":"https://api.github.com/repos/brmirly/book-collector/commits/bbbf9af215b683afefb3eaa2421c8d71bb02f70f","distinct":true,"message":"Removing assets in public folder."}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/brmirly/book-collector","id":4455613,"name":"brmirly/book-collector"},"created_at":"2012-05-26T20:10:44Z","id":"1556178212","actor":{"gravatar_id":"7b2c3a273813afd3d0d1b80b08e84956","url":"https://api.github.com/users/brmirly","avatar_url":"https://secure.gravatar.com/avatar/7b2c3a273813afd3d0d1b80b08e84956?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":298873,"login":"brmirly"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/bitlove/objectify","id":4276638,"name":"bitlove/objectify"},"org":{"gravatar_id":"031eaa7ede474c82f6d623881d10f431","url":"https://api.github.com/orgs/bitlove","avatar_url":"https://secure.gravatar.com/avatar/031eaa7ede474c82f6d623881d10f431?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":32503,"login":"bitlove"},"created_at":"2012-05-26T20:10:43Z","id":"1556178211","actor":{"gravatar_id":"2354283d377abff092ede49fc560a4cc","url":"https://api.github.com/users/Applicat","avatar_url":"https://secure.gravatar.com/avatar/2354283d377abff092ede49fc560a4cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":77121,"login":"Applicat"}},{"type":"PushEvent","payload":{"head":"88679ce53b08ee13c9e20c7bc3d901495faf3519","size":1,"push_id":80706708,"ref":"refs/heads/master","commits":[{"sha":"88679ce53b08ee13c9e20c7bc3d901495faf3519","author":{"name":"Patrick Lioi","email":"patrick.lioi@gmail.com"},"url":"https://api.github.com/repos/plioi/rook/commits/88679ce53b08ee13c9e20c7bc3d901495faf3519","distinct":true,"message":"CompilerResult and InterpreterResult gain Language property. When interactive console outputs C# errors, they are flagged as C# errors."}]},"public":true,"repo":{"url":"https://api.github.com/repos/plioi/rook","id":1534527,"name":"plioi/rook"},"created_at":"2012-05-26T20:10:40Z","id":"1556178208","actor":{"gravatar_id":"8370120c77b6a1adcdc4458c7f4052be","url":"https://api.github.com/users/plioi","avatar_url":"https://secure.gravatar.com/avatar/8370120c77b6a1adcdc4458c7f4052be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":652745,"login":"plioi"}},{"type":"PushEvent","payload":{"head":"2f4373049a3f7702a9162c3a6b6d182083705bb4","size":1,"push_id":80706707,"commits":[{"sha":"2f4373049a3f7702a9162c3a6b6d182083705bb4","author":{"name":"Justin Forest","email":"justin.forest@gmail.com"},"url":"https://api.github.com/repos/tmradio/tmradio-website/commits/2f4373049a3f7702a9162c3a6b6d182083705bb4","distinct":true,"message":"Обновление карты концертов"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/tmradio/tmradio-website","id":1482040,"name":"tmradio/tmradio-website"},"org":{"gravatar_id":"652b36ee907f6f69ae6a8b72844c7951","url":"https://api.github.com/orgs/tmradio","avatar_url":"https://secure.gravatar.com/avatar/652b36ee907f6f69ae6a8b72844c7951?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":657556,"login":"tmradio"},"created_at":"2012-05-26T20:10:39Z","id":"1556178207","actor":{"gravatar_id":"b52062261a2135048e238fb4b7c4daf1","url":"https://api.github.com/users/umonkey","avatar_url":"https://secure.gravatar.com/avatar/b52062261a2135048e238fb4b7c4daf1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":16797,"login":"umonkey"}},{"type":"PushEvent","payload":{"head":"31658a5448e3b36705f4ff5977cd8d50c9ab9517","size":1,"push_id":80706705,"commits":[{"sha":"31658a5448e3b36705f4ff5977cd8d50c9ab9517","author":{"name":"Jorge Azevedo","email":"jorge.amado.azevedo@gmail.com"},"url":"https://api.github.com/repos/jorgeazevedo/xenomai-lab/commits/31658a5448e3b36705f4ff5977cd8d50c9ab9517","distinct":true,"message":"Changed source code MD syntax"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/jorgeazevedo/xenomai-lab","id":4456995,"name":"jorgeazevedo/xenomai-lab"},"created_at":"2012-05-26T20:10:38Z","id":"1556178205","actor":{"gravatar_id":"b7c9861bce375e9621554712ec95a9ea","url":"https://api.github.com/users/jorgeazevedo","avatar_url":"https://secure.gravatar.com/avatar/b7c9861bce375e9621554712ec95a9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1672034,"login":"jorgeazevedo"}},{"type":"PullRequestEvent","payload":{"number":8,"pull_request":{"head":{"label":"vlad-ghita:integration","repo":{"name":"field_metakeys","size":116,"has_wiki":true,"created_at":"2012-05-26T20:04:21Z","clone_url":"https://github.com/vlad-ghita/field_metakeys.git","private":false,"watchers":1,"updated_at":"2012-05-26T20:08:29Z","git_url":"git://github.com/vlad-ghita/field_metakeys.git","url":"https://api.github.com/repos/vlad-ghita/field_metakeys","ssh_url":"git@github.com:vlad-ghita/field_metakeys.git","fork":true,"language":"PHP","pushed_at":"2012-05-26T20:08:29Z","id":4457461,"svn_url":"https://github.com/vlad-ghita/field_metakeys","mirror_url":null,"has_downloads":true,"open_issues":0,"has_issues":false,"homepage":"","full_name":"vlad-ghita/field_metakeys","description":"A Meta Keys field allows you to add arbitrary pieces of information to entries identified by a user generated key","forks":0,"html_url":"https://github.com/vlad-ghita/field_metakeys","owner":{"avatar_url":"https://secure.gravatar.com/avatar/9b43cf8fce4ff1fe56cb86f0f6bf7839?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"9b43cf8fce4ff1fe56cb86f0f6bf7839","url":"https://api.github.com/users/vlad-ghita","id":422623,"login":"vlad-ghita"}},"sha":"ef75a939b37fb152b8eb845c94a0db7cf7d872a5","ref":"integration","user":{"avatar_url":"https://secure.gravatar.com/avatar/9b43cf8fce4ff1fe56cb86f0f6bf7839?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"9b43cf8fce4ff1fe56cb86f0f6bf7839","url":"https://api.github.com/users/vlad-ghita","id":422623,"login":"vlad-ghita"}},"issue_url":"https://github.com/brendo/field_metakeys/issues/8","number":8,"merged_by":null,"changed_files":1,"merged":false,"created_at":"2012-05-26T20:10:37Z","body":"Great extension :) I just made the multilingual version of this.\n\nI noticed it doesn't persist values in case of error in the form. This patch fixes it.\n\nRegards,\nVlad","comments":0,"title":"Retain post values in case of error","diff_url":"https://github.com/brendo/field_metakeys/pull/8.diff","updated_at":"2012-05-26T20:10:37Z","additions":4,"_links":{"html":{"href":"https://github.com/brendo/field_metakeys/pull/8"},"self":{"href":"https://api.github.com/repos/brendo/field_metakeys/pulls/8"},"comments":{"href":"https://api.github.com/repos/brendo/field_metakeys/issues/8/comments"},"issue":{"href":"https://api.github.com/repos/brendo/field_metakeys/issues/8"},"review_comments":{"href":"https://api.github.com/repos/brendo/field_metakeys/pulls/8/comments"}},"url":"https://api.github.com/repos/brendo/field_metakeys/pulls/8","id":1435459,"patch_url":"https://github.com/brendo/field_metakeys/pull/8.patch","mergeable":null,"closed_at":null,"commits":1,"merged_at":null,"user":{"avatar_url":"https://secure.gravatar.com/avatar/9b43cf8fce4ff1fe56cb86f0f6bf7839?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"9b43cf8fce4ff1fe56cb86f0f6bf7839","url":"https://api.github.com/users/vlad-ghita","id":422623,"login":"vlad-ghita"},"review_comments":0,"html_url":"https://github.com/brendo/field_metakeys/pull/8","deletions":2,"base":{"label":"brendo:integration","repo":{"name":"field_metakeys","size":744,"has_wiki":true,"created_at":"2010-10-04T07:06:12Z","clone_url":"https://github.com/brendo/field_metakeys.git","private":false,"watchers":11,"updated_at":"2012-05-26T20:04:21Z","git_url":"git://github.com/brendo/field_metakeys.git","url":"https://api.github.com/repos/brendo/field_metakeys","ssh_url":"git@github.com:brendo/field_metakeys.git","fork":false,"language":"PHP","pushed_at":"2012-04-28T06:44:21Z","id":959860,"svn_url":"https://github.com/brendo/field_metakeys","mirror_url":null,"has_downloads":true,"open_issues":1,"has_issues":true,"homepage":"","full_name":"brendo/field_metakeys","description":"A Meta Keys field allows you to add arbitrary pieces of information to entries identified by a user generated key","forks":3,"html_url":"https://github.com/brendo/field_metakeys","owner":{"avatar_url":"https://secure.gravatar.com/avatar/6be8e584a0f454ac2dc7600bdeaca7b7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6be8e584a0f454ac2dc7600bdeaca7b7","url":"https://api.github.com/users/brendo","id":69268,"login":"brendo"}},"sha":"799a54a913f676b62522515ea0dd3af8f3e0f23a","ref":"integration","user":{"avatar_url":"https://secure.gravatar.com/avatar/6be8e584a0f454ac2dc7600bdeaca7b7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6be8e584a0f454ac2dc7600bdeaca7b7","url":"https://api.github.com/users/brendo","id":69268,"login":"brendo"}},"state":"open"},"action":"opened"},"public":true,"repo":{"url":"https://api.github.com/repos/brendo/field_metakeys","id":959860,"name":"brendo/field_metakeys"},"created_at":"2012-05-26T20:10:38Z","id":"1556178203","actor":{"gravatar_id":"9b43cf8fce4ff1fe56cb86f0f6bf7839","url":"https://api.github.com/users/vlad-ghita","avatar_url":"https://secure.gravatar.com/avatar/9b43cf8fce4ff1fe56cb86f0f6bf7839?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":422623,"login":"vlad-ghita"}},{"type":"PushEvent","payload":{"head":"1a9d9e3f6ea16e1fd9da63ba62968e9710426ac9","size":6,"push_id":80706703,"commits":[{"sha":"e2a8dfdc3320ed5394c072f3c2483efe85586103","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/e2a8dfdc3320ed5394c072f3c2483efe85586103","distinct":true,"message":"upgraded openssl to 1.0.1c"},{"sha":"e81dcf515742cb0772784ed942dd33f2654b526a","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/e81dcf515742cb0772784ed942dd33f2654b526a","distinct":true,"message":"upgrading git to 1.7.10.1"},{"sha":"2723c6dc0f3bdabc2bfea24be603561667b649a8","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/2723c6dc0f3bdabc2bfea24be603561667b649a8","distinct":true,"message":"upgrading curl to 7.26.0"},{"sha":"8d5f7e60235c41683c8ff6222efc9a92a83ea901","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/8d5f7e60235c41683c8ff6222efc9a92a83ea901","distinct":true,"message":"upgrade sqlite to 3071201"},{"sha":"3df38eaf44fc222b40db3732d055c31a7d740c83","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/3df38eaf44fc222b40db3732d055c31a7d740c83","distinct":true,"message":"upgraded subversion to 1.7.5"},{"sha":"1a9d9e3f6ea16e1fd9da63ba62968e9710426ac9","author":{"name":"Alex White","email":"VVu@geekfarm.org"},"url":"https://api.github.com/repos/wu/npkgs/commits/1a9d9e3f6ea16e1fd9da63ba62968e9710426ac9","distinct":true,"message":"upgrade nagios to 3.4.1"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/wu/npkgs","id":129627,"name":"wu/npkgs"},"created_at":"2012-05-26T20:10:37Z","id":"1556178202","actor":{"gravatar_id":"c57483c5cfe159b98a6e33ee7e9eec38","url":"https://api.github.com/users/wu","avatar_url":"https://secure.gravatar.com/avatar/c57483c5cfe159b98a6e33ee7e9eec38?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":52700,"login":"wu"}},{"type":"PullRequestEvent","payload":{"number":29,"pull_request":{"head":{"label":"pahko:patch-1","repo":{"name":"escape-lounge","size":108,"has_wiki":true,"created_at":"2012-05-26T20:09:41Z","clone_url":"https://github.com/pahko/escape-lounge.git","watchers":1,"private":false,"updated_at":"2012-05-26T20:10:21Z","fork":true,"language":"JavaScript","url":"https://api.github.com/repos/pahko/escape-lounge","git_url":"git://github.com/pahko/escape-lounge.git","ssh_url":"git@github.com:pahko/escape-lounge.git","id":4457492,"svn_url":"https://github.com/pahko/escape-lounge","pushed_at":"2012-05-26T20:10:20Z","has_downloads":true,"mirror_url":null,"open_issues":0,"full_name":"pahko/escape-lounge","has_issues":false,"homepage":null,"description":"Page like getawaylounge.com.au","forks":0,"html_url":"https://github.com/pahko/escape-lounge","owner":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"sha":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","ref":"patch-1","user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"number":29,"issue_url":"https://github.com/orozcogera/escape-lounge/issues/29","merged_by":null,"created_at":"2012-05-26T20:10:29Z","changed_files":1,"merged":false,"title":"Update README.md","body":"","comments":0,"diff_url":"https://github.com/orozcogera/escape-lounge/pull/29.diff","updated_at":"2012-05-26T20:10:35Z","additions":2,"url":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29","_links":{"html":{"href":"https://github.com/orozcogera/escape-lounge/pull/29"},"self":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29"},"comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29/comments"},"issue":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29"},"review_comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29/comments"}},"id":1435458,"patch_url":"https://github.com/orozcogera/escape-lounge/pull/29.patch","mergeable":null,"merged_at":null,"commits":1,"closed_at":null,"user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"},"review_comments":0,"deletions":3,"html_url":"https://github.com/orozcogera/escape-lounge/pull/29","state":"open","base":{"label":"orozcogera:master","repo":{"name":"escape-lounge","size":11504,"has_wiki":true,"created_at":"2012-05-16T15:33:54Z","clone_url":"https://github.com/orozcogera/escape-lounge.git","watchers":2,"private":false,"updated_at":"2012-05-26T20:09:41Z","fork":false,"language":"JavaScript","url":"https://api.github.com/repos/orozcogera/escape-lounge","git_url":"git://github.com/orozcogera/escape-lounge.git","ssh_url":"git@github.com:orozcogera/escape-lounge.git","id":4348574,"svn_url":"https://github.com/orozcogera/escape-lounge","pushed_at":"2012-05-25T04:15:07Z","has_downloads":true,"mirror_url":null,"open_issues":6,"full_name":"orozcogera/escape-lounge","has_issues":true,"homepage":null,"description":"Page like getawaylounge.com.au","forks":2,"html_url":"https://github.com/orozcogera/escape-lounge","owner":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}},"sha":"c74beb5b64464d892fe1168c4bba4a8260594be2","ref":"master","user":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}}},"action":"reopened"},"public":true,"repo":{"url":"https://api.github.com/repos/orozcogera/escape-lounge","id":4348574,"name":"orozcogera/escape-lounge"},"created_at":"2012-05-26T20:10:36Z","id":"1556178201","actor":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","url":"https://api.github.com/users/pahko","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":572114,"login":"pahko"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":6,"created_at":"2012-05-26T20:10:35Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"It sound awful.","comments":0,"title":"Replace Grenade sound.","updated_at":"2012-05-26T20:10:35Z","url":"https://api.github.com/repos/stefan-feltmann/WOUCSAndroidProject/issues/6","id":4767845,"assignee":{"gravatar_id":"1b0a25a7a51f23f5b2b2e0c81a565d0e","avatar_url":"https://secure.gravatar.com/avatar/1b0a25a7a51f23f5b2b2e0c81a565d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/stefan-feltmann","id":1563182,"login":"stefan-feltmann"},"milestone":{"number":1,"due_on":"2012-05-31T07:00:00Z","created_at":"2012-05-26T07:19:21Z","title":"Ready for demo","creator":{"gravatar_id":"1b0a25a7a51f23f5b2b2e0c81a565d0e","avatar_url":"https://secure.gravatar.com/avatar/1b0a25a7a51f23f5b2b2e0c81a565d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/stefan-feltmann","id":1563182,"login":"stefan-feltmann"},"url":"https://api.github.com/repos/stefan-feltmann/WOUCSAndroidProject/milestones/1","id":124306,"open_issues":5,"closed_issues":1,"description":"It needs to be ready to demo.","state":"open"},"closed_at":null,"user":{"gravatar_id":"1b0a25a7a51f23f5b2b2e0c81a565d0e","avatar_url":"https://secure.gravatar.com/avatar/1b0a25a7a51f23f5b2b2e0c81a565d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/stefan-feltmann","id":1563182,"login":"stefan-feltmann"},"labels":[],"html_url":"https://github.com/stefan-feltmann/WOUCSAndroidProject/issues/6","state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/stefan-feltmann/WOUCSAndroidProject","id":3794776,"name":"stefan-feltmann/WOUCSAndroidProject"},"created_at":"2012-05-26T20:10:36Z","id":"1556178200","actor":{"gravatar_id":"1b0a25a7a51f23f5b2b2e0c81a565d0e","url":"https://api.github.com/users/stefan-feltmann","avatar_url":"https://secure.gravatar.com/avatar/1b0a25a7a51f23f5b2b2e0c81a565d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1563182,"login":"stefan-feltmann"}},{"type":"PushEvent","payload":{"head":"e3d849d9ee5d68c5bac77d16dc4418e59507a76a","size":1,"push_id":80706702,"ref":"refs/heads/master","commits":[{"sha":"e3d849d9ee5d68c5bac77d16dc4418e59507a76a","author":{"name":"Buri","email":"buri.buster@gmail.com"},"url":"https://api.github.com/repos/Buri/Aragorn.cz/commits/e3d849d9ee5d68c5bac77d16dc4418e59507a76a","distinct":true,"message":"Forum rework"}]},"public":true,"repo":{"url":"https://api.github.com/repos/Buri/Aragorn.cz","id":1693702,"name":"Buri/Aragorn.cz"},"created_at":"2012-05-26T20:10:35Z","id":"1556178199","actor":{"gravatar_id":"7958f5d3b335658aa38b330b5da185d3","url":"https://api.github.com/users/Buri","avatar_url":"https://secure.gravatar.com/avatar/7958f5d3b335658aa38b330b5da185d3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":169319,"login":"Buri"}},{"type":"PushEvent","payload":{"head":"f912237671fb872a034138f987f1de994c1b46d0","size":1,"push_id":80706701,"ref":"refs/heads/master","commits":[{"sha":"f912237671fb872a034138f987f1de994c1b46d0","author":{"name":"Taito Horiuchi","email":"taito.horiuchi@gmail.com"},"url":"https://api.github.com/repos/taito/santa.templates/commits/f912237671fb872a034138f987f1de994c1b46d0","distinct":true,"message":"Translation fixed."}]},"public":true,"repo":{"url":"https://api.github.com/repos/taito/santa.templates","id":4246341,"name":"taito/santa.templates"},"created_at":"2012-05-26T20:10:35Z","id":"1556178196","actor":{"gravatar_id":"0c9a3666ce6afa21d9f65c1d28fd132c","url":"https://api.github.com/users/taito","avatar_url":"https://secure.gravatar.com/avatar/0c9a3666ce6afa21d9f65c1d28fd132c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":707769,"login":"taito"}},{"type":"ForkEvent","payload":{"forkee":{"name":"escapes.js","size":356,"has_wiki":false,"created_at":"2012-05-26T20:10:34Z","clone_url":"https://github.com/slashben/escapes.js.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-26T20:10:34Z","language":"JavaScript","git_url":"git://github.com/slashben/escapes.js.git","fork":true,"url":"https://api.github.com/repos/slashben/escapes.js","ssh_url":"git@github.com:slashben/escapes.js.git","id":4457500,"svn_url":"https://github.com/slashben/escapes.js","pushed_at":"2012-02-24T20:15:58Z","mirror_url":null,"has_downloads":true,"open_issues":0,"full_name":"slashben/escapes.js","has_issues":false,"homepage":"http://atdt.github.com/escapes.js/","description":"Render ANSI art using HTML5 / JavaScript","forks":0,"html_url":"https://github.com/slashben/escapes.js","owner":{"gravatar_id":"f13fc45cd1b66df0be9707c433d4828d","avatar_url":"https://secure.gravatar.com/avatar/f13fc45cd1b66df0be9707c433d4828d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/slashben","id":1594924,"login":"slashben"}}},"public":true,"repo":{"url":"https://api.github.com/repos/atdt/escapes.js","id":3151778,"name":"atdt/escapes.js"},"created_at":"2012-05-26T20:10:35Z","id":"1556178195","actor":{"gravatar_id":"f13fc45cd1b66df0be9707c433d4828d","url":"https://api.github.com/users/slashben","avatar_url":"https://secure.gravatar.com/avatar/f13fc45cd1b66df0be9707c433d4828d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1594924,"login":"slashben"}},{"type":"PushEvent","payload":{"head":"3ba4533ca1577abe30ae37f69ddab47248d59d53","size":1,"push_id":80706700,"ref":"refs/heads/master","commits":[{"sha":"3ba4533ca1577abe30ae37f69ddab47248d59d53","author":{"name":"Mike Stone","email":"stonemj@gmail.com"},"url":"https://api.github.com/repos/mikestone/nginxtra/commits/3ba4533ca1577abe30ae37f69ddab47248d59d53","distinct":true,"message":"Rename option to compile_option to help avoid potential name conflicts (method_missing...)."}]},"public":true,"repo":{"url":"https://api.github.com/repos/mikestone/nginxtra","id":4453685,"name":"mikestone/nginxtra"},"created_at":"2012-05-26T20:10:35Z","id":"1556178194","actor":{"gravatar_id":"c8ba7ccacc70a7b826184e8d717bfcd7","url":"https://api.github.com/users/mikestone","avatar_url":"https://secure.gravatar.com/avatar/c8ba7ccacc70a7b826184e8d717bfcd7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":150632,"login":"mikestone"}},{"type":"PullRequestEvent","payload":{"number":29,"pull_request":{"head":{"label":"pahko:patch-1","repo":{"name":"escape-lounge","size":108,"has_wiki":true,"created_at":"2012-05-26T20:09:41Z","clone_url":"https://github.com/pahko/escape-lounge.git","watchers":1,"private":false,"updated_at":"2012-05-26T20:10:21Z","language":"JavaScript","fork":true,"url":"https://api.github.com/repos/pahko/escape-lounge","git_url":"git://github.com/pahko/escape-lounge.git","ssh_url":"git@github.com:pahko/escape-lounge.git","id":4457492,"svn_url":"https://github.com/pahko/escape-lounge","pushed_at":"2012-05-26T20:10:20Z","mirror_url":null,"has_downloads":true,"open_issues":0,"full_name":"pahko/escape-lounge","has_issues":false,"homepage":null,"description":"Page like getawaylounge.com.au","forks":0,"html_url":"https://github.com/pahko/escape-lounge","owner":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"sha":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","ref":"patch-1","user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"number":29,"issue_url":"https://github.com/orozcogera/escape-lounge/issues/29","merged_by":null,"created_at":"2012-05-26T20:10:29Z","changed_files":1,"merged":false,"body":"","comments":0,"title":"Update README.md","diff_url":"https://github.com/orozcogera/escape-lounge/pull/29.diff","updated_at":"2012-05-26T20:10:34Z","additions":2,"url":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29","_links":{"html":{"href":"https://github.com/orozcogera/escape-lounge/pull/29"},"self":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29"},"comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29/comments"},"issue":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29"},"review_comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29/comments"}},"id":1435458,"patch_url":"https://github.com/orozcogera/escape-lounge/pull/29.patch","mergeable":true,"merged_at":null,"commits":1,"closed_at":"2012-05-26T20:10:34Z","user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"},"review_comments":0,"deletions":3,"html_url":"https://github.com/orozcogera/escape-lounge/pull/29","state":"closed","base":{"label":"orozcogera:master","repo":{"name":"escape-lounge","size":11504,"has_wiki":true,"created_at":"2012-05-16T15:33:54Z","clone_url":"https://github.com/orozcogera/escape-lounge.git","watchers":2,"private":false,"updated_at":"2012-05-26T20:09:41Z","language":"JavaScript","fork":false,"url":"https://api.github.com/repos/orozcogera/escape-lounge","git_url":"git://github.com/orozcogera/escape-lounge.git","ssh_url":"git@github.com:orozcogera/escape-lounge.git","id":4348574,"svn_url":"https://github.com/orozcogera/escape-lounge","pushed_at":"2012-05-25T04:15:07Z","mirror_url":null,"has_downloads":true,"open_issues":5,"full_name":"orozcogera/escape-lounge","has_issues":true,"homepage":null,"description":"Page like getawaylounge.com.au","forks":2,"html_url":"https://github.com/orozcogera/escape-lounge","owner":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}},"sha":"c74beb5b64464d892fe1168c4bba4a8260594be2","ref":"master","user":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}}},"action":"closed"},"public":true,"repo":{"url":"https://api.github.com/repos/orozcogera/escape-lounge","id":4348574,"name":"orozcogera/escape-lounge"},"created_at":"2012-05-26T20:10:34Z","id":"1556178192","actor":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","url":"https://api.github.com/users/pahko","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":572114,"login":"pahko"}},{"type":"ForkEvent","payload":{"forkee":{"name":"Perlbal","master_branch":"master","size":312,"has_wiki":true,"created_at":"2012-05-26T20:10:32Z","clone_url":"https://github.com/micmac/Perlbal.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-26T20:10:32Z","git_url":"git://github.com/micmac/Perlbal.git","fork":true,"url":"https://api.github.com/repos/micmac/Perlbal","language":"Perl","ssh_url":"git@github.com:micmac/Perlbal.git","id":4457499,"svn_url":"https://github.com/micmac/Perlbal","pushed_at":"2012-03-18T22:55:34Z","mirror_url":null,"has_downloads":true,"open_issues":0,"full_name":"micmac/Perlbal","has_issues":false,"homepage":"http://perlbal.org/","description":"Perl HTTP Load Balancer","forks":0,"html_url":"https://github.com/micmac/Perlbal","owner":{"gravatar_id":"70c5b8a9f65872ac089c773175aa5f10","avatar_url":"https://secure.gravatar.com/avatar/70c5b8a9f65872ac089c773175aa5f10?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/micmac","id":206625,"login":"micmac"}}},"public":true,"repo":{"url":"https://api.github.com/repos/perlbal/Perlbal","id":920387,"name":"perlbal/Perlbal"},"org":{"gravatar_id":"91293234d5655b7a16a6f8bf2cf4186a","url":"https://api.github.com/orgs/perlbal","avatar_url":"https://secure.gravatar.com/avatar/91293234d5655b7a16a6f8bf2cf4186a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":229885,"login":"perlbal"},"created_at":"2012-05-26T20:10:32Z","id":"1556178191","actor":{"gravatar_id":"70c5b8a9f65872ac089c773175aa5f10","url":"https://api.github.com/users/micmac","avatar_url":"https://secure.gravatar.com/avatar/70c5b8a9f65872ac089c773175aa5f10?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":206625,"login":"micmac"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref":"master","ref_type":"branch","description":"This is a test repository"},"public":true,"repo":{"url":"https://api.github.com/repos/zintusys/zintutest","id":4457237,"name":"zintusys/zintutest"},"created_at":"2012-05-26T20:10:31Z","id":"1556178189","actor":{"gravatar_id":"cab57efb098e76b5898d7f7a884b69ce","url":"https://api.github.com/users/zintusys","avatar_url":"https://secure.gravatar.com/avatar/cab57efb098e76b5898d7f7a884b69ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1662566,"login":"zintusys"}},{"type":"PullRequestEvent","payload":{"number":29,"pull_request":{"head":{"label":"pahko:patch-1","repo":{"name":"escape-lounge","size":108,"has_wiki":true,"created_at":"2012-05-26T20:09:41Z","clone_url":"https://github.com/pahko/escape-lounge.git","watchers":1,"private":false,"updated_at":"2012-05-26T20:10:21Z","fork":true,"language":"JavaScript","git_url":"git://github.com/pahko/escape-lounge.git","url":"https://api.github.com/repos/pahko/escape-lounge","ssh_url":"git@github.com:pahko/escape-lounge.git","id":4457492,"svn_url":"https://github.com/pahko/escape-lounge","pushed_at":"2012-05-26T20:10:20Z","has_downloads":true,"mirror_url":null,"open_issues":0,"full_name":"pahko/escape-lounge","has_issues":false,"homepage":null,"description":"Page like getawaylounge.com.au","forks":0,"html_url":"https://github.com/pahko/escape-lounge","owner":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"sha":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","ref":"patch-1","user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"}},"number":29,"issue_url":"https://github.com/orozcogera/escape-lounge/issues/29","merged_by":null,"changed_files":1,"created_at":"2012-05-26T20:10:29Z","merged":false,"body":"","comments":0,"title":"Update README.md","diff_url":"https://github.com/orozcogera/escape-lounge/pull/29.diff","updated_at":"2012-05-26T20:10:29Z","additions":2,"url":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29","_links":{"html":{"href":"https://github.com/orozcogera/escape-lounge/pull/29"},"self":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29"},"comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29/comments"},"issue":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/issues/29"},"review_comments":{"href":"https://api.github.com/repos/orozcogera/escape-lounge/pulls/29/comments"}},"id":1435458,"patch_url":"https://github.com/orozcogera/escape-lounge/pull/29.patch","mergeable":null,"merged_at":null,"closed_at":null,"commits":1,"user":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pahko","id":572114,"login":"pahko"},"review_comments":0,"deletions":3,"html_url":"https://github.com/orozcogera/escape-lounge/pull/29","state":"open","base":{"label":"orozcogera:master","repo":{"name":"escape-lounge","size":11504,"has_wiki":true,"created_at":"2012-05-16T15:33:54Z","clone_url":"https://github.com/orozcogera/escape-lounge.git","watchers":2,"private":false,"updated_at":"2012-05-26T20:09:41Z","fork":false,"language":"JavaScript","git_url":"git://github.com/orozcogera/escape-lounge.git","url":"https://api.github.com/repos/orozcogera/escape-lounge","ssh_url":"git@github.com:orozcogera/escape-lounge.git","id":4348574,"svn_url":"https://github.com/orozcogera/escape-lounge","pushed_at":"2012-05-25T04:15:07Z","has_downloads":true,"mirror_url":null,"open_issues":6,"full_name":"orozcogera/escape-lounge","has_issues":true,"homepage":null,"description":"Page like getawaylounge.com.au","forks":2,"html_url":"https://github.com/orozcogera/escape-lounge","owner":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}},"sha":"c74beb5b64464d892fe1168c4bba4a8260594be2","ref":"master","user":{"gravatar_id":"a0a1b546caac87b0e2f83b22578e7dec","avatar_url":"https://secure.gravatar.com/avatar/a0a1b546caac87b0e2f83b22578e7dec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/orozcogera","id":1656019,"login":"orozcogera"}}},"action":"opened"},"public":true,"repo":{"url":"https://api.github.com/repos/orozcogera/escape-lounge","id":4348574,"name":"orozcogera/escape-lounge"},"created_at":"2012-05-26T20:10:30Z","id":"1556178187","actor":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","url":"https://api.github.com/users/pahko","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":572114,"login":"pahko"}},{"type":"PushEvent","payload":{"head":"fb608d79da377cd62b90f5efc5993a04b74128b5","size":2,"push_id":80706695,"commits":[{"sha":"48b2f9c539f4b6c8e3b8830547734f0be65829ed","author":{"name":"François Poirotte","email":"clicky@erebot.net"},"url":"https://api.github.com/repos/Erebot/Erebot_Module_Admin/commits/48b2f9c539f4b6c8e3b8830547734f0be65829ed","distinct":true,"message":"Fix build for travis-ci."},{"sha":"fb608d79da377cd62b90f5efc5993a04b74128b5","author":{"name":"François Poirotte","email":"clicky@erebot.net"},"url":"https://api.github.com/repos/Erebot/Erebot_Module_Admin/commits/fb608d79da377cd62b90f5efc5993a04b74128b5","distinct":true,"message":"Merge branch 'master' of github.com:Erebot/Erebot_Module_Admin"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/Erebot/Erebot_Module_Admin","id":2165778,"name":"Erebot/Erebot_Module_Admin"},"org":{"gravatar_id":"6882737b0542ce27644cb7c327ac9f12","url":"https://api.github.com/orgs/Erebot","avatar_url":"https://secure.gravatar.com/avatar/6882737b0542ce27644cb7c327ac9f12?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":1494625,"login":"Erebot"},"created_at":"2012-05-26T20:10:29Z","id":"1556178185","actor":{"gravatar_id":"adf15294c19648e1fac2509bd42d01c7","url":"https://api.github.com/users/fpoirotte","avatar_url":"https://secure.gravatar.com/avatar/adf15294c19648e1fac2509bd42d01c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":499919,"login":"fpoirotte"}},{"type":"PushEvent","payload":{"head":"fa2ed00079275e676882e487dbeb75f802760b33","size":2,"push_id":80706691,"commits":[{"sha":"3a94206fa09f16c1732558adce1a3a88bbdf18da","author":{"name":"amaitland","email":"amaitland@b6a209e6-650d-0410-972b-dadffa731f64"},"url":"https://api.github.com/repos/pcgen-svn/pcgen-svn/commits/3a94206fa09f16c1732558adce1a3a88bbdf18da","distinct":true,"message":"This is showing as changed, but can't pull a log difference.\n\ngit-svn-id: https://pcgen.svn.sourceforge.net/svnroot/pcgen/Trunk/pcgen@16749 b6a209e6-650d-0410-972b-dadffa731f64"},{"sha":"fa2ed00079275e676882e487dbeb75f802760b33","author":{"name":"amaitland","email":"amaitland@b6a209e6-650d-0410-972b-dadffa731f64"},"url":"https://api.github.com/repos/pcgen-svn/pcgen-svn/commits/fa2ed00079275e676882e487dbeb75f802760b33","distinct":true,"message":"\t\n[Distant Horizons Games] The Practical Enchanter\nUpdates\nIssue#: NEWSOURCE-4\n\n\ngit-svn-id: https://pcgen.svn.sourceforge.net/svnroot/pcgen/Trunk/pcgen@16750 b6a209e6-650d-0410-972b-dadffa731f64"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/pcgen-svn/pcgen-svn","id":3355411,"name":"pcgen-svn/pcgen-svn"},"created_at":"2012-05-26T20:10:25Z","id":"1556178179","actor":{"gravatar_id":"522faa929df7935f1b2d9e0d4ed09d60","url":"https://api.github.com/users/pcgen-svn","avatar_url":"https://secure.gravatar.com/avatar/522faa929df7935f1b2d9e0d4ed09d60?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1408391,"login":"pcgen-svn"}},{"type":"PushEvent","payload":{"head":"ecd011a36b1b91258d614a3a9a5cae28dcf26881","size":8,"push_id":80706690,"ref":"refs/heads/devel","commits":[{"sha":"26e2f1d1cf0c4d2c823029541fa54dc1bc67fa74","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/26e2f1d1cf0c4d2c823029541fa54dc1bc67fa74","distinct":true,"message":"cleanup"},{"sha":"c8810e6c188424925323dec22f29e67645d4ee2e","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/c8810e6c188424925323dec22f29e67645d4ee2e","distinct":true,"message":"added missing isConnected"},{"sha":"3c4b15f14c0bc89311db4fd8ba2f2590d97d9f48","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/3c4b15f14c0bc89311db4fd8ba2f2590d97d9f48","distinct":true,"message":"added missing file"},{"sha":"4aad80642091ea66825556588b8b1a8a37c0e8c4","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/4aad80642091ea66825556588b8b1a8a37c0e8c4","distinct":true,"message":"added missing file"},{"sha":"a3c692d714ffc37e9277ab5497ef7034fb4df981","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/a3c692d714ffc37e9277ab5497ef7034fb4df981","distinct":true,"message":"cleanup AddressPort"},{"sha":"555605dfb400fc6b31198508f2fd2aff3427439c","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/555605dfb400fc6b31198508f2fd2aff3427439c","distinct":true,"message":"mruby client connection"},{"sha":"2ed6ae66fee971f3618c77c5d79940d9f07db2ef","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/2ed6ae66fee971f3618c77c5d79940d9f07db2ef","distinct":true,"message":"mruby client connection"},{"sha":"ecd011a36b1b91258d614a3a9a5cae28dcf26881","author":{"name":"Frank Celler","email":"f.celler@triagens.de"},"url":"https://api.github.com/repos/triAGENS/ArangoDB/commits/ecd011a36b1b91258d614a3a9a5cae28dcf26881","distinct":true,"message":"added valgrind sleep"}]},"public":true,"repo":{"url":"https://api.github.com/repos/triAGENS/ArangoDB","id":2649214,"name":"triAGENS/ArangoDB"},"org":{"gravatar_id":"76a220a4fa407ecfb795a8186c099c52","url":"https://api.github.com/orgs/triAGENS","avatar_url":"https://secure.gravatar.com/avatar/76a220a4fa407ecfb795a8186c099c52?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":391956,"login":"triAGENS"},"created_at":"2012-05-26T20:10:24Z","id":"1556178178","actor":{"gravatar_id":"457f59eedabca29c1fa9cf798b5a11c4","url":"https://api.github.com/users/fceller","avatar_url":"https://secure.gravatar.com/avatar/457f59eedabca29c1fa9cf798b5a11c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":392005,"login":"fceller"}},{"type":"ForkEvent","payload":{"forkee":{"name":"websocket.io","size":168,"has_wiki":true,"created_at":"2012-05-26T20:10:22Z","clone_url":"https://github.com/florentx/websocket.io.git","public":true,"watchers":1,"private":false,"updated_at":"2012-05-26T20:10:22Z","fork":true,"git_url":"git://github.com/florentx/websocket.io.git","url":"https://api.github.com/repos/florentx/websocket.io","language":"JavaScript","ssh_url":"git@github.com:florentx/websocket.io.git","id":4457498,"svn_url":"https://github.com/florentx/websocket.io","pushed_at":"2012-05-01T02:14:09Z","mirror_url":null,"has_downloads":true,"open_issues":0,"full_name":"florentx/websocket.io","has_issues":false,"homepage":"","description":"","forks":0,"html_url":"https://github.com/florentx/websocket.io","owner":{"gravatar_id":"df4a6858794ecf84eae5afb37bf276ba","avatar_url":"https://secure.gravatar.com/avatar/df4a6858794ecf84eae5afb37bf276ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/florentx","id":142113,"login":"florentx"}}},"public":true,"repo":{"url":"https://api.github.com/repos/LearnBoost/websocket.io","id":2803817,"name":"LearnBoost/websocket.io"},"org":{"gravatar_id":"07100ee5e8dedd7c96195b2aa422dbb5","url":"https://api.github.com/orgs/LearnBoost","avatar_url":"https://secure.gravatar.com/avatar/07100ee5e8dedd7c96195b2aa422dbb5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":204174,"login":"LearnBoost"},"created_at":"2012-05-26T20:10:23Z","id":"1556178176","actor":{"gravatar_id":"df4a6858794ecf84eae5afb37bf276ba","url":"https://api.github.com/users/florentx","avatar_url":"https://secure.gravatar.com/avatar/df4a6858794ecf84eae5afb37bf276ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":142113,"login":"florentx"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/capttaco/Briefs","id":250217,"name":"capttaco/Briefs"},"created_at":"2012-05-26T20:10:22Z","id":"1556178174","actor":{"gravatar_id":"ec3da2446aa2be99a27fb3d71dd0c4fa","url":"https://api.github.com/users/fdb","avatar_url":"https://secure.gravatar.com/avatar/ec3da2446aa2be99a27fb3d71dd0c4fa?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":8477,"login":"fdb"}},{"type":"PushEvent","payload":{"head":"4e3ba6b1909b06c4baef1e2017973de7ebce9474","size":3,"push_id":80706689,"ref":"refs/heads/master","commits":[{"sha":"21f8bacb3af04bac634ff61a26fc46751b995275","author":{"name":"Nils Maier","email":"maierman@web.de"},"url":"https://api.github.com/repos/downthemall/downthemall-mirror/commits/21f8bacb3af04bac634ff61a26fc46751b995275","distinct":true,"message":"mac: Distinguish hover states better for #action toolbarbuttons"},{"sha":"6118a94cd3a884b5a089b1214fefbbdda46b7dab","author":{"name":"Nils Maier","email":"maierman@web.de"},"url":"https://api.github.com/repos/downthemall/downthemall-mirror/commits/6118a94cd3a884b5a089b1214fefbbdda46b7dab","distinct":true,"message":"#2215: Only the manager must take care of rebooting"},{"sha":"4e3ba6b1909b06c4baef1e2017973de7ebce9474","author":{"name":"Nils Maier","email":"maierman@web.de"},"url":"https://api.github.com/repos/downthemall/downthemall-mirror/commits/4e3ba6b1909b06c4baef1e2017973de7ebce9474","distinct":true,"message":"SaveAs: Show the button as a toolbar button\n\nAlso put the saveas.css file where it belongs"}]},"public":true,"repo":{"url":"https://api.github.com/repos/downthemall/downthemall-mirror","id":1336743,"name":"downthemall/downthemall-mirror"},"org":{"gravatar_id":"dc5ae3f7381764005a57cdf0cd0a814b","url":"https://api.github.com/orgs/downthemall","avatar_url":"https://secure.gravatar.com/avatar/dc5ae3f7381764005a57cdf0cd0a814b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":1041247,"login":"downthemall"},"created_at":"2012-05-26T20:10:21Z","id":"1556178173","actor":{"gravatar_id":"4738af770d803e8c733510b794651bae","url":"https://api.github.com/users/nmaier","avatar_url":"https://secure.gravatar.com/avatar/4738af770d803e8c733510b794651bae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":383665,"login":"nmaier"}},{"type":"PushEvent","payload":{"head":"67b1545f946124bb19e5fde498680b939e150ed8","size":3,"push_id":80706688,"commits":[{"sha":"0229a16f35481308bf97ff995a3c76c88e2b7c7e","author":{"name":"Eric Mill","email":"konklone@gmail.com"},"url":"https://api.github.com/repos/sunlightlabs/scout/commits/0229a16f35481308bf97ff995a3c76c88e2b7c7e","distinct":true,"message":"Tried again on spacing"},{"sha":"de870bc1a8cd9ff4104d52be54999dded7323ce9","author":{"name":"Eric Mill","email":"konklone@gmail.com"},"url":"https://api.github.com/repos/sunlightlabs/scout/commits/de870bc1a8cd9ff4104d52be54999dded7323ce9","distinct":true,"message":"Made the search bar act like a filter on the search page, remember the current search, and keep the current subscription type"},{"sha":"67b1545f946124bb19e5fde498680b939e150ed8","author":{"name":"Eric Mill","email":"konklone@gmail.com"},"url":"https://api.github.com/repos/sunlightlabs/scout/commits/67b1545f946124bb19e5fde498680b939e150ed8","distinct":true,"message":"Simplified main search bar code, made it further act like a filter and preserve existing filters"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/sunlightlabs/scout","id":2148752,"name":"sunlightlabs/scout"},"org":{"gravatar_id":"83fc7b3fdb0a6d29e064ebb44f0efa8c","url":"https://api.github.com/orgs/sunlightlabs","avatar_url":"https://secure.gravatar.com/avatar/83fc7b3fdb0a6d29e064ebb44f0efa8c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":40420,"login":"sunlightlabs"},"created_at":"2012-05-26T20:10:21Z","id":"1556178172","actor":{"gravatar_id":"2d61a1c4fc40720b60e99be64d883297","url":"https://api.github.com/users/konklone","avatar_url":"https://secure.gravatar.com/avatar/2d61a1c4fc40720b60e99be64d883297?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":4592,"login":"konklone"}},{"type":"PushEvent","payload":{"head":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","size":1,"push_id":80706687,"commits":[{"sha":"f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","author":{"name":"Francisco Albarran Cristobal","email":"pahko.xd@gmail.com"},"url":"https://api.github.com/repos/pahko/escape-lounge/commits/f1ec182b989cc5ff1713ffd7d901f787c2d7ab05","distinct":true,"message":"Update README.md"}],"ref":"refs/heads/patch-1"},"public":true,"repo":{"url":"https://api.github.com/repos/pahko/escape-lounge","id":4457492,"name":"pahko/escape-lounge"},"created_at":"2012-05-26T20:10:21Z","id":"1556178171","actor":{"gravatar_id":"ef8bbfccfd0dd146907f7a008fe57f43","url":"https://api.github.com/users/pahko","avatar_url":"https://secure.gravatar.com/avatar/ef8bbfccfd0dd146907f7a008fe57f43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":572114,"login":"pahko"}},{"type":"PushEvent","payload":{"head":"5a2929c5912bbd6c1e305825fcbecc9ab28c85fa","size":1,"push_id":80706685,"commits":[{"sha":"5a2929c5912bbd6c1e305825fcbecc9ab28c85fa","author":{"name":"ericpyle","email":"eric.d.pyle@gmail.com"},"url":"https://api.github.com/repos/ericpyle/kayak/commits/5a2929c5912bbd6c1e305825fcbecc9ab28c85fa","distinct":true,"message":"use scripture range for now"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/ericpyle/kayak","id":3819394,"name":"ericpyle/kayak"},"created_at":"2012-05-26T20:10:20Z","id":"1556178167","actor":{"gravatar_id":"08214a539f6f189a4012616fd57a7ba7","url":"https://api.github.com/users/ericpyle","avatar_url":"https://secure.gravatar.com/avatar/08214a539f6f189a4012616fd57a7ba7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1125565,"login":"ericpyle"}}] + diff --git a/test/ReplayData/AuthenticatedUser.testGetGists.txt b/test/ReplayData/AuthenticatedUser.testGetGists.txt new file mode 100644 index 00000000..1d7811e4 --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testGetGists.txt @@ -0,0 +1,5 @@ +GET /gists {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('content-length', '4507'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"868b9c31808f738e0f03284a2e538a41"'), ('date', 'Sat, 26 May 2012 20:14:40 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"updated_at":"2012-05-26T11:08:22Z","url":"https://api.github.com/gists/2793505","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2793505.git","git_push_url":"git@gist.github.com:2793505.git","files":{"foobar.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2793505/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","size":24,"filename":"foobar.txt","language":"Text"}},"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"description":null,"created_at":"2012-05-26T11:08:22Z","id":"2793505","html_url":"https://gist.github.com/2793505"},{"updated_at":"2012-05-26T10:09:33Z","url":"https://api.github.com/gists/2793179","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2793179.git","git_push_url":"git@gist.github.com:2793179.git","files":{"foobar.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2793179/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","size":24,"filename":"foobar.txt","language":"Text"}},"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"description":"Gist created by PyGithub","created_at":"2012-05-26T09:50:02Z","id":"2793179","html_url":"https://gist.github.com/2793179"},{"updated_at":"2012-04-26T13:20:53Z","url":"https://api.github.com/gists/11cb445f8197e17d303d","comments":0,"public":false,"git_pull_url":"git://gist.github.com/11cb445f8197e17d303d.git","git_push_url":"git@gist.github.com:11cb445f8197e17d303d.git","files":{"FairThreadPoolPool.cpp":{"type":"text/plain","raw_url":"https://gist.github.com/raw/11cb445f8197e17d303d/0f72c6fe50eb011eacb4e39fa613bdfe2f7a0c51/FairThreadPoolPool.cpp","size":7779,"filename":"FairThreadPoolPool.cpp","language":"C++"}},"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"description":"FairThreadPoolPool.cpp","created_at":"2012-04-26T13:20:53Z","id":"11cb445f8197e17d303d","html_url":"https://gist.github.com/11cb445f8197e17d303d"},{"updated_at":"2012-02-29T16:47:12Z","url":"https://api.github.com/gists/1942384","comments":0,"public":true,"git_pull_url":"git://gist.github.com/1942384.git","git_push_url":"git@gist.github.com:1942384.git","files":{"fail_github.py":{"type":"application/python","raw_url":"https://gist.github.com/raw/1942384/2fb3aa84e0efa50dc0f4c18b5df5b7b9ab27076b/fail_github.py","size":1636,"filename":"fail_github.py","language":"Python"}},"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"description":"How to error 500 Github API v3, as requested by Rick (GitHub Staff)","created_at":"2012-02-29T16:47:12Z","id":"1942384","html_url":"https://gist.github.com/1942384"},{"updated_at":"2012-02-28T19:44:42Z","url":"https://api.github.com/gists/dcb7de17e8a52b74541d","comments":1,"public":false,"git_pull_url":"git://gist.github.com/dcb7de17e8a52b74541d.git","git_push_url":"git@gist.github.com:dcb7de17e8a52b74541d.git","files":{"cadfael.txt":{"type":"text/plain","raw_url":"https://gist.github.com/raw/dcb7de17e8a52b74541d/48ca696645682d7430d73180814434e0284796b2/cadfael.txt","size":585,"filename":"cadfael.txt","language":"Text"}},"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"description":"Cadfael: order of episodes in French DVD edition","created_at":"2012-02-28T19:44:42Z","id":"dcb7de17e8a52b74541d","html_url":"https://gist.github.com/dcb7de17e8a52b74541d"}] + diff --git a/test/ReplayData/AuthenticatedUser.testGetIssues.txt b/test/ReplayData/AuthenticatedUser.testGetIssues.txt new file mode 100644 index 00000000..30804588 --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testGetIssues.txt @@ -0,0 +1,5 @@ +GET /issues {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4964'), ('content-length', '43238'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"079a70319db4b8e496afd6236e20f5bb"'), ('date', 'Sat, 26 May 2012 20:16:00 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/bilderbuchi","login":"bilderbuchi","id":327442},"title":"Facilitate IDE autocompletion","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-05-18T11:06:11Z","body":"As per discussion in 6945921c529be14c3a8f566dd1e483674516d46d\n\nI have observed that autocompletion (using PyDev+Eclipse in my case) is pretty erratic.\nFor example, in the tutorial from the readme, `g.get_u` gets autocompleted correctly, but `g.get_user().get_r` (or any method or attribute applicable to `NamedUsers`/`AuthenticatedUser`, really) does not show autocompletion to `g.get_user().get_repo()`.\n\nThis makes exploring the library/API a bit cumbersome. ","number":27,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/27","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/27","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":4639931,"created_at":"2012-05-18T10:52:29Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"List project(s) using PyGithub","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","number":25,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/25","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/25","labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"id":4452000,"created_at":"2012-05-07T10:49:06Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"b58d0f1ea06b8d5de5f02c53f747ac03","avatar_url":"https://secure.gravatar.com/avatar/b58d0f1ea06b8d5de5f02c53f747ac03?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/roskakori","login":"roskakori","id":328726},"title":"Improve error messages on broken requests","comments":2,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-05-04T19:23:57Z","body":"Thanks for PyGithub, it is easy to use and very complete. I just successfully used it to convert Trac tickets to Guthub issues.\r\n\r\nBut I had to learn the hard way that `create_issue()` expectes the milestone as number instead of a title. To track this down, I added the following `print` statement to `Requester.py`:\r\n\r\n```python\r\ndef __statusCheckedRequest( self, verb, url, parameters, input ):\r\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\r\n if status < 200 or status >= 300:\r\n print output # <--- Added by me.\r\n raise UnknownGithubObject() # <--- sadly lacks any error details\r\n return headers, output\r\n```\r\n\r\nAs `output` already contains all the information needed (as JSON dump), it would be helpful if the exception raised here would include this information in the exception message.","number":24,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/24","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/24","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":4356743,"created_at":"2012-04-30T20:01:20Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Rework GitTree.recursive","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-19T19:08:18Z","body":"","number":20,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/20","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/20","labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"id":3716033,"created_at":"2012-03-19T19:08:18Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Rework Github.get_gists","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-19T19:04:19Z","body":"In general, when you get a collection, you should get an iterable, and the pagination should be done only if needed. This is mandatory for Github.get_gists","number":19,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/19","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/19","labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"id":3715946,"created_at":"2012-03-19T19:04:19Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Take care of _identity","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-14T06:49:31Z","body":"","number":18,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/18","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/18","labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"id":3643837,"created_at":"2012-03-14T06:49:31Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Document issue reporting","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-13T12:09:48Z","body":"","number":17,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/17","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/17","labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"id":3628022,"created_at":"2012-03-13T12:09:48Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Add copyright and license notice","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-13T07:04:42Z","body":"","number":16,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/16","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/16","labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"id":3624595,"created_at":"2012-03-13T06:25:31Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Rework BaseUrl to use tuples instead of string concatenation","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-13T06:23:35Z","body":"","number":14,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/14","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/14","labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"id":3624570,"created_at":"2012-03-13T06:23:35Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Remove the _repo hugly hack","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-13T06:22:27Z","body":"","number":13,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/13","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/13","labels":[{"color":"0b02e1","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Refactoring","name":"Refactoring"}],"id":3624561,"created_at":"2012-03-13T06:22:27Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Structure some InternalSimpleAttributes","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-13T06:21:57Z","body":"","number":12,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/12","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/12","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":3624556,"created_at":"2012-03-13T06:21:57Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Publish version 1.0","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-12T21:58:05Z","body":"","number":9,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/9","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/9","labels":[{"color":"444444","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management"}],"id":3619973,"created_at":"2012-03-12T21:58:05Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Review public interface homogeneity ","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-08T12:23:29Z","body":"","number":4,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/4","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/4","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":3527266,"created_at":"2012-03-06T16:48:40Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":null,"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Deduce mandatory parameters","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-05-19T06:42:43Z","body":"","number":3,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/3","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/3","labels":[{"color":"e102d8","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities"}],"id":3527245,"created_at":"2012-03-06T16:47:49Z"},{"repository":{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"created_at":"2012-02-25T12:53:47Z"},"milestone":{"state":"open","description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","title":"Version 1.0: coherent public interface","due_on":"2012-06-04T07:00:00Z","open_issues":9,"number":2,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","creator":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"closed_issues":2,"id":93547,"created_at":"2012-03-08T12:22:28Z"},"state":"open","user":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"title":"Use objects as parameters instead of shas, ids, etc.","comments":0,"assignee":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"updated_at":"2012-03-08T12:23:29Z","body":"","number":2,"closed_at":null,"pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/2","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/2","labels":[{"color":"d7e102","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","name":"Public interface"}],"id":3527231,"created_at":"2012-03-06T16:46:49Z"}] + diff --git a/test/ReplayData/AuthenticatedUser.testGetKeys.txt b/test/ReplayData/AuthenticatedUser.testGetKeys.txt new file mode 100644 index 00000000..a8e45474 --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testGetKeys.txt @@ -0,0 +1,5 @@ +GET /user/keys {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4963'), ('content-length', '1968'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"753b62ed1eedc0d39ebd312719104dd1"'), ('date', 'Sat, 26 May 2012 20:18:14 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"url":"https://api.github.com/user/keys/688586","key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC262QAZ3rvJ7KySFEHUQYGfntylusL03x/ULKdVaSltc3Z2xvWm4zQSLHrWrdUbRN9z9kMpHWZZ2G+pvUPcY/qijbqtwg9FwBHNZoviq65LujKyQeegFXQKhGGaesDeKKC+jTXbg2NJY6+u5HLe4Je8q45VVHyAfltcuSE2QoCim50toyGUGWhcIDz/2mQYpy1wtkehQA6TeC55UE00TSU06E9glnqVi8hjDlsA7DABqyctG/sjP79OwUMBppiXYX2B0RJMtRHZ+5chsHx8oqavux1oG/tdTw9ZSAfKUHfDrN97x9PB38F3j8s60S2udRwLEYuErlF1JizTF4XOZhD","verified":true,"title":"vincent@home","id":688586},{"url":"https://api.github.com/user/keys/688598","key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3CG7CI2EKMS6xeHgj1lC9tkjDJRotG9ZB7E/YbMy0l15I+ReiM5cQvYhivK2myJh7uiMBPa/VjowhZb7DvitZF8aUa99zHCygKDvN/XBl2nMEY8A01BmG6/JGlP1fgU1HdbULn1E6j0a+mYIFlpDzOFKTJqR25OzngOFC4VYiPVnoyH+uPZWWeOMPgdiJxAEWKs267OjXeikYfYE2xQN9M3a1EHitkwWOeVNKIqDTxoAU8f+Ifl4Cchq4mF56pWETSsj4hQ9YhXtzI8Grun0ZoYZM/cLPLo5rSi++FAJNU2T9yc/0G75DKEYH9UroLSQBua7KF+ixrIEtD6hI4gxDQ==","verified":true,"title":"vincent@gandi","id":688598},{"url":"https://api.github.com/user/keys/2403448","key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDK+jbASXi+PhE7GpBuKEH0qC+02J8L20A9CscleT5GUXKpZSbvxmsU0XLz95kYIBVUfrmTdn3PBn6FMK2OTWpxF9gt9DKclidkv2xfA1RkqnNVpMvZbzBMDmJcWo/lae+arQVJ26O1pbZjPH56c0cYvhblsoZnI1kCFatiJ3MOUeD2zCDylsfQ8zgLKA5yj0HRC3n5cPe9nIVWXnJQ1two4GHmxE7zue+hikYB7PQvaldGKTmHX04ODyZpyFOd86cvjiftN3G39POr2vh52jBwj4oLAiF89SC3QxQes8+zF00jOmnFUlONup0nLvJg4t/ij0M2kr5cqca7pMP+QfZp","verified":true,"title":"vincent@aws","id":2403448},{"url":"https://api.github.com/user/keys/2427679","key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNQS4cnMOsGKJXBZ7DQ+6dzAHXwNYjw9W5aoonjr4pK7C9xvRPqA7QyQHub8fiYD6uj7OM8FLQgoMH1ewQULuQdH1JPkzjxPw5UpFn8eQaKOVlBkfGCiNaUOTejt5gxMrNZfPJmh2PnhsU+WXAyNNARor8CDnAmdgzHmaKKtMnRpVUJeIqKmgXhjx9lON5dZFyQGY9KIiR5gA/GWE9dFRHULoc+0gLEAR7AJ3emh55x4pqsURJpc2cdZ/X213l4Qk7HP2s7QIcihlbuxDJG9UTwjWlcIwjlQzarzhiRSyH9F3YmlT3THAdtDYX9imiBpEP52CPYNfDGrzzhbUqYj3r","verified":true,"title":"vincent@macbook","id":2427679}] + diff --git a/test/ReplayData/AuthenticatedUser.testGetOrganizationEvents.txt b/test/ReplayData/AuthenticatedUser.testGetOrganizationEvents.txt new file mode 100644 index 00000000..8e0990ac --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testGetOrganizationEvents.txt @@ -0,0 +1,15 @@ +GET /orgs/BeaverSoftware {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '716'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d1b89d0f179a7977b3521babf470b71e"'), ('date', 'Sat, 26 May 2012 20:13:58 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"private_gists":0,"type":"Organization","company":null,"location":"Paris, France","following":0,"blog":null,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","total_private_repos":0,"followers":0,"owned_private_repos":0,"disk_usage":112,"collaborators":0,"billing_email":"BeaverSoftware@vincent-jacques.net","html_url":"https://github.com/BeaverSoftware","url":"https://api.github.com/orgs/BeaverSoftware","name":null,"login":"BeaverSoftware","public_repos":2,"public_gists":0,"email":null,"id":1424031,"plan":{"private_repos":0,"name":"free","space":307200},"created_at":"2012-02-09T19:20:12Z"} + +GET /user {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9459b6e1e4805aad5e10d13344d6ffbf"'), ('date', 'Sat, 26 May 2012 20:13:59 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"public_repos":11,"type":"User","hireable":false,"disk_usage":17080,"blog":"http://vincent-jacques.net","bio":"","url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","total_private_repos":5,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"owned_private_repos":5,"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","collaborators":0,"public_gists":3,"email":"vincent@vincent-jacques.net","followers":13,"name":"Vincent Jacques","private_gists":5,"created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"following":24,"html_url":"https://github.com/jacquev6"} + +GET /users/jacquev6/events/orgs/BeaverSoftware {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4967'), ('content-length', '31370'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"61ca146024fe83f06b9930f23033224f"'), ('date', 'Sat, 26 May 2012 20:14:00 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/CreatedByPyGithub","id":3616888,"name":"BeaverSoftware/CreatedByPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-04T08:17:15Z","id":"1526182616","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/CreatedByPyGithub","id":3610173,"name":"BeaverSoftware/CreatedByPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T11:16:34Z","id":"1526021988","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"390bcc2b855d419e9fd6727049aa9217db56a06a","size":1,"push_id":65381113,"commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/390bcc2b855d419e9fd6727049aa9217db56a06a","message":"This commit was created by PyGithub","distinct":true,"sha":"390bcc2b855d419e9fd6727049aa9217db56a06a"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:57:40Z","id":"1526010140","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"1c29d761d3e929afcbf8c6cc44b8181068d2d974","size":2,"push_id":65381112,"commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/998f4cd5ba9501a7ccff79b0011f4220f16b0271","message":"This commit was created by PyGithub","distinct":false,"sha":"998f4cd5ba9501a7ccff79b0011f4220f16b0271"},{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/1c29d761d3e929afcbf8c6cc44b8181068d2d974","message":"This commit was created by PyGithub","distinct":false,"sha":"1c29d761d3e929afcbf8c6cc44b8181068d2d974"}],"ref":"refs/heads/previous_master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:57:39Z","id":"1526010139","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"DeleteEvent","payload":{"ref_type":"branch","ref":"previous_master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:56:56Z","id":"1526010100","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"DeleteEvent","payload":{"ref_type":"tag","ref":"tagCreatedByPyGithub"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:54:25Z","id":"1526009934","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"1c29d761d3e929afcbf8c6cc44b8181068d2d974","size":1,"push_id":65380919,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/1c29d761d3e929afcbf8c6cc44b8181068d2d974","message":"This commit was created by PyGithub","distinct":true,"sha":"1c29d761d3e929afcbf8c6cc44b8181068d2d974"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:52:06Z","id":"1526009779","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"998f4cd5ba9501a7ccff79b0011f4220f16b0271","size":2,"push_id":65380918,"commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/2f51005d80353b3b82cc23908ea4fc7a91230e2f","message":"This commit was created by PyGithub","distinct":false,"sha":"2f51005d80353b3b82cc23908ea4fc7a91230e2f"},{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/998f4cd5ba9501a7ccff79b0011f4220f16b0271","message":"This commit was created by PyGithub","distinct":false,"sha":"998f4cd5ba9501a7ccff79b0011f4220f16b0271"}],"ref":"refs/heads/previous_master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:52:04Z","id":"1526009777","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"DeleteEvent","payload":{"ref_type":"tag","ref":"tag_1330764175"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:47:21Z","id":"1526009425","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"DeleteEvent","payload":{"ref_type":"tag","ref":"a_tag"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:47:15Z","id":"1526009414","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"998f4cd5ba9501a7ccff79b0011f4220f16b0271","size":1,"push_id":65380594,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/998f4cd5ba9501a7ccff79b0011f4220f16b0271","message":"This commit was created by PyGithub","distinct":true,"sha":"998f4cd5ba9501a7ccff79b0011f4220f16b0271"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:42:55Z","id":"1526009059","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"2f51005d80353b3b82cc23908ea4fc7a91230e2f","size":1,"push_id":65379432,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/2f51005d80353b3b82cc23908ea4fc7a91230e2f","message":"This commit was created by PyGithub","distinct":true,"sha":"2f51005d80353b3b82cc23908ea4fc7a91230e2f"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:11:55Z","id":"1526006647","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"e4e84560cb5e87f3c0e9f710dae1ddab0eef487b","size":1,"push_id":65379410,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/e4e84560cb5e87f3c0e9f710dae1ddab0eef487b","message":"This commit was created by PyGithub","distinct":true,"sha":"e4e84560cb5e87f3c0e9f710dae1ddab0eef487b"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3609352,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-03T08:11:13Z","id":"1526006609","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595643,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T20:19:32Z","id":"1525404633","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref_type":"repository","ref":null},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595636,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T20:19:03Z","id":"1525404453","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595613,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T20:16:23Z","id":"1525403337","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref_type":"repository","ref":null},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595586,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T20:12:55Z","id":"1525402258","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","description":null,"ref":null,"ref_type":"repository"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3595253,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-03-01T19:36:29Z","id":"1525387859","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"9473baa2f243872c07c8f008e3d53aed6b5c9ac5","size":1,"push_id":64666710,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/9473baa2f243872c07c8f008e3d53aed6b5c9ac5","message":"This commit was ter created by PyGithub","distinct":true,"sha":"9473baa2f243872c07c8f008e3d53aed6b5c9ac5"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3575047,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-28T20:11:58Z","id":"1524541002","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"ff9cc7d9bcb62d9dbf0784994fe026e9060701ef","size":1,"push_id":64259989,"commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/ff9cc7d9bcb62d9dbf0784994fe026e9060701ef","message":"This commit was ter created by PyGithub","sha":"ff9cc7d9bcb62d9dbf0784994fe026e9060701ef"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3553496,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-26T17:28:36Z","id":"1523710410","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"23395b2fa62293196bd8a640b14447c7b552c301","size":1,"push_id":64257074,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/23395b2fa62293196bd8a640b14447c7b552c301","message":"This commit was ter created by PyGithub","sha":"23395b2fa62293196bd8a640b14447c7b552c301"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3553240,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-26T16:46:35Z","id":"1523704553","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"daded682d3a64f70df2e5561783e7282a5cd80a9","size":1,"push_id":64171897,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/daded682d3a64f70df2e5561783e7282a5cd80a9","message":"This commit was ter created by PyGithub","sha":"daded682d3a64f70df2e5561783e7282a5cd80a9"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3545577,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-25T16:10:21Z","id":"1523516455","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"73b34d944187f282fa6049cd05b02432488b357b","size":1,"push_id":64169946,"ref":"refs/heads/master","commits":[{"author":{"email":"BeaverSoftware@vincent-jacques.net","name":"BeaverSoftware"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/73b34d944187f282fa6049cd05b02432488b357b","message":"This commit was ter created by PyGithub","sha":"73b34d944187f282fa6049cd05b02432488b357b"}]},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3545372,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-25T15:39:19Z","id":"1523512558","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"PushEvent","payload":{"head":"9f2ec52ae9e166d6104834bd0a7f3f9550565100","size":1,"push_id":64169244,"commits":[{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub/commits/9f2ec52ae9e166d6104834bd0a7f3f9550565100","message":"foo","sha":"9f2ec52ae9e166d6104834bd0a7f3f9550565100"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/TestPyGithub","id":3545295,"name":"BeaverSoftware/TestPyGithub"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-25T15:27:57Z","id":"1523511231","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"ForkEvent","payload":{"forkee":{"name":"FatherBeaver","master_branch":null,"size":0,"created_at":"2012-02-16T21:47:44Z","has_wiki":true,"public":true,"clone_url":"https://github.com/jacquev6/FatherBeaver.git","updated_at":"2012-02-16T21:47:44Z","private":false,"watchers":1,"language":null,"git_url":"git://github.com/jacquev6/FatherBeaver.git","fork":true,"ssh_url":"git@github.com:jacquev6/FatherBeaver.git","url":"https://api.github.com/repos/jacquev6/FatherBeaver","id":3464364,"pushed_at":null,"svn_url":"https://github.com/jacquev6/FatherBeaver","has_downloads":true,"open_issues":0,"mirror_url":null,"homepage":"","has_issues":false,"forks":0,"description":"","html_url":"https://github.com/jacquev6/FatherBeaver","owner":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","id":3400397,"name":"BeaverSoftware/FatherBeaver"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-16T21:47:45Z","id":"1520524054","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref":null,"ref_type":"repository","description":""},"public":true,"repo":{"url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","id":3400397,"name":"BeaverSoftware/FatherBeaver"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-09T19:32:22Z","id":"1518484373","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}},{"type":"TeamAddEvent","payload":{"membership_id":963957,"team":{"name":"Owners","url":"https://api.github.com/teams/141487","id":141487},"user":{"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},"public":false,"repo":{"url":"https://api.github.com/repos//","name":"/"},"org":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/orgs/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"},"created_at":"2012-02-09T19:20:13Z","id":"1518480611","actor":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","id":1424031,"login":"BeaverSoftware","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"}}] + diff --git a/test/ReplayData/AuthenticatedUser.testGetOrgs.txt b/test/ReplayData/AuthenticatedUser.testGetOrgs.txt new file mode 100644 index 00000000..d3bfc513 --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testGetOrgs.txt @@ -0,0 +1,5 @@ +GET /user/orgs {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4962'), ('content-length', '262'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"1534f44ae64c7b70fb520ea37de4328d"'), ('date', 'Sat, 26 May 2012 20:18:49 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"url":"https://api.github.com/orgs/BeaverSoftware","login":"BeaverSoftware","id":1424031,"avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png"}] + diff --git a/test/ReplayData/AuthenticatedUser.testGetRepos.txt b/test/ReplayData/AuthenticatedUser.testGetRepos.txt new file mode 100644 index 00000000..eab8f408 --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testGetRepos.txt @@ -0,0 +1,5 @@ +GET /user/repos {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4961'), ('content-length', '17939'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"3d6116bc986eb0698f0dfe92a01b2437"'), ('date', 'Sat, 26 May 2012 20:19:00 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"clone_url":"https://github.com/jacquev6/TestPyGithub.git","mirror_url":null,"has_downloads":false,"watchers":1,"updated_at":"2012-05-26T09:55:27Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/jacquev6/TestPyGithub","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/TestPyGithub","git_url":"git://github.com/jacquev6/TestPyGithub.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"TestPyGithub","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:jacquev6/TestPyGithub.git","pushed_at":"2012-05-26T09:55:27Z","created_at":"2012-05-26T09:55:27Z","id":4454027,"html_url":"https://github.com/jacquev6/TestPyGithub","full_name":"jacquev6/TestPyGithub"},{"clone_url":"https://github.com/jacquev6/django.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-04-28T11:06:20Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/jacquev6/django","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":48476,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/django","git_url":"git://github.com/jacquev6/django.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:jacquev6/django.git","pushed_at":"2012-04-28T04:05:15Z","created_at":"2012-04-28T11:06:20Z","id":4166730,"html_url":"https://github.com/jacquev6/django","full_name":"jacquev6/django"},{"clone_url":"https://github.com/jacquev6/PyGithub.git","mirror_url":null,"has_downloads":true,"watchers":14,"updated_at":"2012-05-26T18:33:41Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"private":false,"open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","git_url":"git://github.com/jacquev6/PyGithub.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"},{"clone_url":"https://github.com/jacquev6/developer.github.com.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-08T08:36:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/developer.github.com","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":152,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/developer.github.com","git_url":"git://github.com/jacquev6/developer.github.com.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"developer.github.com","language":"Ruby","description":"","ssh_url":"git@github.com:jacquev6/developer.github.com.git","pushed_at":"2012-05-08T08:36:28Z","created_at":"2012-02-05T18:22:26Z","id":3361136,"html_url":"https://github.com/jacquev6/developer.github.com","full_name":"jacquev6/developer.github.com"},{"clone_url":"https://github.com/jacquev6/acme-public-website.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-22T18:24:49Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/acme-public-website","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":120,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/acme-public-website","git_url":"git://github.com/jacquev6/acme-public-website.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"acme-public-website","language":null,"description":"","ssh_url":"git@github.com:jacquev6/acme-public-website.git","pushed_at":"2011-12-07T20:11:17Z","created_at":"2011-12-07T20:00:40Z","id":2935252,"html_url":"https://github.com/jacquev6/acme-public-website","full_name":"jacquev6/acme-public-website"},{"clone_url":"https://github.com/jacquev6/C4Planner.git","mirror_url":null,"has_downloads":true,"watchers":1,"updated_at":"2012-02-16T21:51:01Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/C4Planner","url":"https://api.github.com/repos/jacquev6/C4Planner","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":4716,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/C4Planner","git_url":"git://github.com/jacquev6/C4Planner.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"C4Planner","language":"Python","description":"Caesar IV: anticipate your city","ssh_url":"git@github.com:jacquev6/C4Planner.git","pushed_at":"2011-11-27T20:51:06Z","created_at":"2011-08-24T08:30:55Z","id":2260441,"html_url":"https://github.com/jacquev6/C4Planner","full_name":"jacquev6/C4Planner"},{"clone_url":"https://github.com/jacquev6/Hacking.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-24T13:55:11Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Hacking","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":128,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Hacking","git_url":"git://github.com/jacquev6/Hacking.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"Hacking","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Hacking.git","pushed_at":"2012-04-17T19:09:56Z","created_at":"2011-07-02T15:59:51Z","id":1988081,"html_url":"https://github.com/jacquev6/Hacking","full_name":"jacquev6/Hacking"},{"clone_url":"https://github.com/jacquev6/vincent-jacques.net.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-29T15:20:52Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"vincent-jacques.net","url":"https://api.github.com/repos/jacquev6/vincent-jacques.net","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":172,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/vincent-jacques.net","git_url":"git://github.com/jacquev6/vincent-jacques.net.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"vincent-jacques.net","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/vincent-jacques.net.git","pushed_at":"2012-04-29T15:20:52Z","created_at":"2011-07-02T07:08:56Z","id":1986874,"html_url":"https://github.com/jacquev6/vincent-jacques.net","full_name":"jacquev6/vincent-jacques.net"},{"clone_url":"https://github.com/jacquev6/Contests.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-02-12T07:18:09Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"Contests","url":"https://api.github.com/repos/jacquev6/Contests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":448,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Contests","git_url":"git://github.com/jacquev6/Contests.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"Contests","language":"Python","description":"","ssh_url":"git@github.com:jacquev6/Contests.git","pushed_at":"2011-11-14T20:19:48Z","created_at":"2011-06-27T11:55:34Z","id":1959919,"html_url":"https://github.com/jacquev6/Contests","full_name":"jacquev6/Contests"},{"clone_url":"https://github.com/jacquev6/Candidates.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-05-11T13:50:37Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Candidates","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":700,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Candidates","git_url":"git://github.com/jacquev6/Candidates.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"Candidates","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Candidates.git","pushed_at":"2012-05-11T13:50:36Z","created_at":"2011-04-09T18:24:08Z","id":1592290,"html_url":"https://github.com/jacquev6/Candidates","full_name":"jacquev6/Candidates"},{"clone_url":"https://github.com/jacquev6/Tests.git","mirror_url":null,"has_downloads":true,"watchers":0,"updated_at":"2012-04-28T10:16:42Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"","url":"https://api.github.com/repos/jacquev6/Tests","has_wiki":false,"has_issues":false,"fork":false,"forks":0,"size":3032,"private":true,"open_issues":0,"svn_url":"https://github.com/jacquev6/Tests","git_url":"git://github.com/jacquev6/Tests.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"Tests","language":"C","description":"Various tests","ssh_url":"git@github.com:jacquev6/Tests.git","pushed_at":"2012-04-01T04:24:47Z","created_at":"2011-03-28T20:24:02Z","id":1538471,"html_url":"https://github.com/jacquev6/Tests","full_name":"jacquev6/Tests"},{"clone_url":"https://github.com/jacquev6/DrawTurksHead.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:38:55Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawTurksHead/","url":"https://api.github.com/repos/jacquev6/DrawTurksHead","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":3232,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawTurksHead","git_url":"git://github.com/jacquev6/DrawTurksHead.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"DrawTurksHead","language":"C++","description":"A tool to draw Turk's Head Knots. Try it online","ssh_url":"git@github.com:jacquev6/DrawTurksHead.git","pushed_at":"2012-04-16T18:38:54Z","created_at":"2010-07-10T08:54:09Z","id":767403,"html_url":"https://github.com/jacquev6/DrawTurksHead","full_name":"jacquev6/DrawTurksHead"},{"clone_url":"https://github.com/jacquev6/DrawSyntax.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2011-11-27T14:00:34Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/DrawSyntax/","url":"https://api.github.com/repos/jacquev6/DrawSyntax","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/DrawSyntax","git_url":"git://github.com/jacquev6/DrawSyntax.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"DrawSyntax","language":"C++","description":"Draw syntax diagrams from EBNF grammars. API in C++ and Python. Try it online.","ssh_url":"git@github.com:jacquev6/DrawSyntax.git","pushed_at":"2011-11-27T14:00:32Z","created_at":"2010-07-10T08:39:56Z","id":767392,"html_url":"https://github.com/jacquev6/DrawSyntax","full_name":"jacquev6/DrawSyntax"},{"clone_url":"https://github.com/jacquev6/QuadProgMm.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-16T18:39:06Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"http://vincent-jacques.net/QuadProgMm","url":"https://api.github.com/repos/jacquev6/QuadProgMm","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":760,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/QuadProgMm","git_url":"git://github.com/jacquev6/QuadProgMm.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"QuadProgMm","language":"C++","description":"A C++ interface to specify quadratic problems by C++ expressions of your variables. Try it online.","ssh_url":"git@github.com:jacquev6/QuadProgMm.git","pushed_at":"2012-04-16T18:39:05Z","created_at":"2010-07-10T08:36:57Z","id":767386,"html_url":"https://github.com/jacquev6/QuadProgMm","full_name":"jacquev6/QuadProgMm"},{"clone_url":"https://github.com/jacquev6/Boost.HierarchicalEnum.git","mirror_url":null,"has_downloads":false,"watchers":2,"updated_at":"2012-02-20T12:43:24Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/Boost.HierarchicalEnum","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","git_url":"git://github.com/jacquev6/Boost.HierarchicalEnum.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"Boost.HierarchicalEnum","language":"C++","description":"","ssh_url":"git@github.com:jacquev6/Boost.HierarchicalEnum.git","pushed_at":"2011-11-27T14:00:23Z","created_at":"2010-07-10T08:32:12Z","id":767382,"html_url":"https://github.com/jacquev6/Boost.HierarchicalEnum","full_name":"jacquev6/Boost.HierarchicalEnum"},{"clone_url":"https://github.com/jacquev6/ViDE.git","mirror_url":null,"has_downloads":false,"watchers":0,"updated_at":"2012-04-19T16:35:46Z","permissions":{"pull":true,"admin":true,"push":true},"master_branch":"master","homepage":"","url":"https://api.github.com/repos/jacquev6/ViDE","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":1488,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/ViDE","git_url":"git://github.com/jacquev6/ViDE.git","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"ViDE","language":"Python","description":"Vincent's Development Environment","ssh_url":"git@github.com:jacquev6/ViDE.git","pushed_at":"2012-04-19T16:35:45Z","created_at":"2010-07-10T07:33:24Z","id":767343,"html_url":"https://github.com/jacquev6/ViDE","full_name":"jacquev6/ViDE"}] + diff --git a/test/ReplayData/AuthenticatedUser.testGetStarredGists.txt b/test/ReplayData/AuthenticatedUser.testGetStarredGists.txt new file mode 100644 index 00000000..a44c97a6 --- /dev/null +++ b/test/ReplayData/AuthenticatedUser.testGetStarredGists.txt @@ -0,0 +1,5 @@ +GET /gists/starred {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4965'), ('content-length', '1871'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"6fe6eaa71614e18ab69868eb20639534"'), ('date', 'Sat, 26 May 2012 20:15:28 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"git_push_url":"git@gist.github.com:1942384.git","updated_at":"2012-02-29T16:47:12Z","url":"https://api.github.com/gists/1942384","comments":0,"public":true,"files":{"fail_github.py":{"type":"application/python","size":1636,"raw_url":"https://gist.github.com/raw/1942384/2fb3aa84e0efa50dc0f4c18b5df5b7b9ab27076b/fail_github.py","filename":"fail_github.py","language":"Python"}},"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"description":"How to error 500 Github API v3, as requested by Rick (GitHub Staff)","created_at":"2012-02-29T16:47:12Z","git_pull_url":"git://gist.github.com/1942384.git","id":"1942384","html_url":"https://gist.github.com/1942384"},{"git_push_url":"git@gist.github.com:dcb7de17e8a52b74541d.git","updated_at":"2012-02-28T19:44:42Z","url":"https://api.github.com/gists/dcb7de17e8a52b74541d","comments":1,"public":false,"files":{"cadfael.txt":{"type":"text/plain","size":585,"raw_url":"https://gist.github.com/raw/dcb7de17e8a52b74541d/48ca696645682d7430d73180814434e0284796b2/cadfael.txt","filename":"cadfael.txt","language":"Text"}},"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"description":"Cadfael: order of episodes in French DVD edition","created_at":"2012-02-28T19:44:42Z","git_pull_url":"git://gist.github.com/dcb7de17e8a52b74541d.git","id":"dcb7de17e8a52b74541d","html_url":"https://gist.github.com/dcb7de17e8a52b74541d"}] + diff --git a/test/ReplayData/IssueEvent.setUp.txt b/test/ReplayData/IssueEvent.setUp.txt new file mode 100644 index 00000000..78cb6f85 --- /dev/null +++ b/test/ReplayData/IssueEvent.setUp.txt @@ -0,0 +1,20 @@ +GET /user {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d3b188b1a66fc84e18abf036c64bf26b"'), ('date', 'Sat, 26 May 2012 19:42:55 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"private_gists":5,"type":"User","company":"Criteo","location":"Paris, France","hireable":false,"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","bio":"","following":24,"blog":"http://vincent-jacques.net","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","total_private_repos":5,"followers":13,"owned_private_repos":5,"disk_usage":17080,"collaborators":0,"html_url":"https://github.com/jacquev6","url":"https://api.github.com/users/jacquev6","name":"Vincent Jacques","login":"jacquev6","public_repos":11,"public_gists":3,"email":"vincent@vincent-jacques.net","id":327146,"plan":{"private_repos":5,"collaborators":1,"name":"micro","space":614400},"created_at":"2010-07-09T06:10:06Z"} + +GET /repos/jacquev6/PyGithub {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c00f18220757752286f6113bfb77720c"'), ('date', 'Sat, 26 May 2012 19:42:56 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"description":"Python library implementing the full Github API v3","full_name":"jacquev6/PyGithub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T18:33:41Z","forks":2,"mirror_url":null,"homepage":"http://vincent-jacques.net/PyGithub","ssh_url":"git@github.com:jacquev6/PyGithub.git","open_issues":15,"fork":false,"svn_url":"https://github.com/jacquev6/PyGithub","pushed_at":"2012-05-26T11:25:48Z","size":412,"html_url":"https://github.com/jacquev6/PyGithub","private":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","clone_url":"https://github.com/jacquev6/PyGithub.git","owner":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jacquev6","login":"jacquev6","id":327146},"name":"PyGithub","has_downloads":true,"language":"Python","watchers":14,"git_url":"git://github.com/jacquev6/PyGithub.git","id":3544490,"permissions":{"admin":true,"pull":true,"push":true},"created_at":"2012-02-25T12:53:47Z"} + +GET /repos/jacquev6/PyGithub/issues/28 {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('content-length', '2258'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"9b3ced08ac5fe826a1c5f4bd20422f17"'), ('date', 'Sat, 26 May 2012 19:42:56 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_issues":3,"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","description":"","id":93546},"number":28,"closed_by":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"patch_url":null,"diff_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28"} + +GET /repos/jacquev6/PyGithub/issues/28/events {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '1885'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"454e9714a70263aa32c28c9a62ab9b2c"'), ('date', 'Sat, 26 May 2012 19:42:57 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15819975","commit_id":null,"created_at":"2012-05-19T10:38:23Z","event":"subscribed","id":15819975,"actor":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15820048","commit_id":null,"created_at":"2012-05-19T10:42:25Z","event":"assigned","id":15820048,"actor":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16333938","commit_id":null,"created_at":"2012-05-26T14:58:27Z","event":"assigned","id":16333938,"actor":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146}},{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16333959","commit_id":null,"created_at":"2012-05-26T14:59:34Z","event":"closed","id":16333959,"actor":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146}}] + diff --git a/test/ReplayData/IssueEvent.testAttributes.txt b/test/ReplayData/IssueEvent.testAttributes.txt new file mode 100644 index 00000000..aadcbcb2 --- /dev/null +++ b/test/ReplayData/IssueEvent.testAttributes.txt @@ -0,0 +1,5 @@ +GET /repos/jacquev6/PyGithub/issues/events/15819975 {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '2430'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0c719d0498b6dd52dfa5a444e743397a"'), ('date', 'Sat, 26 May 2012 19:42:58 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15819975","issue":{"updated_at":"2012-05-26T14:59:33Z","body":"Body edited by PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","comments":0,"milestone":{"creator":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/1","number":1,"title":"Version 0.4","due_on":"2012-03-13T07:00:00Z","open_issues":0,"created_at":"2012-03-08T12:22:10Z","state":"closed","closed_issues":3,"description":"","id":93546},"number":28,"assignee":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"closed_at":"2012-05-26T14:59:33Z","title":"Issue created by PyGithub","labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","name":"Project management","color":"444444"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"created_at":"2012-05-19T10:38:23Z","state":"closed","user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"id":4653757,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"html_url":"https://github.com/jacquev6/PyGithub/issues/28"},"commit_id":null,"created_at":"2012-05-19T10:38:23Z","event":"subscribed","id":15819975,"actor":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146}} + diff --git a/test/ReplayData/Organization.testEditWithAllArguments.txt b/test/ReplayData/Organization.testEditWithAllArguments.txt new file mode 100644 index 00000000..29d69148 --- /dev/null +++ b/test/ReplayData/Organization.testEditWithAllArguments.txt @@ -0,0 +1,5 @@ +PATCH /orgs/BeaverSoftware {'Authorization': 'Basic login_and_password_removed'} {"name": "Name edited by PyGithub", "billing_email": "BeaverSoftware2@vincent-jacques.net", "company": "Company edited by PyGithub", "blog": "http://vincent-jacques.net", "location": "Location edited by PyGithub", "email": "BeaverSoftware2@vincent-jacques.net"} +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '833'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fe61098c87e054abfa5626e6a76bbcbd"'), ('date', 'Sat, 26 May 2012 20:50:35 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"public_gists":0,"type":"Organization","disk_usage":112,"private_gists":0,"public_repos":2,"url":"https://api.github.com/orgs/BeaverSoftware","total_private_repos":0,"plan":{"private_repos":0,"name":"free","space":307200},"blog":"http://vincent-jacques.net","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","owned_private_repos":0,"collaborators":0,"company":"Company edited by PyGithub","login":"BeaverSoftware","email":"BeaverSoftware2@vincent-jacques.net","followers":0,"name":"Name edited by PyGithub","created_at":"2012-02-09T19:20:12Z","location":"Location edited by PyGithub","id":1424031,"billing_email":"BeaverSoftware2@vincent-jacques.net","following":0,"html_url":"https://github.com/BeaverSoftware"} + diff --git a/test/ReplayData/Repository.testCreateKey.txt b/test/ReplayData/Repository.testCreateKey.txt new file mode 100644 index 00000000..4bd156ea --- /dev/null +++ b/test/ReplayData/Repository.testCreateKey.txt @@ -0,0 +1,5 @@ +POST /repos/jacquev6/PyGithub/keys {'Authorization': 'Basic login_and_password_removed'} {"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw== vincent@IDEE", "title": "Key added through PyGithub"} +201 +[('status', '201 Created'), ('x-ratelimit-remaining', '4955'), ('content-length', '505'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"0eb643b648f2ef29f38c2bcbce872e09"'), ('date', 'Sat, 26 May 2012 20:28:37 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/user/keys/2626761')] +{"url":"https://api.github.com/user/keys/2626761","key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==","verified":true,"title":"Key added through PyGithub","id":2626761} + diff --git a/test/ReplayData/RepositoryKey.setUp.txt b/test/ReplayData/RepositoryKey.setUp.txt new file mode 100644 index 00000000..d6f13e3b --- /dev/null +++ b/test/ReplayData/RepositoryKey.setUp.txt @@ -0,0 +1,15 @@ +GET /user {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4951'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"c9c1d83fa3d17bff8351444da9dedded"'), ('date', 'Sat, 26 May 2012 20:32:03 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"type":"User","disk_usage":17080,"hireable":false,"url":"https://api.github.com/users/jacquev6","plan":{"private_repos":5,"name":"micro","collaborators":1,"space":614400},"bio":"","total_private_repos":5,"company":"Criteo","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","public_gists":3,"blog":"http://vincent-jacques.net","email":"vincent@vincent-jacques.net","owned_private_repos":5,"followers":13,"name":"Vincent Jacques","private_gists":5,"collaborators":0,"created_at":"2010-07-09T06:10:06Z","location":"Paris, France","id":327146,"public_repos":11,"following":24,"html_url":"https://github.com/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"} + +GET /repos/jacquev6/PyGithub {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4950'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8794d5a568156ccd5c5753bfeb793ba1"'), ('date', 'Sat, 26 May 2012 20:32:04 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":14,"updated_at":"2012-05-26T18:33:41Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":2,"size":412,"private":false,"open_issues":15,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146,"avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-26T11:25:48Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"git_url":"git://github.com/jacquev6/PyGithub.git","html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"} + +GET /repos/jacquev6/PyGithub/keys/2626761 {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4949'), ('content-length', '505'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"96af29920ad069b76bc64517998db752"'), ('date', 'Sat, 26 May 2012 20:32:04 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"url":"https://api.github.com/user/keys/2626761","verified":true,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==","title":"Key added through PyGithub","id":2626761} + diff --git a/test/ReplayData/UserKey.setUp.txt b/test/ReplayData/UserKey.setUp.txt new file mode 100644 index 00000000..0bb79d4f --- /dev/null +++ b/test/ReplayData/UserKey.setUp.txt @@ -0,0 +1,5 @@ +GET /user/keys/2626650 {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4983'), ('content-length', '505'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7261ec55c886d6bf42e48d5bf9544586"'), ('date', 'Sat, 26 May 2012 19:53:21 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"url":"https://api.github.com/user/keys/2626650","key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==","verified":true,"title":"Key added through PyGithub","id":2626650} + diff --git a/test/ReplayData/UserKey.testDelete.txt b/test/ReplayData/UserKey.testDelete.txt new file mode 100644 index 00000000..01ce2db0 --- /dev/null +++ b/test/ReplayData/UserKey.testDelete.txt @@ -0,0 +1,5 @@ +DELETE /user/keys/2626650 {'Authorization': 'Basic login_and_password_removed'} null +204 +[('status', '204 No Content'), ('x-ratelimit-remaining', '4977'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 26 May 2012 19:58:16 GMT')] + + diff --git a/test/ReplayData/UserKey.testEditWithAllArguments.txt b/test/ReplayData/UserKey.testEditWithAllArguments.txt new file mode 100644 index 00000000..b1d33caa --- /dev/null +++ b/test/ReplayData/UserKey.testEditWithAllArguments.txt @@ -0,0 +1,5 @@ +PATCH /user/keys/2626650 {'Authorization': 'Basic login_and_password_removed'} {"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5Q58YmzZjU64prR5Pk91MfeHezOTgLqDYmepYbv3qjguiHtPai1vSai5WvUv3hgf9DArXsXE5CV6yoBIhAdGtpJKExHuQ2m4XTFCdbrgfQ3ypcSdgzEiQemyTA6TWwhbuwjJ1IqJMYOVLH+FBCkD8pyIpUDO7v3vaR2TCEuNwOS7lbsRsW3OkGYnUKjaPaCTe/inrqb7I3OE8cPhWJ3dM/zzzBj22J4LCNKhjKua8TFS74xGm3lNDZ6/twQl4n4xmrH/3tG+WOJicNO3JohNHqK9T0pILnr3epEyfdkBjcG0qXApqWvH2WipJhaH6of8Gdr0Z/K/7p8QFddmwNgdPQ==", "title": "Title edited by PyGithub"} +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4979'), ('content-length', '503'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"b3e0d8e43865724d6f36f15753984816"'), ('date', 'Sat, 26 May 2012 19:57:25 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"url":"https://api.github.com/user/keys/2626650","verified":true,"key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5Q58YmzZjU64prR5Pk91MfeHezOTgLqDYmepYbv3qjguiHtPai1vSai5WvUv3hgf9DArXsXE5CV6yoBIhAdGtpJKExHuQ2m4XTFCdbrgfQ3ypcSdgzEiQemyTA6TWwhbuwjJ1IqJMYOVLH+FBCkD8pyIpUDO7v3vaR2TCEuNwOS7lbsRsW3OkGYnUKjaPaCTe/inrqb7I3OE8cPhWJ3dM/zzzBj22J4LCNKhjKua8TFS74xGm3lNDZ6/twQl4n4xmrH/3tG+WOJicNO3JohNHqK9T0pILnr3epEyfdkBjcG0qXApqWvH2WipJhaH6of8Gdr0Z/K/7p8QFddmwNgdPQ==","title":"Title edited by PyGithub","id":2626650} + diff --git a/test/ReplayData/UserKey.testEditWithoutArguments.txt b/test/ReplayData/UserKey.testEditWithoutArguments.txt new file mode 100644 index 00000000..e5b359e9 --- /dev/null +++ b/test/ReplayData/UserKey.testEditWithoutArguments.txt @@ -0,0 +1,5 @@ +PATCH /user/keys/2626650 {'Authorization': 'Basic login_and_password_removed'} {} +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4981'), ('content-length', '505'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"7261ec55c886d6bf42e48d5bf9544586"'), ('date', 'Sat, 26 May 2012 19:57:18 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"url":"https://api.github.com/user/keys/2626650","key":"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==","verified":true,"title":"Key added through PyGithub","id":2626650} + diff --git a/test/Repository.py b/test/Repository.py index 868505f1..4323e7b1 100644 --- a/test/Repository.py +++ b/test/Repository.py @@ -131,3 +131,7 @@ class Repository( Framework.TestCase ): def testCreateGitBlob( self ): blob = self.repo.create_git_blob( "Blob created by PyGithub", "latin1" ) self.assertEqual( blob.sha, "5dd930f591cd5188e9ea7200e308ad355182a1d8" ) + + def testCreateKey( self ): + key = self.repo.create_key( "Key added through PyGithub", "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw== vincent@IDEE" ) + self.assertEqual( key.id, 2626761 ) diff --git a/test/RepositoryKey.py b/test/RepositoryKey.py new file mode 100644 index 00000000..0f8f952c --- /dev/null +++ b/test/RepositoryKey.py @@ -0,0 +1,25 @@ +import Framework + +class RepositoryKey( Framework.TestCase ): + def setUp( self ): + Framework.TestCase.setUp( self ) + self.key = self.g.get_user().get_repo( "PyGithub" ).get_key( 2626761 ) + + def testAttributes( self ): + self.assertEqual( self.key.id, 2626761 ) + self.assertEqual( self.key.key, "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==" ) + self.assertEqual( self.key.title, "Key added through PyGithub" ) + self.assertEqual( self.key.url, "https://api.github.com/user/keys/2626761" ) + self.assertEqual( self.key.verified, True ) + + def testEdit( self ): + pass + ### @todo Custom URL + # self.key.edit( "Title edited by PyGithub", "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5Q58YmzZjU64prR5Pk91MfeHezOTgLqDYmepYbv3qjguiHtPai1vSai5WvUv3hgf9DArXsXE5CV6yoBIhAdGtpJKExHuQ2m4XTFCdbrgfQ3ypcSdgzEiQemyTA6TWwhbuwjJ1IqJMYOVLH+FBCkD8pyIpUDO7v3vaR2TCEuNwOS7lbsRsW3OkGYnUKjaPaCTe/inrqb7I3OE8cPhWJ3dM/zzzBj22J4LCNKhjKua8TFS74xGm3lNDZ6/twQl4n4xmrH/3tG+WOJicNO3JohNHqK9T0pILnr3epEyfdkBjcG0qXApqWvH2WipJhaH6of8Gdr0Z/K/7p8QFddmwNgdPQ==" ) + # self.assertEqual( self.key.key, "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5Q58YmzZjU64prR5Pk91MfeHezOTgLqDYmepYbv3qjguiHtPai1vSai5WvUv3hgf9DArXsXE5CV6yoBIhAdGtpJKExHuQ2m4XTFCdbrgfQ3ypcSdgzEiQemyTA6TWwhbuwjJ1IqJMYOVLH+FBCkD8pyIpUDO7v3vaR2TCEuNwOS7lbsRsW3OkGYnUKjaPaCTe/inrqb7I3OE8cPhWJ3dM/zzzBj22J4LCNKhjKua8TFS74xGm3lNDZ6/twQl4n4xmrH/3tG+WOJicNO3JohNHqK9T0pILnr3epEyfdkBjcG0qXApqWvH2WipJhaH6of8Gdr0Z/K/7p8QFddmwNgdPQ==" ) + # self.assertEqual( self.key.title, "Title edited by PyGithub" ) + + def testDelete( self ): + pass + ### @todo Custom URL + # self.key.delete() diff --git a/test/UserKey.py b/test/UserKey.py new file mode 100644 index 00000000..3d0ce9df --- /dev/null +++ b/test/UserKey.py @@ -0,0 +1,24 @@ +import Framework + +class UserKey( Framework.TestCase ): + def setUp( self ): + Framework.TestCase.setUp( self ) + self.key = self.g.get_user().get_key( 2626650 ) + + def testAttributes( self ): + self.assertEqual( self.key.id, 2626650 ) + self.assertEqual( self.key.key, "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Mm0RjTNAYFfSCtUpO54usdseroUSIYg5KX4JoseTpqyiB/hqewjYLAdUq/tNIQzrkoEJWSyZrQt0ma7/YCyMYuNGd3DU6q6ZAyBeY3E9RyCiKjO3aTL2VKQGFvBVVmGdxGVSCITRphAcsKc/PF35/fg9XP9S0anMXcEFtdfMHz41SSw+XtE+Vc+6cX9FuI5qUfLGbkv8L1v3g4uw9VXlzq4GfTA+1S7D6mcoGHopAIXFlVr+2RfDKdSURMcB22z41fljO1MW4+zUS/4FyUTpL991es5fcwKXYoiE+x06VJeJJ1Krwx+DZj45uweV6cHXt2JwJEI9fWB6WyBlDejWw==" ) + self.assertEqual( self.key.title, "Key added through PyGithub" ) + self.assertEqual( self.key.url, "https://api.github.com/user/keys/2626650" ) + self.assertEqual( self.key.verified, True ) + + def testEditWithoutArguments( self ): + self.key.edit() + + def testEditWithAllArguments( self ): + self.key.edit( "Title edited by PyGithub", "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5Q58YmzZjU64prR5Pk91MfeHezOTgLqDYmepYbv3qjguiHtPai1vSai5WvUv3hgf9DArXsXE5CV6yoBIhAdGtpJKExHuQ2m4XTFCdbrgfQ3ypcSdgzEiQemyTA6TWwhbuwjJ1IqJMYOVLH+FBCkD8pyIpUDO7v3vaR2TCEuNwOS7lbsRsW3OkGYnUKjaPaCTe/inrqb7I3OE8cPhWJ3dM/zzzBj22J4LCNKhjKua8TFS74xGm3lNDZ6/twQl4n4xmrH/3tG+WOJicNO3JohNHqK9T0pILnr3epEyfdkBjcG0qXApqWvH2WipJhaH6of8Gdr0Z/K/7p8QFddmwNgdPQ==" ) + self.assertEqual( self.key.key, "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5Q58YmzZjU64prR5Pk91MfeHezOTgLqDYmepYbv3qjguiHtPai1vSai5WvUv3hgf9DArXsXE5CV6yoBIhAdGtpJKExHuQ2m4XTFCdbrgfQ3ypcSdgzEiQemyTA6TWwhbuwjJ1IqJMYOVLH+FBCkD8pyIpUDO7v3vaR2TCEuNwOS7lbsRsW3OkGYnUKjaPaCTe/inrqb7I3OE8cPhWJ3dM/zzzBj22J4LCNKhjKua8TFS74xGm3lNDZ6/twQl4n4xmrH/3tG+WOJicNO3JohNHqK9T0pILnr3epEyfdkBjcG0qXApqWvH2WipJhaH6of8Gdr0Z/K/7p8QFddmwNgdPQ==" ) + self.assertEqual( self.key.title, "Title edited by PyGithub" ) + + def testDelete( self ): + self.key.delete()