diff options
author | 2012-06-03 13:02:54 +0200 | |
---|---|---|
committer | 2012-06-03 13:02:54 +0200 | |
commit | 897671db979e64754de2c53cbbe83fcbae37bb02 (patch) | |
tree | 11ac9ede303971d2bcaf270d833fd4112c923509 /pygithub3/services/issues/labels.py | |
parent | Merge 'services/orgs' (diff) | |
parent | Change "Edit" to "Update" in docstring (diff) | |
download | python-github3-897671db979e64754de2c53cbbe83fcbae37bb02.tar.xz python-github3-897671db979e64754de2c53cbbe83fcbae37bb02.zip |
Merge branch 'services/issues' of https://github.com/alejandrogomez/python-github3 into services/issues
Conflicts:
docs/services.rst
pygithub3/github.py
pygithub3/requests/repos/__init__.py
Diffstat (limited to 'pygithub3/services/issues/labels.py')
-rw-r--r-- | pygithub3/services/issues/labels.py | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/pygithub3/services/issues/labels.py b/pygithub3/services/issues/labels.py new file mode 100644 index 0000000..6aea6e7 --- /dev/null +++ b/pygithub3/services/issues/labels.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.services.base import Service + + +class Labels(Service): + """ Consume `Labels API + <http://developer.github.com/v3/issues/labels>`_ """ + + def get(self, user, repo, name): + """ Get a single label + + :param str user: Username + :param str repo: Repo name + :param str name: Label name + """ + request = self.request_builder('issues.labels.get', user=user, + repo=repo, name=name) + return self._get(request) + + def create(self, user, repo, name, color): + """ Create a label on an repo + + :param str user: Username + :param str repo: Repo name + :param str name: Label name + :param str color: Label color + + .. warning:: + You must be authenticated + """ + request = self.request_builder('issues.labels.create', + user=user, + repo=repo, + body={'name': name, + 'color': color,}) + return self._post(request) + + def update(self, user, repo, name, new_name, color): + """ Update a label on an repo + + :param str user: Username + :param str repo: Repo name + :param str name: Label name + :param str name: Label new name + :param str color: Label color + + .. warning:: + You must be authenticated + """ + request = self.request_builder('issues.labels.update', + user=user, + repo=repo, + name=name, + body={'name': new_name, + 'color': color,}) + return self._patch(request) + + def delete(self, user, repo, name): + """ Delete a label on an repo + + :param str user: Username + :param str repo: Repo name + :param str name: Label name + + .. warning:: + You must be authenticated + """ + request = self.request_builder('issues.labels.delete', + user=user, + repo=repo, + name=name) + return self._delete(request) + + def list_by_repo(self, user, repo): + """ List all labels for a repo + + :param str user: Username + :param str repo: Repo name + :returns: A :doc:`result` + """ + request = self.request_builder('issues.labels.list_by_repo', + user=user, + repo=repo,) + return self._get(request) + + def list_by_issue(self, user, repo, number): + """ List labels for an issue + + :param str user: Username + :param str repo: Repo name + :param int number: Issue number + :returns: A :doc:`result` + """ + request = self.request_builder('issues.labels.list_by_issue', user=user, + repo=repo, number=number) + return self._get(request) + + def add_to_issue(self, user, repo, number, labels): + """ Add labels to issue + + :param str user: Username + :param str repo: Repo name + :param int number: Issue number + :param list labels: List of label names + :returns: A :doc:`result` + """ + request = self.request_builder('issues.labels.add_to_issue', + user=user, + repo=repo, + number=number, + body=labels) + return self._post(request) + + def remove_from_issue(self, user, repo, number, label): + """ Remove a label from an issue + + :param str user: Username + :param str repo: Repo name + :param int number: Issue number + :param str label: Label name + :returns: A :doc:`result` + """ + request = self.request_builder('issues.labels.remove_from_issue', + user=user, + repo=repo, + number=number, + name=label) + return self._delete(request) + + def replace_all(self, user, repo, number, labels): + """ Replace all labels of a issue + + :param str user: Username + :param str repo: Repo name + :param int number: Issue number + :param list labels: New labels + :returns: A :doc:`result` + """ + request = self.request_builder('issues.labels.replace_all', + user=user, + repo=repo, + number=number, + body=labels,) + return self._put(request) + + def remove_all(self, user, repo, number): + """ Remove all labels from a issue + + :param str user: Username + :param str repo: Repo name + :param int number: Issue number + :returns: A :doc:`result` + """ + request = self.request_builder('issues.labels.remove_all', + user=user, + repo=repo, + number=number,) + return self._delete(request) |