FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

activate oauth2 token support · python-gitlab/python-gitlab@d66ef2d · GitHub

Repository navigation

Commit d66ef2d

Browse files
Frust, Tobias (FWCC) - 111645
committed
activate oauth2 token support
1 parent d6fa94e commit d66ef2d

1 file changed

Lines changed: 22 additions & 10 deletions

File tree

‎gitlab/__init__.py‎

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class Gitlab(object):
5959
Args:
6060
url (str): The URL of the GitLab server.
6161
private_token (str): The user private token
62+
oauth_token (str): An oauth token
6263
email (str): The user email or login.
6364
password (str): The user password (associated with email).
6465
ssl_verify (bool): Whether SSL certificates should be validated.
@@ -68,9 +69,9 @@ class Gitlab(object):
6869
api_version (str): Gitlab API version to use (3 or 4)
6970
"""
7071

71-
def __init__(self, url, private_token=None, email=None, password=None,
72-
ssl_verify=True, http_username=None, http_password=None,
73-
timeout=None, api_version='3', session=None):
72+
def __init__(self, url, private_token=None, oauth_token=None, email=None,
73+
password=None, ssl_verify=True, http_username=None,
74+
http_password=None, timeout=None, api_version='3', session=None):
7475

7576
self._api_version = str(api_version)
7677
self._server_version = self._server_revision = None
@@ -79,7 +80,7 @@ def __init__(self, url, private_token=None, email=None, password=None,
7980
self.timeout = timeout
8081
#: Headers that will be used in request to GitLab
8182
self.headers = {}
82-
self._set_token(private_token)
83+
self._set_token(private_token, oauth_token)
8384
#: The user email
8485
self.email = email
8586
#: The user password (associated with email)
@@ -204,7 +205,7 @@ def _credentials_auth(self):
204205
manager = self._objects.CurrentUserManager(self)
205206
self.user = self._objects.CurrentUser(manager, r)
206207

207-
self._set_token(self.user.private_token)
208+
self._set_token(token=self.user.private_token)
208209

209210
def token_auth(self):
210211
"""Performs an authentication using the private token."""
@@ -285,14 +286,25 @@ def set_token(self, token):
285286
warnings.warn('set_token() is deprecated, use the private_token '
286287
'argument of the Gitlab constructor.',
287288
DeprecationWarning)
288-
self._set_token(token)
289+
self._set_token(token=token)
289290

290-
def _set_token(self, token):
291+
def _set_token(self, token=None, oauth_token=None):
291292
self.private_token = token if token else None
292-
if token:
293+
self.oauth_token = oauth_token if oauth_token else None
294+
295+
if token is not None and oauth_token is not None:
296+
raise GitlabAuthenticationError("Private and OAuth token both "
297+
"provided: define only one")
298+
299+
if oauth_token:
300+
self.headers.pop("PRIVATE-TOKEN", None)
301+
self.headers["Authorization"] = "Bearer %s" % oauth_token
302+
elif token:
303+
self.headers.pop("Authorization", None)
293304
self.headers["PRIVATE-TOKEN"] = token
294-
elif "PRIVATE-TOKEN" in self.headers:
295-
del self.headers["PRIVATE-TOKEN"]
305+
else:
306+
self.headers.pop("PRIVATE-TOKEN", None)
307+
self.headers.pop("Authorization", None)
296308

297309
def set_credentials(self, email, password):
298310
"""Sets the email/login and password for authentication.

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL