| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent d6fa94e commit d66ef2d
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -59,6 +59,7 @@ class Gitlab(object): | |||
| 59 | 59 | Args: | |
| 60 | 60 | url (str): The URL of the GitLab server. | |
| 61 | 61 | private_token (str): The user private token | |
| 62 | + oauth_token (str): An oauth token | ||
| 62 | 63 | email (str): The user email or login. | |
| 63 | 64 | password (str): The user password (associated with email). | |
| 64 | 65 | ssl_verify (bool): Whether SSL certificates should be validated. | |
@@ -68,9 +69,9 @@ class Gitlab(object): | |||
| 68 | 69 | api_version (str): Gitlab API version to use (3 or 4) | |
| 69 | 70 | """ | |
| 70 | 71 | ||
| 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): | ||
| 74 | 75 | ||
| 75 | 76 | self._api_version = str(api_version) | |
| 76 | 77 | self._server_version = self._server_revision = None | |
@@ -79,7 +80,7 @@ def __init__(self, url, private_token=None, email=None, password=None, | |||
| 79 | 80 | self.timeout = timeout | |
| 80 | 81 | #: Headers that will be used in request to GitLab | |
| 81 | 82 | self.headers = {} | |
| 82 | - self._set_token(private_token) | ||
| 83 | + self._set_token(private_token, oauth_token) | ||
| 83 | 84 | #: The user email | |
| 84 | 85 | self.email = email | |
| 85 | 86 | #: The user password (associated with email) | |
@@ -204,7 +205,7 @@ def _credentials_auth(self): | |||
| 204 | 205 | manager = self._objects.CurrentUserManager(self) | |
| 205 | 206 | self.user = self._objects.CurrentUser(manager, r) | |
| 206 | 207 | ||
| 207 | - self._set_token(self.user.private_token) | ||
| 208 | + self._set_token(token=self.user.private_token) | ||
| 208 | 209 | ||
| 209 | 210 | def token_auth(self): | |
| 210 | 211 | """Performs an authentication using the private token.""" | |
@@ -285,14 +286,25 @@ def set_token(self, token): | |||
| 285 | 286 | warnings.warn('set_token() is deprecated, use the private_token ' | |
| 286 | 287 | 'argument of the Gitlab constructor.', | |
| 287 | 288 | DeprecationWarning) | |
| 288 | - self._set_token(token) | ||
| 289 | + self._set_token(token=token) | ||
| 289 | 290 | ||
| 290 | - def _set_token(self, token): | ||
| 291 | + def _set_token(self, token=None, oauth_token=None): | ||
| 291 | 292 | 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) | ||
| 293 | 304 | 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) | ||
| 296 | 308 | ||
| 297 | 309 | def set_credentials(self, email, password): | |
| 298 | 310 | """Sets the email/login and password for authentication. | |
| Back | FazBrowse Home | New Git URL |
0 commit comments