summaryrefslogtreecommitdiff
path: root/gitlab/client.py
diff options
context:
space:
mode:
authorNejc Habjan <hab.nejc@gmail.com>2021-01-31 19:17:14 +0100
committerJohn Villalovos <john@sodarock.com>2021-09-08 13:45:27 -0700
commit823628153ec813c4490e749e502a47716425c0f1 (patch)
tree86285c732aa5a75c8fd6611535dbf40bcb65b0c7 /gitlab/client.py
parent37424050a00d9b4f46aea9e35d9897478452506d (diff)
downloadgitlab-823628153ec813c4490e749e502a47716425c0f1.tar.gz
feat: default to gitlab.com if no URL given
BREAKING CHANGE: python-gitlab will now default to gitlab.com if no URL is given
Diffstat (limited to 'gitlab/client.py')
-rw-r--r--gitlab/client.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/gitlab/client.py b/gitlab/client.py
index 9db3a0e..6a1ed28 100644
--- a/gitlab/client.py
+++ b/gitlab/client.py
@@ -39,7 +39,7 @@ class Gitlab(object):
"""Represents a GitLab server connection.
Args:
- url (str): The URL of the GitLab server.
+ url (str): The URL of the GitLab server (defaults to https://gitlab.com).
private_token (str): The user private token
oauth_token (str): An oauth token
job_token (str): A CI job token
@@ -59,7 +59,7 @@ class Gitlab(object):
def __init__(
self,
- url: str,
+ url: Optional[str] = None,
private_token: Optional[str] = None,
oauth_token: Optional[str] = None,
job_token: Optional[str] = None,
@@ -79,7 +79,7 @@ class Gitlab(object):
self._api_version = str(api_version)
self._server_version: Optional[str] = None
self._server_revision: Optional[str] = None
- self._base_url = url.rstrip("/")
+ self._base_url = self._get_base_url(url)
self._url = "%s/api/v%s" % (self._base_url, api_version)
#: Timeout to use for requests to gitlab server
self.timeout = timeout
@@ -442,6 +442,17 @@ class Gitlab(object):
"verify": self.ssl_verify,
}
+ def _get_base_url(self, url: Optional[str] = None) -> str:
+ """Return the base URL with the trailing slash stripped.
+ If the URL is a Falsy value, return the default URL.
+ Returns:
+ str: The base URL
+ """
+ if not url:
+ return gitlab.const.DEFAULT_URL
+
+ return url.rstrip("/")
+
def _build_url(self, path: str) -> str:
"""Returns the full url from path.