diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2016-10-23 16:16:54 +0200 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2016-10-23 16:16:54 +0200 |
commit | f332907457c897ad0483a0bffce3d01503445d0b (patch) | |
tree | d871082cc6b0fec206ea5c7a135fe4573039b1a2 /gitlab | |
parent | 20fdbe870f161ad7c47c7d57ebb2b6952acba8be (diff) | |
download | gitlab-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')
-rw-r--r-- | gitlab/__init__.py | 6 | ||||
-rw-r--r-- | gitlab/objects.py | 30 |
2 files changed, 36 insertions, 0 deletions
diff --git a/gitlab/__init__.py b/gitlab/__init__.py index 2699328..56a53c9 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -82,6 +82,10 @@ class Gitlab(object): namespaces (NamespaceManager): Manager for namespaces project_accessrequests (ProjectAccessRequestManager): Manager for GitLab projects access requests + project_boards (ProjectBoardManager): Manager for GitLab projects + boards + project_board_lists (ProjectBoardListManager): Manager for GitLab + project board lists project_branches (ProjectBranchManager): Manager for GitLab projects branches project_builds (ProjectBuildManager): Manager for GitLab projects @@ -175,6 +179,8 @@ class Gitlab(object): self.licenses = LicenseManager(self) self.namespaces = NamespaceManager(self) self.project_accessrequests = ProjectAccessRequestManager(self) + self.project_boards = ProjectBoardManager(self) + self.project_board_listss = ProjectBoardListManager(self) self.project_branches = ProjectBranchManager(self) self.project_builds = ProjectBuildManager(self) self.project_commits = ProjectCommitManager(self) 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')]), |