@@ -663,6 +663,14 @@ class RotateMixin(_RestManagerBase):
663663_path :Optional [str ]
664664gitlab :gitlab .Gitlab
665665
666+ @cli .register_custom_action (
667+ cls_names = (
668+ "PersonalAccessTokenManager" ,
669+ "GroupAccessTokenManager" ,
670+ "ProjectAccessTokenManager" ,
671+ ),
672+ optional = ("expires_at" ,),
673+ )
666674@exc .on_http_error (exc .GitlabRotateError )
667675def rotate (
668676self ,id :Union [str ,int ],expires_at :Optional [str ]= None ,** kwargs :Any
@@ -696,7 +704,12 @@ class ObjectRotateMixin(_RestObjectBase):
696704_updated_attrs :Dict [str ,Any ]
697705manager :base .RESTManager
698706
699- def rotate (self ,** kwargs :Any )-> None :
707+ @cli .register_custom_action (
708+ cls_names = ("PersonalAccessToken" ,"GroupAccessToken" ,"ProjectAccessToken" ),
709+ optional = ("expires_at" ,),
710+ )
711+ @exc .on_http_error (exc .GitlabRotateError )
712+ def rotate (self ,** kwargs :Any )-> Dict [str ,Any ]:
700713"""Rotate the current access token object.
701714
702715 Args:
@@ -711,6 +724,7 @@ def rotate(self, **kwargs: Any) -> None:
711724assert self .encoded_id is not None
712725server_data = self .manager .rotate (self .encoded_id ,** kwargs )
713726self ._update_attrs (server_data )
727+ return server_data
714728
715729
716730class SubscribableMixin (_RestObjectBase ):