8000 Add support for GPG keys · python-gitlab/python-gitlab@d0c4118 · GitHub
[go: up one dir, main page]

Skip to content

Commit d0c4118

Browse files
author
Gauvain Pocentek
committed
Add support for GPG keys
Closes #355
1 parent aba713a commit d0c4118

File tree

4 files changed

+222
-138
lines changed

4 files changed

+222
-138
lines changed

docs/gl_objects/users.py

Lines changed: 19 additions & 52 deletions
1E0A
Original file line numberDiff line numberDiff line change
@@ -36,37 +36,44 @@
3636
# end block
3737

3838
# key list
39-
keys = gl.user_keys.list(user_id=1)
40-
# or
4139
keys = user.keys.list()
4240
# end key list
4341

4442
# key get
45-
key = gl.user_keys.list(1, user_id=1)
46-
# or
4743
key = user.keys.get(1)
4844
# end key get
4945

5046
# key create
51-
k = gl.user_keys.create({'title': 'my_key',
52-
'key': open('/home/me/.ssh/id_rsa.pub').read()},
53-
user_id=2)
54-
# or
5547
k = user.keys.create({'title': 'my_key',
5648
'key': open('/home/me/.ssh/id_rsa.pub').read()})
5749
# end key create
5850

5951
# key delete
60-
gl.user_keys.delete(1, user_id=1)
61-
# or
6252
user.keys.delete(1)
6353
# or
6454
key.delete()
6555
# end key delete
6656

67-
# email list
68-
emails = gl.user_emails.list(user_id=1)
57+
# gpgkey list
58+
gpgkeys = user.gpgkeys.list()
59+
# end gpgkey list
60+
61+
# gpgkey get
62+
gpgkey = user.gpgkeys.get(1)
63+
# end gpgkey get
64+
65+
# gpgkey create
66+
# get the key with `gpg --export -a GPG_KEY_ID`
67+
k = user.gpgkeys.create({'key': public_key_content})
68+
# end gpgkey create
69+
70+
# gpgkey delete
71+
user.gpgkeys.delete(1)
6972
# or
73+
gpgkey.delete()
74+
# end gpgkey delete
75+
76+
# email list
7077
emails = user.emails.list()
7178
# end email list
7279

@@ -77,14 +84,10 @@
7784
# end email get
7885

7986
# email create
80-
k = gl.user_emails.create({'email': 'foo@bar.com'}, user_id=2)
81-
# or
8287
k = user.emails.create({'email': 'foo@bar.com'})
8388
# end email create
8489

8590
# email delete
86-
gl.user_emails.delete(1, user_id=1)
87-
# or
8891
user.emails.delete(1)
8992
# or
9093
email.delete()
@@ -94,39 +97,3 @@
9497
gl.auth()
9598
current_user = gl.user
9699
# end currentuser get
97-
98-
# currentuser key list
99-
keys = gl.user.keys.list()
100-
# end currentuser key list
101-
102-
# currentuser key get
103-
key = gl.user.keys.get(1)
104-
# end currentuser key get
105-
106-
# currentuser key create
107-
key = gl.user.keys.create({'id': 'my_key', 'key': key_content})
108-
# end currentuser key create
109-
110-
# currentuser key delete
111-
gl.user.keys.delete(1)
112-
# or
113-
key.delete()
114-
# end currentuser key delete
115-
116-
# currentuser email list
117-
emails = gl.user.emails.list()
118-
# end currentuser email list
119-
120-
# currentuser email get
121-
email = gl.user.emails.get(1)
122-
# end currentuser email get
123-
124-
# currentuser email create
125-
email = gl.user.emails.create({'email': 'foo@bar.com'})
126-
# end currentuser email create
127-
128-
# currentuser email delete
129-
gl.user.emails.delete(1)
130-
# or
131-
email.delete()
132-
# end currentuser email delete

docs/gl_objects/users.rst

Lines changed: 132 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,32 @@
1-
#####
1+
######################
2+
Users and current user
3+
######################
4+
5+
The Gitlab API exposes user-related method that can be manipulated by admins
6+
only.
7+
8+
The currently logged-in user is also exposed.
9+
210
Users
3-
#####
11+
=====
12+
13+
References
14+
----------
15+
16+
* v4 API:
17+
18+
+ :class:`gitlab.v4.objects.User`
19+
+ :class:`gitlab.v4.objects.UserManager`
20+
+ :attr:`gitlab.Gitlab.users`
421

5-
Use :class:`~gitlab.objects.User` objects to manipulate repository branches.
22+
* v3 API:
623

7-
To create :class:`~gitlab.objects.User` objects use the
8-
:attr:`gitlab.Gitlab.users` manager.
24+
+ :class:`gitlab.v3.objects.User`
25+
+ :class:`gitlab.v3.objects.UserManager`
26+
+ :attr:`gitlab.Gitlab.users`
927

1028
Examples
11-
========
29+
--------
1230

1331
Get the list of users:
1432

@@ -52,14 +70,97 @@ Block/Unblock a user:
5270
:start-after: # block
5371
:end-before: # end block
5472

73+
Current User
74+
============
75+
76+
* v4 API:
77+
78+
+ :class:`gitlab.v4.objects.CurrentUser`
79+
+ :class:`gitlab.v4.objects.CurrentUserManager`
80+
+ :attr:`gitlab.Gitlab.user`
81+
82+
* v3 API:
83+
84+
+ :class:`gitlab.v3.objects.CurrentUser`
85+
+ :class:`gitlab.v3.objects.CurrentUserManager`
86+
+ :attr:`gitlab.Gitlab.user`
87+
88+
Examples
89+
--------
90+
91+
Get the current user:
92+
93+
.. literalinclude:: users.py
94+
:start-after: # currentuser get
95+
:end-before: # end currentuser get
96+
97+
GPG keys
98+
========
99+
100+
You can manipulate GPG keys for the current user and for the other users if you
101+
are admin.
102+
103+
* v4 API:
104+
105+
+ :class:`gitlab.v4.objects.CurrentUserGPGKey`
106+
+ :class:`gitlab.v4.objects.CurrentUserGPGKeyManager`
107+
+ :attr:`gitlab.v4.objects.CurrentUser.gpgkeys`
108+
+ :class:`gitlab.v4.objects.UserGPGKey`
109+
+ :class:`gitlab.v4.objects.UserGPGKeyManager`
110+
+ :attr:`gitlab.v4.objects.User.gpgkeys`
111+
112+
Exemples
113+
--------
114+
115+
List GPG keys for a user:
116+
117+
.. literalinclude:: users.py
118+
:start-after: # gpgkey list
119+
:end-before: # end gpgkey list
120+
121+
Get an GPG gpgkey for a user:
122+
123+
.. literalinclude:: users.py
124+
:start-after: # gpgkey get
125+
:end-before: # end gpgkey get
126+
127+
Create an GPG gpgkey for a user:
128+
129+
.. literalinclude:: users.py
130+
:start-after: # gpgkey create
131+
:end-before: # end gpgkey create
132+
133+
Delete an GPG gpgkey for a user:
134+
135+
.. literalinclude:: users.py
136+
:start-after: # gpgkey delete
137+
:end-before: # end gpgkey delete
138+
55139
SSH keys
56140
========
57141

58-
Use the :class:`~gitlab.objects.UserKey` objects to manage user keys.
142+
You can manipulate SSH keys for the current user and for the other users if you
143+
are admin.
144+
145+
* v4 API:
146+
147+
+ :class:`git F438 lab.v4.objects.CurrentUserKey`
148+
+ :class:`gitlab.v4.objects.CurrentUserKeyManager`
149+
+ :attr:`gitlab.v4.objects.CurrentUser.keys`
150+
+ :class:`gitlab.v4.objects.UserKey`
151+
+ :class:`gitlab.v4.objects.UserKeyManager`
152+
+ :attr:`gitlab.v4.objects.User.keys`
59153

60-
To create :class:`~gitlab.objects.UserKey` objects use the
61-
:attr:`User.keys <gitlab.objects.User.keys>` or :attr:`gitlab.Gitlab.user_keys`
62-
managers.
154+
* v3 API:
155+
156+
+ :class:`gitlab.v3.objects.CurrentUserKey`
157+
+ :class:`gitlab.v3.objects.CurrentUserKeyManager`
158+
+ :attr:`gitlab.v3.objects.CurrentUser.keys`
159+
+ :attr:`gitlab.Gitlab.user.keys`
160+
+ :class:`gitlab.v3.objects.UserKey`
161+
+ :class:`gitlab.v3.objects.UserKeyManager`
162+
+ :attr:`gitlab.v3.objects.User.keys`
163+
+ :attr:`gitlab.Gitlab.user_keys`
63164

64165
Exemples
65166
--------
@@ -91,10 +192,28 @@ Delete an SSH key for a user:
91192
Emails
92193
======
93194

94-
Use the :class:`~gitlab.objects.UserEmail` objects to manage user emails.
195+
You can manipulate emails for the current user and for the other users if you
196+
are admin.
197+
198+
* v4 API:
199+
200+
+ :class:`gitlab.v4.objects.CurrentUserEmail`
201+
+ :class:`gitlab.v4.objects.CurrentUserEmailManager`
202+
+ :attr:`gitlab.v4.objects.CurrentUser.emails`
203+
+ :class:`gitlab.v4.objects.UserEmail`
204+
+ :class:`gitlab.v4.objects.UserEmailManager`
205+
+ :attr:`gitlab.v4.objects.User.emails`
95206

96-
To create :class:`~gitlab.objects.UserEmail` objects use the :attr:`User.emails
97-
<gitlab.objects.User.emails>` or :attr:`gitlab.Gitlab.user_emails` managers.
207+
* v3 API:
208 10000 +
209+
+ :class:`gitlab.v3.objects.CurrentUserEmail`
210+
+ :class:`gitlab.v3.objects.CurrentUserEmailManager`
211+
+ :attr:`gitlab.v3.objects.CurrentUser.emails`
212+
+ :attr:`gitlab.Gitlab.user.emails`
213+
+ :class:`gitlab.v3.objects.UserEmail`
214+
+ :class:`gitlab.v3.objects.UserEmailManager`
215+
+ :attr:`gitlab.v3.objects.User.emails`
216+
+ :attr:`gitlab.Gitlab.user_emails`
98217

99218
Exemples
100219
--------
@@ -122,76 +241,3 @@ Delete an email for a user:
122241
.. literalinclude:: users.py
123242
:start-after: # email delete
124243
:end-before: # end email delete
125-
126-
Current User
127-
============
128-
129-
Use the :class:`~gitlab.objects.CurrentUser` object to get information about
130-
the currently logged-in user.
131-
132-
Use the :class:`~gitlab.objects.CurrentUserKey` objects to manage user keys.
133-
134-
To create :class:`~gitlab.objects.CurrentUserKey` objects use the
135-
:attr:`gitlab.objects.CurrentUser.keys <CurrentUser.keys>` manager.
136-
137-
Use the :class:`~gitlab.objects.CurrentUserEmail` objects to manage user emails.
138-
139-
To create :class:`~gitlab.objects.CurrentUserEmail` objects use the
140-
:attr:`gitlab.objects.CurrentUser.emails <CurrentUser.emails>` manager.
141-
142-
Examples
143-
--------
144-
145-
Get the current user:
146-
147-
.. literalinclude:: users.py
148-
:start-after: # currentuser get
149-
:end-before: # end currentuser get
150-
151-
List the current user SSH keys:
152-
153-
.. literalinclude:: users.py
154-
:start-after: # currentuser key list
155-
:end-before: # end currentuser key list
156-
157-
Get a key for the current user:
158-
159-
.. literalinclude:: users.py
160-
:start-after: # currentuser key get
161-
:end-before: # end currentuser key get
162-
163-
Create a key for the current user:
164-
165-
.. literalinclude:: users.py
166-
:start-after: # currentuser key create
167-
:end-before: # end currentuser key create
168-
169-
Delete a key for the current user:
170-
171-
.. literalinclude:: users.py
172-
:start-after: # currentuser key delete
173-
:end-before: # end currentuser key delete
174-
175-
List the current user emails:
176-
177-
.. literalinclude:: users.py
178-
:start-after: # currentuser email list
179-
:end-before: # end currentuser email list
180-
181-
Get an email for the current user:
182-
183-
.. literalinclude:: users.py
184-
:start-after: # currentuser email get
185-
:end-before: # end currentuser email get
186-
187-
Create an email for the current user:
188-
189-
.. literalinclude:: users.py
190-
:start-after: # currentuser email create
191-
:end-before: # end currentuser email create
192-
193-
Delete an email for the current user:
194-
195-
.. literalinclude:: users.py
196-
:start-after: # currentuser email delete
197-
:end-before: # end currentuser email delete

0 commit comments

Comments
 (0)
0