@@ -385,6 +385,20 @@ def User(self, id=None, **kwargs):
385
385
"""
386
386
return self ._getListOrObject (User , id , ** kwargs )
387
387
388
+ def Team (self , id = None , ** kwargs ):
389
+ """Creates/gets/lists team(s) known by the GitLab server.
390
+
391
+ If id is None, returns a list of teams.
392
+
393
+ If id is an integer, returns the matching project (or raise a
394
+ GitlabGetError if not found)
395
+
396
+ If id is a dict, create a new object using attributes provided. The
397
+ object is NOT saved on the server. Use the save() method on the object
398
+ to write it on the server.
399
+ """
400
+ return self ._getListOrObject (Team , id , ** kwargs )
401
+
388
402
389
403
class GitlabObject (object ):
390
404
_url = None
@@ -852,3 +866,41 @@ def Tag(self, id=None, **kwargs):
852
866
return self ._getListOrObject (ProjectTag , id ,
853
867
project_id = self .id ,
854
868
** kwargs )
869
+
870
+
871
+ class TeamMember (GitlabObject ):
872
+ _url = '/user_teams/%(team_id)s/members'
873
+ canUpdate = False
874
+ requiredCreateAttrs = ['team_id' , 'user_id' , 'access_level' ]
875
+ requiredDeleteAttrs = ['team_id' ]
876
+ requiredGetAttrs = ['team_id' ]
877
+ requiredListAttrs = ['team_id' ]
878
+ shortPrintAttr = 'username'
879
+
880
+
881
+ class TeamProject (GitlabObject ):
882
+ _url = '/user_teams/%(team_id)s/projects'
883
+ _constructorTypes = {'owner' : 'User' , 'namespace' : 'Group' }
884
+ canUpdate = False
885
+ requiredCreateAttrs = ['team_id' , 'project_id' , 'greatest_access_level' ]
886
+ requiredDeleteAttrs = ['team_id' , 'project_id' ]
887
+ requiredGetAttrs = ['team_id' ]
888
+ requiredListAttrs = ['team_id' ]
889
+ shortPrintAttr = 'name'
890
+
891
+
892
+ class Team (GitlabObject ):
893
+ _url = '/user_teams'
894
+ shortPrintAttr = 'name'
895
+ requiredCreateAttrs = ['name' , 'path' ]
896
+ canUpdate = False
897
+
898
+ def Member (self , id = None , ** kwargs ):
899
+ return self ._getListOrObject (TeamMember , id ,
900
+ team_id = self .id ,
901
+ ** kwargs )
902
+
903
+ def Project (self , id = None , ** kwargs ):
904
+ return self ._getListOrObject (TeamProject , id ,
905
+ team_id = self .id ,
906
+ ** kwargs )
0 commit comments