summaryrefslogtreecommitdiff
path: root/gitlab/objects.py
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2016-10-23 16:16:54 +0200
committerGauvain Pocentek <gauvain@pocentek.net>2016-10-23 16:16:54 +0200
commitf332907457c897ad0483a0bffce3d01503445d0b (patch)
treed871082cc6b0fec206ea5c7a135fe4573039b1a2 /gitlab/objects.py
parent20fdbe870f161ad7c47c7d57ebb2b6952acba8be (diff)
downloadgitlab-f332907457c897ad0483a0bffce3d01503445d0b.tar.gz
Add support for boards API
This is not fully usable because the gitlab API has some limitations: - not possible to create boards programmatically - not possible to get labels ID (https://gitlab.com/gitlab-org/gitlab-ce/issues/23448)
Diffstat (limited to 'gitlab/objects.py')
-rw-r--r--gitlab/objects.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/gitlab/objects.py b/gitlab/objects.py
index 9ab1dc0..ad57d2f 100644
--- a/gitlab/objects.py
+++ b/gitlab/objects.py
@@ -925,6 +925,34 @@ class NamespaceManager(BaseManager):
obj_cls = Namespace
+class ProjectBoardList(GitlabObject):
+ _url = '/projects/%(project_id)s/boards/%(board_id)s/lists'
+ requiredUrlAttrs = ['project_id', 'board_id']
+ _constructorTypes = {'label': 'ProjectLabel'}
+ requiredCreateAttrs = ['label_id']
+ requiredUpdateAttrs = ['position']
+
+
+class ProjectBoardListManager(BaseManager):
+ obj_cls = ProjectBoardList
+
+
+class ProjectBoard(GitlabObject):
+ _url = '/projects/%(project_id)s/boards'
+ requiredUrlAttrs = ['project_id']
+ _constructorTypes = {'labels': 'ProjectBoardList'}
+ canGet = 'from_list'
+ canUpdate = False
+ canCreate = False
+ canDelete = False
+ managers = [('lists', ProjectBoardListManager,
+ [('project_id', 'project_id'), ('board_id', 'id')])]
+
+
+class ProjectBoardManager(BaseManager):
+ obj_cls = ProjectBoard
+
+
class ProjectBranch(GitlabObject):
_url = '/projects/%(project_id)s/repository/branches'
_constructorTypes = {'author': 'User', "committer": "User"}
@@ -1925,6 +1953,8 @@ class Project(GitlabObject):
managers = [
('accessrequests', ProjectAccessRequestManager,
[('project_id', 'id')]),
+ ('boards', ProjectBoardManager, [('project_id', 'id')]),
+ ('board_lists', ProjectBoardListManager, [('project_id', 'id')]),
('branches', ProjectBranchManager, [('project_id', 'id')]),
('builds', ProjectBuildManager, [('project_id', 'id')]),
('commits', ProjectCommitManager, [('project_id', 'id')]),