mirror of
https://github.com/RGBCube/GitHubWrapper
synced 2025-05-16 22:15:09 +00:00
add http.data meth and make owner optional in delete_repo and fix repo licenses
This commit is contained in:
parent
f75886bc92
commit
cc44cb67e5
3 changed files with 22 additions and 8 deletions
|
@ -9,6 +9,7 @@ from collections import namedtuple
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
import platform
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .main import File
|
from .main import File
|
||||||
|
@ -19,6 +20,7 @@ from .exceptions import *
|
||||||
from .exceptions import GistNotFound, RepositoryAlreadyExists, MissingPermissions
|
from .exceptions import GistNotFound, RepositoryAlreadyExists, MissingPermissions
|
||||||
from .objects import APIObject, User, Gist, Repository, Organization
|
from .objects import APIObject, User, Gist, Repository, Organization
|
||||||
from .urls import *
|
from .urls import *
|
||||||
|
__version__ = '0.0.1'
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'Paginator',
|
'Paginator',
|
||||||
|
@ -62,7 +64,7 @@ trace_config.on_request_end.append(on_req_end)
|
||||||
async def make_session(*, headers: dict[str, str], authorization: aiohttp.BasicAuth | None) -> aiohttp.ClientSession:
|
async def make_session(*, headers: dict[str, str], authorization: aiohttp.BasicAuth | None) -> aiohttp.ClientSession:
|
||||||
"""This makes the ClientSession, attaching the trace config and ensuring a UA header is present."""
|
"""This makes the ClientSession, attaching the trace config and ensuring a UA header is present."""
|
||||||
if not headers.get('User-Agent'):
|
if not headers.get('User-Agent'):
|
||||||
headers['User-Agent'] = 'Github-API-Wrapper'
|
headers['User-Agent'] = f'Github-API-Wrapper (https://github.com/VarMonke/Github-Api-Wrapper) @ {__version__} Python {platform.python_version()} aiohttp {aiohttp.__version__}'
|
||||||
|
|
||||||
session = aiohttp.ClientSession(
|
session = aiohttp.ClientSession(
|
||||||
auth=authorization,
|
auth=authorization,
|
||||||
|
@ -124,7 +126,7 @@ GithubUserData = GithubRepoData = GithubIssueData = GithubOrgData = GithubGistDa
|
||||||
class http:
|
class http:
|
||||||
def __init__(self, headers: dict[str, str | int], auth: aiohttp.BasicAuth | None):
|
def __init__(self, headers: dict[str, str | int], auth: aiohttp.BasicAuth | None):
|
||||||
if not headers.get('User-Agent'):
|
if not headers.get('User-Agent'):
|
||||||
headers['User-Agent'] = 'Github-API-Wrapper'
|
headers['User-Agent'] = f'Github-API-Wrapper (https://github.com/VarMonke/Github-Api-Wrapper) @ {__version__} Python {platform.python_version()} aiohttp {aiohttp.__version__}'
|
||||||
self._rates = Rates('', '', '', '', '')
|
self._rates = Rates('', '', '', '', '')
|
||||||
self.headers = headers
|
self.headers = headers
|
||||||
self.auth = auth
|
self.auth = auth
|
||||||
|
@ -158,6 +160,13 @@ class http:
|
||||||
trace_configs=config
|
trace_configs=config
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def data(self):
|
||||||
|
#return session headers and auth
|
||||||
|
headers = {**self.session.headers}
|
||||||
|
auth = {'username': self.auth.login, 'token': self.auth.password}
|
||||||
|
|
||||||
|
return {'headers': headers, 'auth': auth}
|
||||||
|
|
||||||
async def get_self(self) -> GithubUserData:
|
async def get_self(self) -> GithubUserData:
|
||||||
"""Returns the authenticated User's data"""
|
"""Returns the authenticated User's data"""
|
||||||
result = await self.session.get(SELF_URL)
|
result = await self.session.get(SELF_URL)
|
||||||
|
|
|
@ -60,7 +60,12 @@ class GHClient:
|
||||||
|
|
||||||
async def update_auth(self, username: str, token: str) -> None:
|
async def update_auth(self, username: str, token: str) -> None:
|
||||||
"""Allows you to input auth information after instantiating the client."""
|
"""Allows you to input auth information after instantiating the client."""
|
||||||
await self.http.update_auth(username, token)
|
#check if username and token is valid
|
||||||
|
await self.http.update_auth(username=username, token=token)
|
||||||
|
try:
|
||||||
|
await self.http.get_self()
|
||||||
|
except exceptions.InvalidToken as exc:
|
||||||
|
raise exceptions.InvalidToken from exc
|
||||||
|
|
||||||
async def start(self) -> 'GHClient':
|
async def start(self) -> 'GHClient':
|
||||||
"""Main entry point to the wrapper, this creates the ClientSession."""
|
"""Main entry point to the wrapper, this creates the ClientSession."""
|
||||||
|
@ -124,7 +129,7 @@ class GHClient:
|
||||||
async def create_repo(self, name: str, description: str = 'Repository created using Github-Api-Wrapper.', public: bool = False,gitignore: str = None, license: str = None) -> Repository:
|
async def create_repo(self, name: str, description: str = 'Repository created using Github-Api-Wrapper.', public: bool = False,gitignore: str = None, license: str = None) -> Repository:
|
||||||
return Repository(await self.http.create_repo(name,description,public,gitignore,license), self.http.session)
|
return Repository(await self.http.create_repo(name,description,public,gitignore,license), self.http.session)
|
||||||
|
|
||||||
async def delete_repo(self, owner: str = None, repo: str= None) -> None:
|
async def delete_repo(self, repo: str= None, owner: str = None) -> None:
|
||||||
"""Delete a Github repository, requires authorisation."""
|
"""Delete a Github repository, requires authorisation."""
|
||||||
owner = owner or self.username
|
owner = owner or self.username
|
||||||
return await self.http.delete_repo(owner, repo)
|
return await self.http.delete_repo(owner, repo)
|
||||||
|
|
|
@ -165,10 +165,10 @@ class Repository(APIObject):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if 'license' in key:
|
if 'license' in key:
|
||||||
if value is None:
|
if value is not None:
|
||||||
setattr(self, key,None)
|
setattr(self, key, value.get('name'))
|
||||||
setattr(self, key, value['name'])
|
continue
|
||||||
continue
|
setattr(self, key, None)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
setattr(self, key, value)
|
setattr(self, key, value)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue