diff options
author | 2012-06-03 13:02:54 +0200 | |
---|---|---|
committer | 2012-06-03 13:02:54 +0200 | |
commit | 897671db979e64754de2c53cbbe83fcbae37bb02 (patch) | |
tree | 11ac9ede303971d2bcaf270d833fd4112c923509 /pygithub3/requests | |
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/requests')
-rw-r--r-- | pygithub3/requests/issues/__init__.py | 51 | ||||
-rw-r--r-- | pygithub3/requests/issues/comments.py | 42 | ||||
-rw-r--r-- | pygithub3/requests/issues/events.py | 22 | ||||
-rw-r--r-- | pygithub3/requests/issues/labels.py | 85 | ||||
-rw-r--r-- | pygithub3/requests/issues/milestones.py | 38 | ||||
-rw-r--r-- | pygithub3/requests/repos/__init__.py | 15 |
6 files changed, 253 insertions, 0 deletions
diff --git a/pygithub3/requests/issues/__init__.py b/pygithub3/requests/issues/__init__.py new file mode 100644 index 0000000..ca8afb1 --- /dev/null +++ b/pygithub3/requests/issues/__init__.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.requests.base import Request, ValidationError +from pygithub3.resources.issues import Issue + +class List(Request): + + uri = 'issues' + resource = Issue + body_schema = { + 'schema': ('filter', 'state', 'labels', 'sort', 'direction', 'since'), + 'required': () + } + + +class List_by_repo(Request): + + uri = 'repos/{user}/{repo}/issues' + resource = Issue + body_schema = { + 'schema': ('milestone', 'state', 'assignee', 'mentioned', 'labels', + 'sort', 'direction', 'since'), + 'required': () + } + + +class Get(Request): + + uri = 'repos/{user}/{repo}/issues/{number}' + resource = Issue + + +class Create(Request): + + uri = 'repos/{user}/{repo}/issues' + resource = Issue + body_schema = { + 'schema': ('title', 'body', 'assignee', 'milestone', 'labels'), + 'required': ('title', ) + } + + +class Edit(Request): + + uri = 'repos/{user}/{repo}/issues/{number}' + resource = Issue + body_schema = { + 'schema': ('title', 'body', 'assignee', 'state', 'milestone', 'lables'), + 'required': () + }
\ No newline at end of file diff --git a/pygithub3/requests/issues/comments.py b/pygithub3/requests/issues/comments.py new file mode 100644 index 0000000..638c9cf --- /dev/null +++ b/pygithub3/requests/issues/comments.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.requests.base import Request, ValidationError +from pygithub3.resources.issues import Comment + +class List(Request): + + uri = 'repos/{user}/{repo}/issues/{number}/comments' + resource = Comment + + +class Get(Request): + + uri = 'repos/{user}/{repo}/issues/comments/{id}' + resource = Comment + + +class Create(Request): + + uri = 'repos/{user}/{repo}/issues/{number}/comments' + resource = Comment + body_schema = { + 'schema': ('body', ), + 'required': ('body', ) + } + + +class Edit(Request): + + uri = 'repos/{user}/{repo}/issues/comments/{id}' + resource = Comment + body_schema = { + 'schema': ('body', ), + 'required': ('body', ) + } + + +class Delete(Request): + + uri = 'repos/{user}/{repo}/issues/comments/{id}' + resource = Comment diff --git a/pygithub3/requests/issues/events.py b/pygithub3/requests/issues/events.py new file mode 100644 index 0000000..dfefe7e --- /dev/null +++ b/pygithub3/requests/issues/events.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.requests.base import Request, ValidationError +from pygithub3.resources.issues import Event + +class List_by_issue(Request): + + uri = 'repos/{user}/{repo}/issues/{number}/events' + resource = Event + + +class List_by_repo(Request): + + uri = 'repos/{user}/{repo}/issues/events' + resource = Event + + +class Get(Request): + + uri = 'repos/{user}/{repo}/issues/events/{id}' + resource = Event diff --git a/pygithub3/requests/issues/labels.py b/pygithub3/requests/issues/labels.py new file mode 100644 index 0000000..75e11e4 --- /dev/null +++ b/pygithub3/requests/issues/labels.py @@ -0,0 +1,85 @@ +# -*- encoding: utf-8 -*- + +from pygithub3.requests.base import Request, ValidationError +from pygithub3.resources.issues import Label + + + +class Get(Request): + uri = 'repos/{user}/{repo}/labels/{name}' + resource = Label + + +class Create(Request): + uri = 'repos/{user}/{repo}/labels' + resource = Label + body_schema = { + 'schema': ('name', 'color'), + 'required': ('name', 'color' ) + } + + def clean_body(self): + color = self.body.get('color', '') + if not Label.is_valid_color(color): + raise ValidationError('colors must have 6 hexadecimal characters, ' + 'without # in the beggining') + else: + return self.body + + +class Update(Request): + + uri = 'repos/{user}/{repo}/labels/{name}' + resource = Label + body_schema = { + 'schema': ('name', 'color'), + 'required': ('name', 'color' ) + } + def clean_body(self): + color = self.body.get('color', '') + if not Label.is_valid_color(color): + raise ValidationError('colors must have 6 hexadecimal characters, ' + 'without # in the beggining') + else: + return self.body + + +class Delete(Request): + uri = 'repos/{user}/{repo}/labels/{name}' + resource = Label + + +class List_by_repo(Request): + uri = 'repos/{user}/{repo}/labels' + resource = Label + + + +class List_by_issue(Request): + uri = 'repos/{user}/{repo}/issues/{number}/labels' + resource = Label + + +class Add_to_issue(Request): + uri = 'repos/{user}/{repo}/issues/{number}/labels' + resource = Label + + +class Remove_from_issue(Request): + uri = 'repos/{user}/{repo}/issues/{number}/labels/{name}' + resource = Label + + +class Replace_all(Request): + uri = 'repos/{user}/{repo}/issues/{number}/labels' + resource = Label + + +class Remove_all(Request): + uri = 'repos/{user}/{repo}/issues/{number}/labels' + resource = Label + + +class List_by_milestone(Request): + uri = 'repos/{user}/{repo}/milestones/{number}/labels' + resource = Label diff --git a/pygithub3/requests/issues/milestones.py b/pygithub3/requests/issues/milestones.py new file mode 100644 index 0000000..355c3b0 --- /dev/null +++ b/pygithub3/requests/issues/milestones.py @@ -0,0 +1,38 @@ +# -*- encoding: utf-8 -*- + +from pygithub3.requests.base import Request +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',) + } + + +class Update(Request): + + uri = 'repos/{user}/{repo}/milestones/{number}' + resource = Milestone + body_schema = { + 'schema': ('title', 'state', 'description', 'due_on'), + 'required': ('title',) + } + + +class Delete(Request): + uri = 'repos/{user}/{repo}/milestones/{number}' + resource = Milestone diff --git a/pygithub3/requests/repos/__init__.py b/pygithub3/requests/repos/__init__.py index 7bbcf3e..e7594d7 100644 --- a/pygithub3/requests/repos/__init__.py +++ b/pygithub3/requests/repos/__init__.py @@ -4,6 +4,7 @@ from pygithub3.requests.base import Request, ValidationError from pygithub3.resources.orgs import Team from pygithub3.resources.repos import Repo, Tag, Branch from pygithub3.resources.users import User +from pygithub3.resources.issues import Label, Milestone class List(Request): @@ -79,3 +80,17 @@ class List_branches(Request): uri = 'repos/{user}/{repo}/branches' resource = Branch + +class List_labels(Request): + + uri = 'repos/{user}/{repo}/labels' + resource = Label + +class List_milestones(Request): + + uri = 'repos/{user}/{repo}/milestones' + resource = Milestone + body_schema = { + 'schema': ('state', 'sort', 'direction'), + 'required': () + } |