aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/requests/issues
diff options
context:
space:
mode:
Diffstat (limited to 'pygithub3/requests/issues')
-rw-r--r--pygithub3/requests/issues/comments.py2
-rw-r--r--pygithub3/requests/issues/labels.py81
-rw-r--r--pygithub3/requests/issues/milestones.py38
3 files changed, 120 insertions, 1 deletions
diff --git a/pygithub3/requests/issues/comments.py b/pygithub3/requests/issues/comments.py
index 0601db3..638c9cf 100644
--- a/pygithub3/requests/issues/comments.py
+++ b/pygithub3/requests/issues/comments.py
@@ -39,4 +39,4 @@ class Edit(Request):
class Delete(Request):
uri = 'repos/{user}/{repo}/issues/comments/{id}'
- resource = Comment \ No newline at end of file
+ resource = Comment
diff --git a/pygithub3/requests/issues/labels.py b/pygithub3/requests/issues/labels.py
new file mode 100644
index 0000000..47337f9
--- /dev/null
+++ b/pygithub3/requests/issues/labels.py
@@ -0,0 +1,81 @@
+# -*- 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 validate_color(color):
+ color = color.get('color', '')
+ if not Label.is_valid_color(color):
+ raise ValidationError('colors must have 6 hexadecimal characters, '
+ 'without # in the beggining')
+
+
+class Update(Request):
+
+ uri = 'repos/{user}/{repo}/labels/{name}'
+ resource = Label
+ body_schema = {
+ 'schema': ('name', 'color'),
+ 'required': ('name', 'color' )
+ }
+
+ def validate_color(color):
+ color = color.get('color', '')
+ if not Label.is_valid_color(color):
+ raise ValidationError('colors must have 6 hexadecimal characters, '
+ 'without # in the beggining')
+
+
+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