Skip to content

Commit 5388d19

Browse files
author
samcday
committed
Basic team support.
1 parent 123a01e commit 5388d19

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

gitlab.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,20 @@ def User(self, id=None, **kwargs):
345345
"""
346346
return self._getListOrObject(User, id, **kwargs)
347347

348+
def Team(self, id=None, **kwargs):
349+
"""Creates/gets/lists team(s) known by the GitLab server.
350+
351+
If id is None, returns a list of teams.
352+
353+
If id is an integer, returns the matching project (or raise a
354+
GitlabGetError if not found)
355+
356+
If id is a dict, create a new object using attributes provided. The
357+
object is NOT saved on the server. Use the save() method on the object
358+
to write it on the server.
359+
"""
360+
return self._getListOrObject(Team, id, **kwargs)
361+
348362

349363
class GitlabObject(object):
350364
_url = None
@@ -705,3 +719,31 @@ def Tag(self, id=None, **kwargs):
705719
return self._getListOrObject(ProjectTag, id,
706720
project_id=self.id,
707721
**kwargs)
722+
723+
724+
class TeamMember(GitlabObject):
725+
_url = '/user_teams/%(team_id)d/members'
726+
requiredCreateAttrs = ['user_id', 'access_level']
727+
canUpdate = False
728+
729+
730+
class TeamProject(GitlabObject):
731+
_url = '/user_teams/%(team_id)d/projects'
732+
_constructorTypes = {'owner': 'User', 'namespace': 'Group'}
733+
requiredCreateAttrs = ['project_id', 'greatest_access_level']
734+
canUpdate = False
735+
736+
737+
class Team(GitlabObject):
738+
_url = '/user_teams'
739+
requiredCreateAttrs = ['name', 'path']
740+
741+
def Member(self, id=None, **kwargs):
742+
return self._getListOrObject(TeamMember, id,
743+
team_id=self.id,
744+
**kwargs)
745+
746+
def Project(self, id=None, **kwargs):
747+
return self._getListOrObject(TeamProject, id,
748+
team_id=self.id,
749+
**kwargs)

0 commit comments

Comments
 (0)