1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
from gitlab.base import RESTObject
from gitlab.mixins import (
CreateMixin,
DeleteMixin,
ObjectDeleteMixin,
ObjectRotateMixin,
RetrieveMixin,
RotateMixin,
)
from gitlab.types import ArrayAttribute, RequiredOptional
__all__ = ["GroupAccessToken", "GroupAccessTokenManager"]
class GroupAccessToken(ObjectDeleteMixin, ObjectRotateMixin, RESTObject):
pass
class GroupAccessTokenManager(
CreateMixin[GroupAccessToken],
DeleteMixin[GroupAccessToken],
RetrieveMixin[GroupAccessToken],
RotateMixin[GroupAccessToken],
):
_path = "/groups/{group_id}/access_tokens"
_obj_cls = GroupAccessToken
_from_parent_attrs = {"group_id": "id"}
_create_attrs = RequiredOptional(
required=("name", "scopes"), optional=("access_level", "expires_at")
)
_types = {"scopes": ArrayAttribute}
|