@@ -73,6 +73,7 @@ def __init__(self, url, private_token=None, email=None, password=None,
7373 timeout = None , api_version = '3' , session = None ):
7474
7575 self ._api_version = str (api_version )
76+ self ._server_version = self ._server_revision = None
7677 self ._url = '%s/api/v%s' % (url , api_version )
7778 #: Timeout to use for requests to gitlab server
7879 self .timeout = timeout
@@ -227,15 +228,17 @@ def version(self):
227228 ('unknown', 'unknwown') if the server doesn't
228229 support this API call (gitlab < 8.13.0)
229230 """
230- r = self ._raw_get ('/version' )
231- try :
232- raise_error_from_response (r , GitlabGetError , 200 )
233- data = r .json ()
234- self .version , self .revision = data ['version' ], data ['revision' ]
235- except GitlabGetError :
236- self .version = self .revision = 'unknown'
237-
238- return self .version , self .revision
231+ if self ._server_version is None :
232+ r = self ._raw_get ('/version' )
233+ try :
234+ raise_error_from_response (r , GitlabGetError , 200 )
235+ data = r .json ()
236+ self ._server_version = data ['version' ]
237+ self ._server_revision = data ['revision' ]
238+ except GitlabGetError :
239+ self ._server_version = self ._server_revision = 'unknown'
240+
241+ return self ._server_version , self ._server_revision
239242
240243 def set_url (self , url ):
241244 """Updates the GitLab URL.
0 commit comments