Skip to content

Commit c30121b

Browse files
nathschmidtGauvain Pocentek
authored and
Gauvain Pocentek
committed
Oauth token support (#357)
1 parent 3bc3e60 commit c30121b

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

gitlab/__init__.py

+18-10
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,10 @@ class Gitlab(object):
7070
api_version (str): Gitlab API version to use (3 or 4)
7171
"""
7272

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

7778
self._api_version = str(api_version)
7879
self._server_version = self._server_revision = None
@@ -81,7 +82,8 @@ def __init__(self, url, private_token=None, email=None, password=None,
8182
self.timeout = timeout
8283
#: Headers that will be used in request to GitLab
8384
self.headers = {}
84-
self._set_token(private_token)
85+
self._set_token(private_token, oauth_token)
86+
8587
#: The user email
8688
self.email = email
8789
#: The user password (associated with email)
@@ -300,12 +302,18 @@ def set_token(self, token):
300302
DeprecationWarning)
301303
self._set_token(token)
302304

303-
def _set_token(self, token):
304-
self.private_token = token if token else None
305-
if token:
306-
self.headers["PRIVATE-TOKEN"] = token
307-
elif "PRIVATE-TOKEN" in self.headers:
308-
del self.headers["PRIVATE-TOKEN"]
305+
def _set_token(self, private_token, oauth_token=None):
306+
self.private_token = private_token if private_token else None
307+
self.oauth_token = oauth_token if oauth_token else None
308+
309+
if private_token:
310+
self.headers["PRIVATE-TOKEN"] = private_token
311+
if 'Authorization' in self.headers:
312+
del self.headers["Authorization"]
313+
elif oauth_token:
314+
self.headers['Authorization'] = "Bearer %s" % oauth_token
315+
if "PRIVATE-TOKEN" in self.headers:
316+
del self.headers["PRIVATE-TOKEN"]
309317

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

0 commit comments

Comments
 (0)