Skip to content

Commit

Permalink
Merge pull request #1 from dekimsey/team-api
Browse files Browse the repository at this point in the history
Addded API for team access.
  • Loading branch information
Gauvain Pocentek committed Jul 7, 2013
2 parents 05ab473 + cb5b754 commit 8f65cf8
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions gitlab.py
Expand Up @@ -385,6 +385,20 @@ def User(self, id=None, **kwargs):
"""
return self._getListOrObject(User, id, **kwargs)

def Team(self, id=None, **kwargs):
"""Creates/gets/lists team(s) known by the GitLab server.
If id is None, returns a list of teams.
If id is an integer, returns the matching project (or raise a
GitlabGetError if not found)
If id is a dict, create a new object using attributes provided. The
object is NOT saved on the server. Use the save() method on the object
to write it on the server.
"""
return self._getListOrObject(Team, id, **kwargs)


class GitlabObject(object):
_url = None
Expand Down Expand Up @@ -852,3 +866,41 @@ def Tag(self, id=None, **kwargs):
return self._getListOrObject(ProjectTag, id,
project_id=self.id,
**kwargs)


class TeamMember(GitlabObject):
_url = '/user_teams/%(team_id)s/members'
canUpdate = False
requiredCreateAttrs = ['team_id', 'user_id', 'access_level']
requiredDeleteAttrs = ['team_id']
requiredGetAttrs = ['team_id']
requiredListAttrs = ['team_id']
shortPrintAttr = 'username'


class TeamProject(GitlabObject):
_url = '/user_teams/%(team_id)s/projects'
_constructorTypes = {'owner': 'User', 'namespace': 'Group'}
canUpdate = False
requiredCreateAttrs = ['team_id', 'project_id', 'greatest_access_level']
requiredDeleteAttrs = ['team_id', 'project_id']
requiredGetAttrs = ['team_id']
requiredListAttrs = ['team_id']
shortPrintAttr = 'name'


class Team(GitlabObject):
_url = '/user_teams'
shortPrintAttr = 'name'
requiredCreateAttrs = ['name', 'path']
canUpdate = False

def Member(self, id=None, **kwargs):
return self._getListOrObject(TeamMember, id,
team_id=self.id,
**kwargs)

def Project(self, id=None, **kwargs):
return self._getListOrObject(TeamProject, id,
team_id=self.id,
**kwargs)

0 comments on commit 8f65cf8

Please sign in to comment.