11from gitlab .base import RESTManager , RESTObject
2- from gitlab .mixins import CreateMixin , DeleteMixin , ListMixin , ObjectDeleteMixin
3- from gitlab .types import RequiredOptional
2+ from gitlab .mixins import CreateMixin , DeleteMixin , ListMixin , RotateMixin , ObjectDeleteMixin , ObjectRotateMixin
3+ from gitlab .types import RequiredOptional , ArrayAttribute
44
55__all__ = [
66 "ServiceAccount" ,
77 "ServiceAccountManager" ,
88 "GroupServiceAccount" ,
9- "GroupServiceAccountManager"
9+ "GroupServiceAccountManager" ,
10+ "GroupServiceAccountAccessToken" ,
11+ "GroupServiceAccountAccessTokenManager"
1012]
1113
1214
@@ -33,3 +35,17 @@ class GroupServiceAccountManager(CreateMixin, DeleteMixin, ListMixin, RESTManage
3335 _create_attrs = RequiredOptional (
3436 optional = ("name" , "username" ),
3537 )
38+
39+
40+ class GroupServiceAccountAccessToken (ObjectRotateMixin , RESTObject ):
41+ pass
42+
43+
44+ class GroupServiceAccountAccessTokenManager (CreateMixin , RotateMixin , RESTManager ):
45+ _path = "/groups/{group_id}/service_accounts/{user_id}/personal_access_tokens"
46+ _obj_cls = GroupServiceAccountAccessToken
47+ _from_parent_attrs = {"group_id" : "id" , "user_id" : "user_id" }
48+ _create_attrs = RequiredOptional (
49+ required = ("name" , "scopes" ), optional = ("expires_at" ,),
50+ )
51+ _types = {"scopes" : ArrayAttribute }
0 commit comments