summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2017-08-05 07:52:34 +0200
committerGauvain Pocentek <gauvain@pocentek.net>2017-08-05 07:54:09 +0200
commit45c4aaf1604b710d2b15238f305cd7ca51317895 (patch)
tree869b633f2aa304d268d1650afe0fa8db7ae6c4f5
parent0e70dd9bfaa8025768e032820a3e0cba2da90611 (diff)
downloadgitlab-45c4aaf1604b710d2b15238f305cd7ca51317895.tar.gz
Fix Gitlab.version()
The method was overwritten by the result of the call.
-rw-r--r--gitlab/__init__.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/gitlab/__init__.py b/gitlab/__init__.py
index bdeb5c4..644a784 100644
--- a/gitlab/__init__.py
+++ b/gitlab/__init__.py
@@ -73,6 +73,7 @@ class Gitlab(object):
timeout=None, api_version='3', session=None):
self._api_version = str(api_version)
+ self._server_version = self._server_revision = None
self._url = '%s/api/v%s' % (url, api_version)
#: Timeout to use for requests to gitlab server
self.timeout = timeout
@@ -227,15 +228,17 @@ class Gitlab(object):
('unknown', 'unknwown') if the server doesn't
support this API call (gitlab < 8.13.0)
"""
- r = self._raw_get('/version')
- try:
- raise_error_from_response(r, GitlabGetError, 200)
- data = r.json()
- self.version, self.revision = data['version'], data['revision']
- except GitlabGetError:
- self.version = self.revision = 'unknown'
-
- return self.version, self.revision
+ if self._server_version is None:
+ r = self._raw_get('/version')
+ try:
+ raise_error_from_response(r, GitlabGetError, 200)
+ data = r.json()
+ self._server_version = data['version']
+ self._server_revision = data['revision']
+ except GitlabGetError:
+ self._server_version = self._server_revision = 'unknown'
+
+ return self._server_version, self._server_revision
def set_url(self, url):
"""Updates the GitLab URL.