mirror of
https://github.com/status-im/PyGithub.git
synced 2026-08-31 19:01:15 +00:00
150 lines
4.3 KiB
Python
150 lines
4.3 KiB
Python
from GithubObject import *
|
|
|
|
from Event import Event
|
|
from Hook import Hook
|
|
from Authorization import Authorization
|
|
from UserKey import UserKey
|
|
from AuthenticatedUser import AuthenticatedUser
|
|
from NamedUser import NamedUser
|
|
from Organization import Organization
|
|
from GitRef import GitRef
|
|
from GitTree import GitTree
|
|
from GitCommit import GitCommit
|
|
from GitBlob import GitBlob
|
|
from GitTag import GitTag
|
|
from Label import Label
|
|
from Milestone import Milestone
|
|
from IssueComment import IssueComment
|
|
from IssueEvent import IssueEvent
|
|
from Issue import Issue
|
|
from Download import Download
|
|
from CommitComment import CommitComment
|
|
from Commit import Commit
|
|
from Tag import Tag
|
|
from Branch import Branch
|
|
from PullRequestFile import PullRequestFile
|
|
from PullRequestComment import PullRequestComment
|
|
from PullRequest import PullRequest
|
|
from RepositoryKey import RepositoryKey
|
|
from Repository import Repository
|
|
from Team import Team
|
|
from GistComment import GistComment
|
|
from Gist import Gist
|
|
|
|
#### Complete NamedUser
|
|
|
|
NamedUser._addAttributePolicy(
|
|
ExternalListOfObjects( "orgs", "org", Organization,
|
|
ListGetable( [], [] )
|
|
)
|
|
)
|
|
|
|
NamedUser._addAttributePolicy(
|
|
ExternalListOfObjects( "events", "event", Event,
|
|
ListGetable( [], [] )
|
|
)
|
|
)
|
|
|
|
def __getPublicEvents( user ):
|
|
return [
|
|
Event( user._github, attributes, lazy = True )
|
|
for attributes
|
|
in user._github._dataRequest( "GET", user._baseUrl() + "/events/public", None, None )
|
|
]
|
|
|
|
NamedUser._addAttributePolicy(
|
|
MethodFromCallable( "get_public_events", [], [], __getPublicEvents, SimpleTypePolicy( "list of `Event`" ) )
|
|
)
|
|
|
|
NamedUser._addAttributePolicy(
|
|
ExternalListOfObjects( "received_events", "received_event", Event,
|
|
ListGetable( [], [] )
|
|
)
|
|
)
|
|
|
|
def __getPublicReceivedEvents( user ):
|
|
return [
|
|
Event( user._github, attributes, lazy = True )
|
|
for attributes
|
|
in user._github._dataRequest( "GET", user._baseUrl() + "/received_events/public", None, None )
|
|
]
|
|
|
|
NamedUser._addAttributePolicy(
|
|
MethodFromCallable( "get_public_received_events", [], [], __getPublicReceivedEvents, SimpleTypePolicy( "list of `Event`" ) )
|
|
)
|
|
|
|
NamedUser._addAttributePolicy(
|
|
ExternalListOfObjects( "repos", "repo", Repository,
|
|
ListGetable( [], [ "type" ] ),
|
|
ElementGetable( [ "name" ], [], { "owner" : lambda user: { "login": user.login } } )
|
|
)
|
|
)
|
|
|
|
NamedUser._addAttributePolicy(
|
|
ExternalListOfObjects( "watched", "watched", Repository,
|
|
ListGetable( [], [] )
|
|
)
|
|
)
|
|
|
|
NamedUser._addAttributePolicy(
|
|
ExternalListOfObjects( "gists", "gist", Gist,
|
|
ListGetable( [], [] ),
|
|
)
|
|
)
|
|
|
|
#### Complete Repository
|
|
|
|
Repository._addAttributePolicy(
|
|
ExternalListOfObjects( "teams", "team", Team,
|
|
ListGetable( [], [] )
|
|
)
|
|
)
|
|
|
|
Repository._addAttributePolicy(
|
|
ExternalListOfObjects( "events", "event", Event,
|
|
ListGetable( [], [] )
|
|
),
|
|
)
|
|
|
|
def __getNetworkEvents( repo ):
|
|
return [
|
|
Event( repo._github, attributes, lazy = True )
|
|
for attributes
|
|
in repo._github._dataRequest( "GET", "/networks/" + repo.owner.login + "/" + repo.name + "/events", None, None )
|
|
]
|
|
|
|
Repository._addAttributePolicy(
|
|
MethodFromCallable( "get_network_events", [], [], __getNetworkEvents, SimpleTypePolicy( "list of `Event`" ) )
|
|
)
|
|
|
|
#### Complete Organization
|
|
|
|
Organization._addAttributePolicy(
|
|
ExternalListOfObjects( "repos", "repo", Repository,
|
|
ListGetable( [], [ "type" ] ),
|
|
ElementGetable( [ "name" ], [], { "owner" : lambda user: { "login": user.login } } ),
|
|
ElementCreatable( [ "name" ], [ "description", "homepage", "private", "has_issues", "has_wiki", "has_downloads", "team_id", ] )
|
|
)
|
|
)
|
|
|
|
def __createForkForOrg( org, repo ):
|
|
assert isinstance( repo, Repository )
|
|
return Repository( org._github, org._github._dataRequest( "POST", repo._baseUrl() + "/forks", { "org": org.login }, None ), lazy = True )
|
|
|
|
Organization._addAttributePolicy(
|
|
SeveralAttributePolicies( [ MethodFromCallable( "create_fork", [ "repo" ], [], __createForkForOrg, ObjectTypePolicy( Repository ) ) ], "Forking" )
|
|
)
|
|
|
|
Organization._addAttributePolicy(
|
|
ExternalListOfObjects( "teams", "team", Team,
|
|
ListGetable( [], [] ),
|
|
ElementCreatable( [ "name" ], [ "repo_names", "permission" ] )
|
|
)
|
|
)
|
|
|
|
Organization._addAttributePolicy(
|
|
ExternalListOfObjects( "events", "event", Event,
|
|
ListGetable( [], [] )
|
|
),
|
|
)
|