@@ -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