Source code for IGitt.GitLab.GitLabTeam
"""
Contains the GitLab Team implementation.
"""
from typing import Set
from IGitt.GitLab import GitLabMixin
from IGitt.GitLab.GitLabUser import GitLabUser
from IGitt.Interfaces import get
[docs]class GitLabTeam(GitLabMixin):
"""
Represents a Team on GitLab.
"""
def __init__(self, token, group_id):
"""
:param group_id: The id of the group.
"""
self._token = token
self._id = group_id
self._url = '/groups/{group_id}'.format(group_id=group_id)
@property
def name(self) -> str:
"""
Name of the team.
"""
return self.data['name']
@property
def id(self) -> int:
"""
Retrieves the id of the team.
"""
return self._id
@property
def description(self) -> str:
"""
Returns the description of this team.
"""
return self.data['description']
@property
def members(self) -> Set[GitLabUser]:
"""
Returns the user handles of all members of this team.
"""
return {
GitLabUser.from_data(user, self._token, user['id'])
for user in get(
self._token, self.url + '/members'
)
}
[docs] def is_member(self, username):
"""
Checks if given username is member of this team.
"""
usernames = [user.username for user in self.members]
return True if username in usernames else False
@property
def get_organization(self):
"""
Returns parent team.
"""
if self.data['parent_id']:
return GitLabTeam(self._token, self.data['parent_id'])
return None