1
1
from 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
4
4
5
5
__all__ = [
6
6
"ServiceAccount" ,
7
7
"ServiceAccountManager" ,
8
8
"GroupServiceAccount" ,
9
- "GroupServiceAccountManager"
9
+ "GroupServiceAccountManager" ,
10
+ "GroupServiceAccountAccessToken" ,
11
+ "GroupServiceAccountAccessTokenManager"
10
12
]
11
13
12
14
@@ -33,3 +35,17 @@ class GroupServiceAccountManager(CreateMixin, DeleteMixin, ListMixin, RESTManage
33
35
_create_attrs = RequiredOptional (
34
36
optional = ("name" , "username" ),
35
37
)
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