@@ -73,6 +73,7 @@ def __init__(self, url, private_token=None, email=None, password=None,
73
73
timeout = None , api_version = '3' , session = None ):
74
74
75
75
self ._api_version = str (api_version )
76
+ self ._server_version = self ._server_revision = None
76
77
self ._url = '%s/api/v%s' % (url , api_version )
77
78
#: Timeout to use for requests to gitlab server
78
79
self .timeout = timeout
@@ -227,15 +228,17 @@ def version(self):
227
228
('unknown', 'unknwown') if the server doesn't
228
229
support this API call (gitlab < 8.13.0)
229
230
"""
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
239
242
240
243
def set_url (self , url ):
241
244
"""Updates the GitLab URL.
0 commit comments