diff options
Diffstat (limited to 'pygithub3/services/issues/milestones.py')
| -rw-r--r-- | pygithub3/services/issues/milestones.py | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/pygithub3/services/issues/milestones.py b/pygithub3/services/issues/milestones.py new file mode 100644 index 0000000..aba6dd4 --- /dev/null +++ b/pygithub3/services/issues/milestones.py @@ -0,0 +1,104 @@ +# -*- encoding: utf-8 -*- + +from pygithub3.services.base import Service + +class Milestones(Service): + """ Consume `Milestones API + <http://developer.github.com/v3/issues/milestones>`_ """ + + def list(self, user, repo): + """ List milestones for a repo + + :param str user: Username + :param str repo: Repo name + :returns: A :doc:`result` + """ + request = self.request_builder('issues.milestones.list', + user=user, + repo=repo) + return self._get_result(request) + + def get(self, user, repo, number): + """ Get a single milestone + + :param str user: Username + :param str repo: Repo name + :param int number: Milestone number + """ + request = self.request_builder('issues.milestones.get', user=user, + repo=repo, number=number) + return self._get(request) + + def create(self, + user, + repo, + title, + state=None, + description=None, + due_on=None): + """ Create a milestone + + :param str user: Username + :param str repo: Repo name + :param str title: Milestone title + :param str state: Milestone state + :param str description: Milestone description + :param date due_on: Milestone due date + + .. warning:: + You must be authenticated + """ + request = self.request_builder('issues.milestones.create', + user=user, + repo=repo, + body={'title': title, + 'state': state, + 'due_on': due_on}) + return self._post(request) + + def update(self, + user, + repo, + number, + title, + state=None, + description=None, + due_on=None): + """ Update a milestone + + :param str user: Username + :param str repo: Repo name + :param int number: Milestone number + :param str title: Milestone title + :param str state: Milestone state + :param str description: Milestone description + :param date due_on: Milestone due date + + .. warning:: + You must be authenticated + """ + request = self.request_builder('issues.milestones.update', + user=user, + repo=repo, + number=number, + body={'title': title, + 'state': state, + 'description': description, + 'due_on': due_on, }) + return self._patch(request) + + def delete(self, user, repo, number): + """ Delete a milestone + + :param str user: Username + :param str repo: Repo name + :param int number: Milestone number + + ... warning:: + You must be authenticated + """ + request = self.request_builder('issues.milestones.delete', + user=user, + repo=repo, + number=number) + self._delete(request) |
