diff options
Diffstat (limited to 'pygithub3/services/repos.py')
-rw-r--r-- | pygithub3/services/repos.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/pygithub3/services/repos.py b/pygithub3/services/repos.py index d9de000..d88338f 100644 --- a/pygithub3/services/repos.py +++ b/pygithub3/services/repos.py @@ -1,9 +1,43 @@ #!/usr/bin/env python # -*- encoding: utf-8 -*- +import requests + from .base import Service, MimeTypeMixin +class Downloads(Service): + + def list(self, user=None, repo=None): + request = self.make_request('repos.downloads.list', + user=user, repo=repo) + return self._get_result(request) + + def get(self, id, user=None, repo=None): + request = self.make_request('repos.downloads.get', + id=id, user=user, repo=repo) + return self._get(request) + + def create(self, data, user=None, repo=None): + request = self.make_request('repos.downloads.create', + body=data, user=user, repo=repo) + download = self._post(request) + + # TODO: improve it. e.g Manage all with file desc + def upload(file_path): + body = download.ball_to_upload() + body['file'] = (file_path, open(file_path, 'rb')) + return requests.post(download.s3_url, files=body) + + download.upload = upload + return download + + def delete(self, id=id, user=None, repo=None): + request = self.make_request('repos.downloads.delete', + id=id, user=user, repo=repo) + self._delete(request) + + class Commits(Service, MimeTypeMixin): """ TODO: Pagination structure differs from usual @@ -47,6 +81,7 @@ class Commits(Service, MimeTypeMixin): comment_id=cid, user=user, repo=repo) self._delete(request) + class Collaborator(Service): def list(self, user=None, repo=None): @@ -74,6 +109,8 @@ class Repo(Service): def __init__(self, **config): self.collaborators = Collaborator(**config) + self.commits = Commits(**config) + self.downloads = Downloads(**config) super(Repo, self).__init__(**config) def list(self, user=None, type='all'): |