File tree 5 files changed +94
-0
lines changed
5 files changed +94
-0
lines changed Original file line number Diff line number Diff line change
1
+ ######################
2
+ Personal Access Tokens
3
+ ######################
4
+
5
+ Get a list of personal access tokens
6
+
7
+ References
8
+ ----------
9
+
10
+ * v4 API:
11
+
12
+ + :class: `gitlab.v4.objects.PersonalAccessToken `
13
+ + :class: `gitlab.v4.objects.PersonalAcessTokenManager `
14
+ + :attr: `gitlab.Gitlab.personal_access_tokens `
15
+
16
+ * GitLab API: https://docs.gitlab.com/ee/api/personal_access_tokens.html
17
+
18
+ Examples
19
+ --------
20
+
21
+ List personal access tokens::
22
+
23
+ access_tokens = gl.personal_access_tokens.list()
24
+ print(access_tokens[0].name)
25
+
26
+ List personal access tokens from other user_id (admin only)::
27
+
28
+ access_tokens = gl.personal_access_tokens.list(user_id=25)
Original file line number Diff line number Diff line change @@ -143,6 +143,7 @@ def __init__(
143
143
self .user_activities = objects .UserActivitiesManager (self )
144
144
self .applications = objects .ApplicationManager (self )
145
145
self .variables = objects .VariableManager (self )
146
+ self .personal_access_tokens = objects .PersonalAccessTokenManager (self )
146
147
147
148
def __enter__ (self ):
148
149
return self
Original file line number Diff line number Diff line change
1
+ """
2
+ GitLab API: https://docs.gitlab.com/ee/api/personal_access_tokens.html
3
+ """
4
+
5
+ import pytest
6
+ import responses
7
+
8
+
9
+ @pytest .fixture
10
+ def resp_list_personal_access_token ():
11
+ content = [
12
+ {
13
+ "id" : 4 ,
14
+ "name" : "Test Token" ,
15
+ "revoked" : False ,
16
+ "created_at" : "2020-07-23T14:31:47.729Z" ,
17
+ "scopes" : ["api" ],
18
+ "active" : True ,
19
+ "user_id" : 24 ,
20
+ "expires_at" : None ,
21
+ }
22
+ ]
23
+
24
+ with responses .RequestsMock (assert_all_requests_are_fired = False ) as rsps :
25
+ rsps .add (
26
+ method = responses .GET ,
27
+ url = "http://localhost/api/v4/personal_access_tokens" ,
28
+ json = content ,
29
+ content_type = "application/json" ,
30
+ status = 200 ,
31
+ )
32
+ yield rsps
33
+
34
+
35
+ def test_list_personal_access_tokens (gl , resp_list_personal_access_token ):
36
+ access_tokens = gl .personal_access_tokens .list ()
37
+ assert len (access_tokens ) == 1
38
+ assert access_tokens [0 ].revoked is False
39
+ assert access_tokens [0 ].name == "Test Token"
40
+
41
+
42
+ def test_list_personal_access_tokens_filter (gl , resp_list_personal_access_token ):
43
+ access_tokens = gl .personal_access_tokens .list (user_id = 24 )
44
+ assert len (access_tokens ) == 1
45
+ assert access_tokens [0 ].revoked is False
46
+ assert access_tokens [0 ].user_id == 24
Original file line number Diff line number Diff line change 69
69
from .users import *
70
70
from .variables import *
71
71
from .wikis import *
72
+ from .personal_access_tokens import *
72
73
73
74
74
75
# TODO: deprecate these in favor of gitlab.const.*
Original file line number Diff line number Diff line change
1
+ from gitlab .base import * # noqa
2
+ from gitlab .mixins import * # noqa
3
+
4
+
5
+ __all__ = [
6
+ "PersonalAccessToken" ,
7
+ "PersonalAccessTokenManager" ,
8
+ ]
9
+
10
+
11
+ class PersonalAccessToken (RESTObject ):
12
+ pass
13
+
14
+
15
+ class PersonalAccessTokenManager (ListMixin , RESTManager ):
16
+ _path = "/personal_access_tokens"
17
+ _obj_cls = PersonalAccessToken
18
+ _list_filters = ("user_id" ,)
You can’t perform that action at this time.
0 commit comments