Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b3dd089

Browse files
Rolf OffermannsJohnVillalovos
authored andcommitted
feat(api): Add support for group service account access tokens.
Fixes #2946
1 parent 80bc508 commit b3dd089

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

gitlab/v4/objects/service_accounts.py

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
from gitlab.base import RESTObject
2-
from gitlab.mixins import CreateMixin, DeleteMixin, ListMixin, ObjectDeleteMixin
3-
from gitlab.types import RequiredOptional
2+
from gitlab.mixins import (
3+
CreateMixin,
4+
DeleteMixin,
5+
ListMixin,
6+
ObjectDeleteMixin,
7+
ObjectRotateMixin,
8+
RotateMixin,
9+
)
10+
from gitlab.types import ArrayAttribute, RequiredOptional
411

512
__all__ = [
613
"ServiceAccount",
714
"ServiceAccountManager",
815
"GroupServiceAccount",
916
"GroupServiceAccountManager",
17+
"GroupServiceAccountAccessToken",
18+
"GroupServiceAccountAccessTokenManager",
1019
]
1120

1221

1322
class ServiceAccount(RESTObject):
1423
pass
1524

1625

17-
class ServiceAccountManager(CreateMixin, ListMixin, RESTManager):
26+
class ServiceAccountManager(CreateMixin[ServiceAccount], ListMixin[ServiceAccount]):
1827
_path = "/service_accounts"
1928
_obj_cls = ServiceAccount
20-
_create_attrs = RequiredOptional(
21-
optional=("name", "username", "email"),
22-
)
29+
_create_attrs = RequiredOptional(optional=("name", "username", "email"))
2330

2431

2532
class GroupServiceAccount(ObjectDeleteMixin, RESTObject):
@@ -35,3 +42,20 @@ class GroupServiceAccountManager(
3542
_obj_cls = GroupServiceAccount
3643
_from_parent_attrs = {"group_id": "id"}
3744
_create_attrs = RequiredOptional(optional=("name", "username"))
45+
46+
47+
class GroupServiceAccountAccessToken(ObjectRotateMixin, RESTObject):
48+
pass
49+
50+
51+
class GroupServiceAccountAccessTokenManager(
52+
CreateMixin[GroupServiceAccountAccessToken],
53+
RotateMixin[GroupServiceAccountAccessToken],
54+
):
55+
_path = "/groups/{group_id}/service_accounts/{user_id}/personal_access_tokens"
56+
_obj_cls = GroupServiceAccountAccessToken
57+
_from_parent_attrs = {"group_id": "id", "user_id": "user_id"}
58+
_create_attrs = RequiredOptional(
59+
required=("name", "scopes"), optional=("expires_at",)
60+
)
61+
_types = {"scopes": ArrayAttribute}

0 commit comments

Comments
 (0)