diff --git a/github/AuthenticatedUser.py b/github/AuthenticatedUser.py index d57295d8..0067d12a 100644 --- a/github/AuthenticatedUser.py +++ b/github/AuthenticatedUser.py @@ -4,6 +4,7 @@ from Authorization import Authorization from UserKey import UserKey from Event import Event from NamedUser import NamedUser +from Organization import Organization AuthenticatedUser = GithubObject( "AuthenticatedUser", @@ -53,3 +54,9 @@ AuthenticatedUser._addAttributePolicy( ElementHasable() ) ) + +AuthenticatedUser._addAttributePolicy( + ExternalListOfObjects( "orgs", "org", Organization, + ListGetable( [], [] ) + ) +) diff --git a/github/GithubObjects.py b/github/GithubObjects.py index e4af79a6..4cbe9c59 100644 --- a/github/GithubObjects.py +++ b/github/GithubObjects.py @@ -8,41 +8,8 @@ from Authorization import Authorization from UserKey import UserKey from AuthenticatedUser import AuthenticatedUser from NamedUser import NamedUser +from Organization import Organization -Organization = GithubObject( - "Organization", - BaseUrl( lambda obj: "/orgs/" + obj.login ), - Identity( lambda obj: obj.login ), - InternalSimpleAttributes( - "login", "id", "url", "avatar_url", "name", "company", "blog", - "location", "email", "public_repos", "public_gists", "followers", - "following", "html_url", "created_at", "type", "gravatar_id", - # Seen only by owners - "disk_usage", "collaborators", "billing_email", "plan", "private_gists", - "total_private_repos", "owned_private_repos", - ), - Editable( [], [ "billing_email", "blog", "company", "email", "location", "name" ] ), - ExternalListOfObjects( "public_members", "public_member", NamedUser, - ListGetable( [], [] ), - ElementAddable(), - ElementRemovable(), - ElementHasable() - ), - ExternalListOfObjects( "members", "member", NamedUser, - ListGetable( [], [] ), - ElementRemovable(), - ElementHasable() - ), - ExternalListOfObjects( "events", "event", Event, - ListGetable( [], [] ) - ), -) - -AuthenticatedUser._addAttributePolicy( - ExternalListOfObjects( "orgs", "org", Organization, - ListGetable( [], [] ) - ) -) NamedUser._addAttributePolicy( ExternalListOfObjects( "orgs", "org", Organization, ListGetable( [], [] ) diff --git a/github/Organization.py b/github/Organization.py new file mode 100644 index 00000000..5be8e67b --- /dev/null +++ b/github/Organization.py @@ -0,0 +1,33 @@ +from GithubObject import * + +from NamedUser import NamedUser +from Event import Event + +Organization = GithubObject( + "Organization", + BaseUrl( lambda obj: "/orgs/" + obj.login ), + Identity( lambda obj: obj.login ), + InternalSimpleAttributes( + "login", "id", "url", "avatar_url", "name", "company", "blog", + "location", "email", "public_repos", "public_gists", "followers", + "following", "html_url", "created_at", "type", "gravatar_id", + # Seen only by owners + "disk_usage", "collaborators", "billing_email", "plan", "private_gists", + "total_private_repos", "owned_private_repos", + ), + Editable( [], [ "billing_email", "blog", "company", "email", "location", "name" ] ), + ExternalListOfObjects( "public_members", "public_member", NamedUser, + ListGetable( [], [] ), + ElementAddable(), + ElementRemovable(), + ElementHasable() + ), + ExternalListOfObjects( "members", "member", NamedUser, + ListGetable( [], [] ), + ElementRemovable(), + ElementHasable() + ), + ExternalListOfObjects( "events", "event", Event, + ListGetable( [], [] ) + ), +)