@@ -122,6 +122,9 @@ def __init__(self, url, private_token=None,
122122 #: Whether SSL certificates should be validated
123123 self .ssl_verify = ssl_verify
124124
125+ #: Create a session object for requests
126+ self .session = requests .Session ()
127+
125128 self .settings = ApplicationSettingsManager (self )
126129 self .user_keys = UserKeyManager (self )
127130 self .users = UserManager (self )
@@ -260,11 +263,11 @@ def _raw_get(self, path, content_type=None, **kwargs):
260263 headers = self ._create_headers (content_type )
261264
262265 try :
263- return requests .get (url ,
264- params = kwargs ,
265- headers = headers ,
266- verify = self .ssl_verify ,
267- timeout = self .timeout )
266+ return self . session .get (url ,
267+ params = kwargs ,
268+ headers = headers ,
269+ verify = self .ssl_verify ,
270+ timeout = self .timeout )
268271 except Exception as e :
269272 raise GitlabConnectionError (
270273 "Can't connect to GitLab server (%s)" % e )
@@ -298,10 +301,10 @@ def _raw_post(self, path, data=None, content_type=None, **kwargs):
298301 url = '%s%s' % (self ._url , path )
299302 headers = self ._create_headers (content_type )
300303 try :
301- return requests .post (url , params = kwargs , data = data ,
302- headers = headers ,
303- verify = self .ssl_verify ,
304- timeout = self .timeout )
304+ return self . session .post (url , params = kwargs , data = data ,
305+ headers = headers ,
306+ verify = self .ssl_verify ,
307+ timeout = self .timeout )
305308 except Exception as e :
306309 raise GitlabConnectionError (
307310 "Can't connect to GitLab server (%s)" % e )
@@ -311,10 +314,10 @@ def _raw_put(self, path, data=None, content_type=None, **kwargs):
311314 headers = self ._create_headers (content_type )
312315
313316 try :
314- return requests .put (url , data = data , params = kwargs ,
315- headers = headers ,
316- verify = self .ssl_verify ,
317- timeout = self .timeout )
317+ return self . session .put (url , data = data , params = kwargs ,
318+ headers = headers ,
319+ verify = self .ssl_verify ,
320+ timeout = self .timeout )
318321 except Exception as e :
319322 raise GitlabConnectionError (
320323 "Can't connect to GitLab server (%s)" % e )
@@ -324,11 +327,11 @@ def _raw_delete(self, path, content_type=None, **kwargs):
324327 headers = self ._create_headers (content_type )
325328
326329 try :
327- return requests .delete (url ,
328- params = kwargs ,
329- headers = headers ,
330- verify = self .ssl_verify ,
331- timeout = self .timeout )
330+ return self . session .delete (url ,
331+ params = kwargs ,
332+ headers = headers ,
333+ verify = self .ssl_verify ,
334+ timeout = self .timeout )
332335 except Exception as e :
333336 raise GitlabConnectionError (
334337 "Can't connect to GitLab server (%s)" % e )
@@ -366,9 +369,9 @@ def list(self, obj_class, **kwargs):
366369 del params [attribute ]
367370
368371 try :
369- r = requests .get (url , params = params , headers = headers ,
370- verify = self .ssl_verify ,
371- timeout = self .timeout )
372+ r = self . session .get (url , params = params , headers = headers ,
373+ verify = self .ssl_verify ,
374+ timeout = self .timeout )
372375 except Exception as e :
373376 raise GitlabConnectionError (
374377 "Can't connect to GitLab server (%s)" % e )
@@ -434,8 +437,8 @@ def get(self, obj_class, id=None, **kwargs):
434437 del params [attribute ]
435438
436439 try :
437- r = requests .get (url , params = params , headers = headers ,
438- verify = self .ssl_verify , timeout = self .timeout )
440+ r = self . session .get (url , params = params , headers = headers ,
441+ verify = self .ssl_verify , timeout = self .timeout )
439442 except Exception as e :
440443 raise GitlabConnectionError (
441444 "Can't connect to GitLab server (%s)" % e )
@@ -487,11 +490,11 @@ def delete(self, obj, id=None, **kwargs):
487490 del params [attribute ]
488491
489492 try :
490- r = requests .delete (url ,
491- params = params ,
492- headers = headers ,
493- verify = self .ssl_verify ,
494- timeout = self .timeout )
493+ r = self . session .delete (url ,
494+ params = params ,
495+ headers = headers ,
496+ verify = self .ssl_verify ,
497+ timeout = self .timeout )
495498 except Exception as e :
496499 raise GitlabConnectionError (
497500 "Can't connect to GitLab server (%s)" % e )
@@ -535,10 +538,10 @@ def create(self, obj, **kwargs):
535538 data = obj ._data_for_gitlab (extra_parameters = kwargs )
536539
537540 try :
538- r = requests .post (url , data = data ,
539- headers = headers ,
540- verify = self .ssl_verify ,
541- timeout = self .timeout )
541+ r = self . session .post (url , data = data ,
542+ headers = headers ,
543+ verify = self .ssl_verify ,
544+ timeout = self .timeout )
542545 except Exception as e :
543546 raise GitlabConnectionError (
544547 "Can't connect to GitLab server (%s)" % e )
@@ -585,10 +588,10 @@ def update(self, obj, **kwargs):
585588 data = obj ._data_for_gitlab (extra_parameters = kwargs , update = True )
586589
587590 try :
588- r = requests .put (url , data = data ,
589- headers = headers ,
590- verify = self .ssl_verify ,
591- timeout = self .timeout )
591+ r = self . session .put (url , data = data ,
592+ headers = headers ,
593+ verify = self .ssl_verify ,
594+ timeout = self .timeout )
592595 except Exception as e :
593596 raise GitlabConnectionError (
594597 "Can't connect to GitLab server (%s)" % e )
0 commit comments