diff options
Diffstat (limited to 'gitlab/v4/objects')
-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" |