From 7fa5a05dc00b3cb76084a16a969b57933d015218 Mon Sep 17 00:00:00 2001 From: VarMonke Date: Tue, 5 Apr 2022 21:14:26 +0530 Subject: [PATCH] Fix kwargs + initialize make_repo --- Github/http.py | 16 ++++++++-------- Github/main.py | 27 ++++++++++----------------- 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/Github/http.py b/Github/http.py index 2b5a100..c07d947 100644 --- a/Github/http.py +++ b/Github/http.py @@ -128,23 +128,23 @@ async def get_user(session: aiohttp.ClientSession, username: str) -> User: # repo-related functions / utils -async def get_repo_from_name(session: aiohttp.ClientSession, owner: str, repo_name: str) -> Repository: +async def get_repo_from_name(session: aiohttp.ClientSession, owner: str, repo: str) -> Repository: """Returns a Repo object from the given owner and repo name.""" - result = await session.get(REPO_URL.format(owner, repo_name)) + result = await session.get(REPO_URL.format(owner, repo)) if result.status == 200: return Repository(await result.json(), session) raise RepositoryNotFound -async def get_repo_issue(session: aiohttp.ClientSession, owner: str, repo_name: str, issue_number: int) -> Issue: +async def get_repo_issue(session: aiohttp.ClientSession, owner: str, repo: str, issue: int) -> Issue: """Returns a single issue from the given owner and repo name.""" - result = await session.get(REPO_ISSUE_URL.format(owner, repo_name, issue_number)) + result = await session.get(REPO_ISSUE_URL.format(owner, repo, issue)) if result.status == 200: return Issue(await result.json(), session) raise IssueNotFound -async def make_repo(session: aiohttp.ClientSession, name: str) -> Repository: +async def create_repo(session: aiohttp.ClientSession, name: str, description: str, private: bool, gitignore_template: str, **kwargs) -> Repository: """Creates a new repo with the given name.""" - _data = {"name" : name} + _data = {"name" : name, "description" : description, "private" : private, "gitignore_template" : gitignore_template} result = await session.post(MAKE_REPO_URL, data= json.dumps(_data)) if result.status == 201: return Repository(await result.json(), session) @@ -156,9 +156,9 @@ async def make_repo(session: aiohttp.ClientSession, name: str) -> Repository: # org-related functions / utils -async def get_org(session: aiohttp.ClientSession, org_name: str) -> Organization: +async def get_org(session: aiohttp.ClientSession, org: str) -> Organization: """Returns an org's public data in JSON format.""" - result = await session.get(ORG_URL.format(org_name)) + result = await session.get(ORG_URL.format(org)) if result.status == 200: return Organization(await result.json(), session) raise OrganizationNotFound \ No newline at end of file diff --git a/Github/main.py b/Github/main.py index 2bf5432..d761f79 100644 --- a/Github/main.py +++ b/Github/main.py @@ -98,6 +98,7 @@ class GHClient: return wrapped return wrapper + @_cache(type='User') async def get_self(self) -> User: """Returns the authenticated User object.""" if self._auth: @@ -106,33 +107,25 @@ class GHClient: raise exceptions.NoAuthProvided @_cache(type='User') - async def get_user(self, **kwargs) -> User: + async def get_user(self, username) -> User: """Fetch a Github user from their username.""" - username = kwargs.get('user') return await http.get_user(self.session, username) @_cache(type='Repo') - async def get_repo(self, **kwargs) -> Repository: + async def get_repo(self, owner: str, repo: str) -> Repository: """Fetch a Github repository from it's name.""" - owner = kwargs.get('owner') - repo_name = kwargs.get('repo') - return await http.get_repo_from_name(self.session, owner, repo_name) + return await http.get_repo_from_name(self.session, owner, repo) - async def get_repo_issue(self, **kwargs) -> Issue: + async def get_issue(self, owner: str, repo: str, issue: int) -> Issue: """Fetch a Github repository from it's name.""" - owner = kwargs.get('owner') - repo_name = kwargs.get('repo') - issue_number = kwargs.get('issue') - return await http.get_repo_issue(self.session, owner, repo_name, issue_number) + return await http.get_repo_issue(self.session, owner, repo, issue) - async def make_repo(self, **kwargs) -> Repository: + async def create_repo(self, name: str, description: str, private: bool, gitignore_template: str) -> Repository: """Create a new Github repository.""" - name = kwargs.get('name') - return await http.make_repo(self.session, name) + return await http.make_repo(self.session, name, description, private, gitignore_template) - async def get_org(self, **kwargs) -> Organization: + async def get_org(self, org) -> Organization: """Fetch a Github organization from it's name""" - org_name = kwargs.get('org') - return await http.get_org(self.session, org_name) + return await http.get_org(self.session, org)