summaryrefslogtreecommitdiff
path: root/gitlab/v4
diff options
context:
space:
mode:
authorNejc Habjan <hab.nejc@gmail.com>2021-09-12 20:58:31 +0200
committerNejc Habjan <hab.nejc@gmail.com>2021-09-13 08:55:22 +0200
commit4e8e4b4101059eee43c4c012b131355428ebc4f7 (patch)
tree17a058762552947a2c79757ed2e31b4a08050386 /gitlab/v4
parentce4bc0daef355e2d877360c6e496c23856138872 (diff)
downloadgitlab-feat/create-delete-token.tar.gz
feat(objects): support Create and Revoke personal access token APIfeat/create-delete-token
Diffstat (limited to 'gitlab/v4')
-rw-r--r--gitlab/v4/objects/personal_access_tokens.py23
-rw-r--r--gitlab/v4/objects/users.py2
2 files changed, 21 insertions, 4 deletions
diff --git a/gitlab/v4/objects/personal_access_tokens.py b/gitlab/v4/objects/personal_access_tokens.py
index a326bd6..6cdb305 100644
--- a/gitlab/v4/objects/personal_access_tokens.py
+++ b/gitlab/v4/objects/personal_access_tokens.py
@@ -1,17 +1,32 @@
-from gitlab.base import RESTManager, RESTObject
-from gitlab.mixins import ListMixin
+from gitlab.base import RequiredOptional, RESTManager, RESTObject
+from gitlab.mixins import CreateMixin, DeleteMixin, ListMixin, ObjectDeleteMixin
__all__ = [
"PersonalAccessToken",
"PersonalAccessTokenManager",
+ "UserPersonalAccessToken",
+ "UserPersonalAccessTokenManager",
]
-class PersonalAccessToken(RESTObject):
+class PersonalAccessToken(ObjectDeleteMixin, RESTObject):
pass
-class PersonalAccessTokenManager(ListMixin, RESTManager):
+class PersonalAccessTokenManager(DeleteMixin, ListMixin, RESTManager):
_path = "/personal_access_tokens"
_obj_cls = PersonalAccessToken
_list_filters = ("user_id",)
+
+
+class UserPersonalAccessToken(RESTObject):
+ pass
+
+
+class UserPersonalAccessTokenManager(CreateMixin, RESTManager):
+ _path = "/users/%(user_id)s/personal_access_tokens"
+ _obj_cls = UserPersonalAccessToken
+ _from_parent_attrs = {"user_id": "id"}
+ _create_attrs = RequiredOptional(
+ required=("name", "scopes"), optional=("expires_at",)
+ )
diff --git a/gitlab/v4/objects/users.py b/gitlab/v4/objects/users.py
index c0f8745..63da837 100644
--- a/gitlab/v4/objects/users.py
+++ b/gitlab/v4/objects/users.py
@@ -17,6 +17,7 @@ from gitlab.mixins import (
from .custom_attributes import UserCustomAttributeManager # noqa: F401
from .events import UserEventManager # noqa: F401
+from .personal_access_tokens import UserPersonalAccessTokenManager # noqa: F401
__all__ = [
"CurrentUserEmail",
@@ -122,6 +123,7 @@ class User(SaveMixin, ObjectDeleteMixin, RESTObject):
impersonationtokens: "UserImpersonationTokenManager"
keys: "UserKeyManager"
memberships: "UserMembershipManager"
+ personal_access_tokens: UserPersonalAccessTokenManager
projects: "UserProjectManager"
status: "UserStatusManager"