@@ -122,6 +122,9 @@ def __init__(self, url, private_token=None,
122
122
#: Whether SSL certificates should be validated
123
123
self .ssl_verify = ssl_verify
124
124
125
+ #: Create a session object for requests
126
+ self .session = requests .Session ()
127
+
125
128
self .settings = ApplicationSettingsManager (self )
126
129
self .user_keys = UserKeyManager (self )
127
130
self .users = UserManager (self )
@@ -260,11 +263,11 @@ def _raw_get(self, path, content_type=None, **kwargs):
260
263
headers = self ._create_headers (content_type )
261
264
262
265
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 )
268
271
except Exception as e :
269
272
raise GitlabConnectionError (
270
273
"Can't connect to GitLab server (%s)" % e )
@@ -298,10 +301,10 @@ def _raw_post(self, path, data=None, content_type=None, **kwargs):
298
301
url = '%s%s' % (self ._url , path )
299
302
headers = self ._create_headers (content_type )
300
303
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 )
305
308
except Exception as e :
306
309
raise GitlabConnectionError (
307
310
"Can't connect to GitLab server (%s)" % e )
@@ -311,10 +314,10 @@ def _raw_put(self, path, data=None, content_type=None, **kwargs):
311
314
headers = self ._create_headers (content_type )
312
315
313
316
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 )
318
321
except Exception as e :
319
322
raise GitlabConnectionError (
320
323
"Can't connect to GitLab server (%s)" % e )
@@ -324,11 +327,11 @@ def _raw_delete(self, path, content_type=None, **kwargs):
324
327
headers = self ._create_headers (content_type )
325
328
326
329
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 )
332
335
except Exception as e :
333
336
raise GitlabConnectionError (
334
337
"Can't connect to GitLab server (%s)" % e )
@@ -365,10 +368,14 @@ def list(self, obj_class, **kwargs):
365
368
for attribute in obj_class .requiredUrlAttrs :
366
369
del params [attribute ]
367
370
371
+ # Also remove the next-url attribute that make queries fail
372
+ if 'next_url' in params :
373
+ del params ['next_url' ]
374
+
368
375
try :
369
- r = requests .get (url , params = params , headers = headers ,
370
- verify = self .ssl_verify ,
371
- timeout = self .timeout )
376
+ r = self . session .get (url , params = params , headers = headers ,
377
+ verify = self .ssl_verify ,
378
+ timeout = self .timeout )
372
379
except Exception as e :
373
380
raise GitlabConnectionError (
374
381
"Can't connect to GitLab server (%s)" % e )
@@ -434,8 +441,8 @@ def get(self, obj_class, id=None, **kwargs):
434
441
del params [attribute ]
435
442
436
443
try :
437
- r = requests .get (url , params = params , headers = headers ,
438
- verify = self .ssl_verify , timeout = self .timeout )
444
+ r = self . session .get (url , params = params , headers = headers ,
445
+ verify = self .ssl_verify , timeout = self .timeout )
439
446
except Exception as e :
440
447
raise GitlabConnectionError (
441
448
"Can't connect to GitLab server (%s)" % e )
@@ -487,11 +494,11 @@ def delete(self, obj, id=None, **kwargs):
487
494
del params [attribute ]
488
495
489
496
try :
490
- r = requests .delete (url ,
491
- params = params ,
492
- headers = headers ,
493
- verify = self .ssl_verify ,
494
- timeout = self .timeout )
497
+ r = self . session .delete (url ,
498
+ params = params ,
499
+ headers = headers ,
500
+ verify = self .ssl_verify ,
501
+ timeout = self .timeout )
495
502
except Exception as e :
496
503
raise GitlabConnectionError (
497
504
"Can't connect to GitLab server (%s)" % e )
@@ -535,10 +542,10 @@ def create(self, obj, **kwargs):
535
542
data = obj ._data_for_gitlab (extra_parameters = kwargs )
536
543
537
544
try :
538
- r = requests .post (url , data = data ,
539
- headers = headers ,
540
- verify = self .ssl_verify ,
541
- timeout = self .timeout )
545
+ r = self . session .post (url , data = data ,
546
+ headers = headers ,
547
+ verify = self .ssl_verify ,
548
+ timeout = self .timeout )
542
549
except Exception as e :
543
550
raise GitlabConnectionError (
544
551
"Can't connect to GitLab server (%s)" % e )
@@ -585,10 +592,10 @@ def update(self, obj, **kwargs):
585
592
data = obj ._data_for_gitlab (extra_parameters = kwargs , update = True )
586
593
587
594
try :
588
- r = requests .put (url , data = data ,
589
- headers = headers ,
590
- verify = self .ssl_verify ,
591
- timeout = self .timeout )
595
+ r = self . session .put (url , data = data ,
596
+ headers = headers ,
597
+ verify = self .ssl_verify ,
598
+ timeout = self .timeout )
592
599
except Exception as e :
593
600
raise GitlabConnectionError (
594
601
"Can't connect to GitLab server (%s)" % e )
0 commit comments