diff options
author | Nejc Habjan <hab.nejc@gmail.com> | 2021-09-12 20:58:31 +0200 |
---|---|---|
committer | Nejc Habjan <hab.nejc@gmail.com> | 2021-09-13 08:55:22 +0200 |
commit | 4e8e4b4101059eee43c4c012b131355428ebc4f7 (patch) | |
tree | 17a058762552947a2c79757ed2e31b4a08050386 /gitlab | |
parent | ce4bc0daef355e2d877360c6e496c23856138872 (diff) | |
download | gitlab-feat/create-delete-token.tar.gz |
feat(objects): support Create and Revoke personal access token APIfeat/create-delete-token
Diffstat (limited to 'gitlab')
-rw-r--r-- | gitlab/v4/objects/personal_access_tokens.py | 23 | ||||
-rw-r--r-- | gitlab/v4/objects/users.py | 2 |
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" |