Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitef8fcf7

Browse files
authored
Merge pull request#1304 from python-gitlab/feat/personal-access-token-api
feat: add personal access token API
2 parentsbec2094 +2bb16fa commitef8fcf7

File tree

5 files changed

+94
-0
lines changed

5 files changed

+94
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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)

‎gitlab/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ def __init__(
143143
self.user_activities=objects.UserActivitiesManager(self)
144144
self.applications=objects.ApplicationManager(self)
145145
self.variables=objects.VariableManager(self)
146+
self.personal_access_tokens=objects.PersonalAccessTokenManager(self)
146147

147148
def__enter__(self):
148149
returnself
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
"""
2+
GitLab API: https://docs.gitlab.com/ee/api/personal_access_tokens.html
3+
"""
4+
5+
importpytest
6+
importresponses
7+
8+
9+
@pytest.fixture
10+
defresp_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+
withresponses.RequestsMock(assert_all_requests_are_fired=False)asrsps:
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+
yieldrsps
33+
34+
35+
deftest_list_personal_access_tokens(gl,resp_list_personal_access_token):
36+
access_tokens=gl.personal_access_tokens.list()
37+
assertlen(access_tokens)==1
38+
assertaccess_tokens[0].revokedisFalse
39+
assertaccess_tokens[0].name=="Test Token"
40+
41+
42+
deftest_list_personal_access_tokens_filter(gl,resp_list_personal_access_token):
43+
access_tokens=gl.personal_access_tokens.list(user_id=24)
44+
assertlen(access_tokens)==1
45+
assertaccess_tokens[0].revokedisFalse
46+
assertaccess_tokens[0].user_id==24

‎gitlab/v4/objects/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
from .usersimport*
7070
from .variablesimport*
7171
from .wikisimport*
72+
from .personal_access_tokensimport*
7273

7374

7475
# TODO: deprecate these in favor of gitlab.const.*
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
fromgitlab.baseimport*# noqa
2+
fromgitlab.mixinsimport*# noqa
3+
4+
5+
__all__= [
6+
"PersonalAccessToken",
7+
"PersonalAccessTokenManager",
8+
]
9+
10+
11+
classPersonalAccessToken(RESTObject):
12+
pass
13+
14+
15+
classPersonalAccessTokenManager(ListMixin,RESTManager):
16+
_path="/personal_access_tokens"
17+
_obj_cls=PersonalAccessToken
18+
_list_filters= ("user_id",)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp