From a9651e023fbd867a272c36ee339cfdb55bda6c0d Mon Sep 17 00:00:00 2001 From: Nathan Schmidt Date: Thu, 2 Nov 2017 14:27:40 +1100 Subject: [PATCH 1/3] Adds oauth token support --- gitlab/__init__.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/gitlab/__init__.py b/gitlab/__init__.py index b72103059..19f84ed14 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -70,7 +70,7 @@ class Gitlab(object): api_version (str): Gitlab API version to use (3 or 4) """ - def __init__(self, url, private_token=None, email=None, password=None, + def __init__(self, url, private_token=None, oauth_token=None, email=None, password=None, ssl_verify=True, http_username=None, http_password=None, timeout=None, api_version='3', session=None): @@ -81,7 +81,8 @@ def __init__(self, url, private_token=None, email=None, password=None, self.timeout = timeout #: Headers that will be used in request to GitLab self.headers = {} - self._set_token(private_token) + self._set_token(private_token, oauth_token) + #: The user email self.email = email #: The user password (associated with email) @@ -289,12 +290,18 @@ def set_token(self, token): DeprecationWarning) self._set_token(token) - def _set_token(self, token): - self.private_token = token if token else None - if token: - self.headers["PRIVATE-TOKEN"] = token - elif "PRIVATE-TOKEN" in self.headers: - del self.headers["PRIVATE-TOKEN"] + def _set_token(self, private_token, oauth_token=None): + self.private_token = private_token if private_token else None + self.oauth_token = oauth_token if oauth_token else None + + if private_token: + self.headers["PRIVATE-TOKEN"] = private_token + if 'Authorization' in self.headers: + del self.headers["Authorization"] + elif oauth_token: + self.headers['Authorization'] = "Bearer %s" % oauth_token + if "PRIVATE-TOKEN" in self.headers: + del self.headers["PRIVATE-TOKEN"] def set_credentials(self, email, password): """Sets the email/login and password for authentication. From c84308d051d3413836c81765d961e7c85dbb9c6d Mon Sep 17 00:00:00 2001 From: Nathan Schmidt Date: Thu, 2 Nov 2017 16:54:25 +1100 Subject: [PATCH 2/3] Fixed up linting issue --- gitlab/__init__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gitlab/__init__.py b/gitlab/__init__.py index 19f84ed14..17fe65e5c 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -70,9 +70,10 @@ class Gitlab(object): api_version (str): Gitlab API version to use (3 or 4) """ - def __init__(self, url, private_token=None, oauth_token=None, email=None, password=None, - ssl_verify=True, http_username=None, http_password=None, - timeout=None, api_version='3', session=None): + def __init__(self, url, private_token=None, oauth_token=None, email=None, + password=None, ssl_verify=True, http_username=None, + http_password=None,timeout=None, api_version='3', + session=None): self._api_version = str(api_version) self._server_version = self._server_revision = None From aa14acbc39d46939d41d773d3f930b2c180d0cac Mon Sep 17 00:00:00 2001 From: Nathan Schmidt Date: Thu, 2 Nov 2017 16:59:14 +1100 Subject: [PATCH 3/3] Fixed up linting issue --- gitlab/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitlab/__init__.py b/gitlab/__init__.py index 17fe65e5c..ace266b1f 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -72,7 +72,7 @@ class Gitlab(object): def __init__(self, url, private_token=None, oauth_token=None, email=None, password=None, ssl_verify=True, http_username=None, - http_password=None,timeout=None, api_version='3', + http_password=None, timeout=None, api_version='3', session=None): self._api_version = str(api_version)