diff options
Diffstat (limited to 'pygithub3/services/git_data')
-rw-r--r-- | pygithub3/services/git_data/__init__.py | 20 | ||||
-rw-r--r-- | pygithub3/services/git_data/blobs.py | 24 | ||||
-rw-r--r-- | pygithub3/services/git_data/commits.py | 29 | ||||
-rw-r--r-- | pygithub3/services/git_data/references.py | 67 | ||||
-rw-r--r-- | pygithub3/services/git_data/tags.py | 34 | ||||
-rw-r--r-- | pygithub3/services/git_data/trees.py | 34 |
6 files changed, 208 insertions, 0 deletions
diff --git a/pygithub3/services/git_data/__init__.py b/pygithub3/services/git_data/__init__.py new file mode 100644 index 0000000..a12ddea --- /dev/null +++ b/pygithub3/services/git_data/__init__.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.services.base import Service +from .blobs import Blobs +from .commits import Commits +from .references import References +from .tags import Tags +from .trees import Trees + +def GitData(Service): + """Consume `Git Data API <http://developer.github.com/v3/git/>`_""" + + def __init__(self, **config): + self.blobs = Blobs(**config) + self.commits = Commits(**config) + self.references = References(**config) + self.tags = Tags(**config) + self.trees = Trees(**config) + super(GitData, self).__init__(**config) diff --git a/pygithub3/services/git_data/blobs.py b/pygithub3/services/git_data/blobs.py new file mode 100644 index 0000000..d5baa2d --- /dev/null +++ b/pygithub3/services/git_data/blobs.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.services.base import Service + + +class Blobs(Service): + """Consume `Blobs API <http://developer.github.com/v3/git/blobs/>`_""" + + def get(self, sha, user=None, repo=None): + """Get a particular blob + + :param str sha: The sha of the blob to get + + """ + request = self.make_request('git_data.blobs.get', sha=sha, + user=user, repo=repo) + return self._get(request) + + def create(self, data, user=None, repo=None): + """Create a blob""" + request = self.make_request('git_data.blobs.create', body=data, + user=user, repo=repo) + return self._post(request) diff --git a/pygithub3/services/git_data/commits.py b/pygithub3/services/git_data/commits.py new file mode 100644 index 0000000..cdca300 --- /dev/null +++ b/pygithub3/services/git_data/commits.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.services.base import Service + + +class Commits(Service): + """Consume `Commits API <http://developer.github.com/v3/git/commits/>`_""" + + def get(self, sha, user=None, repo=None): + """get a commit from the current repo""" + request = self.make_request('git_data.commits.get', sha=sha, + user=user, repo=repo) + return self._get(request) + + def create(self, data, user=None, repo=None): + """create a commit on a repo + + :param dict data: Input. See `github commits doc`_ + :param str user: username + :param str repo: repository name + + """ + return self._post( + self.make_request('git_data.commits.create', user=user, repo=repo, + body=data) + ) + + diff --git a/pygithub3/services/git_data/references.py b/pygithub3/services/git_data/references.py new file mode 100644 index 0000000..8ae0865 --- /dev/null +++ b/pygithub3/services/git_data/references.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.services.base import Service + + +class References(Service): + """Consume `References API <http://developer.github.com/v3/git/refs/>`_""" + + def get(self, ref, user=None, repo=None): + """Get a reference. + + .. note:: + Remember that branch references look like "heads/<branch_name>" + + """ + return self._get( + self.make_request('git_data.references.get', ref=ref, user=user, + repo=repo) + ) + + def list(self, namespace='', user=None, repo=None): + """List all the references + + :param str namespace: Limit the request to a particular type of + reference. For example, ``heads`` or ``tags``. + + """ + return self._get( + self.make_request('git_data.references.list', user=user, repo=repo) + ) + + def create(self, body, user=None, repo=None): + """Create a reference + + :param dict body: Data describing the reference to create + :param str user: username + :param str repo: repository name + + """ + return self._post( + self.make_request('git_data.references.create', body=body, + user=user, repo=repo) + ) + + def update(self, ref, body, user=None, repo=None): + """Update an existing reference + + :param str ref: The SHA of the reference to update + :param dict body: data + + """ + return self._patch( + self.make_request('git_data.references.update', ref=ref, body=body, + user=user, repo=repo) + ) + + def delete(self, ref, user=None, repo=None): + """Delete a reference + + :param str ref: The SHA of the reference to delete + + """ + return self._delete( + self.make_request('git_data.references.delete', ref=ref, user=user, + repo=repo) + ) diff --git a/pygithub3/services/git_data/tags.py b/pygithub3/services/git_data/tags.py new file mode 100644 index 0000000..03d38ac --- /dev/null +++ b/pygithub3/services/git_data/tags.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.services.base import Service + + +class Tags(Service): + """Consume `Tags API <http://developer.github.com/v3/git/tags/>`_""" + + def get(self, sha, user=None, repo=None): + """Get a tag + + :param str sha: The sha of the tag to get. + :param str user: Username + :param str repo: Repository + + """ + return self._get( + self.make_request('git_data.tags.get', sha=sha, user=user, + repo=repo) + ) + + def create(self, body, user=None, repo=None): + """Create a tag + + :param dict body: Data describing the tag to create + :param str user: Username + :param str repo: Repository + + """ + return self._post( + self.make_request('git_data.tags.create', body=body, user=user, + repo=repo) + ) diff --git a/pygithub3/services/git_data/trees.py b/pygithub3/services/git_data/trees.py new file mode 100644 index 0000000..00e010b --- /dev/null +++ b/pygithub3/services/git_data/trees.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.services.base import Service + + +class Trees(Service): + """Consume `Trees API <http://developer.github.com/v3/git/trees/>`_""" + + def get(self, sha, recursive=False, user=None, repo=None): + """Get a tree object + + :param str sha: The SHA of the tree you want. + :param bool recursive: Whether to resolve each sub-tree belonging to + this tree + :param str user: Username + :param str repo: Repository + + """ + return self._get( + self.make_request('git_data.trees.get', sha=sha, + recursive=recursive, user=user, repo=repo) + ) + + def create(self, body, user=None, repo=None): + """Create a tree object + + :param dict body: Data describing the tree to create + + """ + return self._post( + self.make_request('git_data.trees.create', body=body, user=user, + repo=repo) + ) |