diff options
Diffstat (limited to 'pygithub3/requests/issues/milestones.py')
-rw-r--r-- | pygithub3/requests/issues/milestones.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pygithub3/requests/issues/milestones.py b/pygithub3/requests/issues/milestones.py new file mode 100644 index 0000000..4093c7e --- /dev/null +++ b/pygithub3/requests/issues/milestones.py @@ -0,0 +1,39 @@ +# -*- encoding: utf-8 -*- + +from pygithub3.requests.base import Request, ValidationError +from pygithub3.resources.issues import Milestone + + +class List(Request): + uri = 'repos/{user}/{repo}/milestones' + resource = Milestone + + +class Get(Request): + uri = 'repos/{user}/{repo}/milestones/{number}' + resource = Milestone + + +class Create(Request): + uri = 'repos/{user}/{repo}/milestones' + resource = Milestone + body_schema = { + 'schema': ('title', 'state', 'description', 'due_on'), + 'required': ('title',) + } + + def clean_body(self): # Test if API normalize it + state = self.body.get('state', '') + if state and state.lower() not in ('open', 'closed'): + raise ValidationError("'state' must be 'open' or 'closed'") + return self.body + + +class Update(Create): + + uri = 'repos/{user}/{repo}/milestones/{number}' + + +class Delete(Request): + uri = 'repos/{user}/{repo}/milestones/{number}' + resource = Milestone |