Skip to content

Commit 23e8146

Browse files
author
Gauvain Pocentek
committed
Merge pull request #108 from guyzmo/using_requests_session
Adding a Session instance for all HTTP requests
2 parents 61bc24f + 858352b commit 23e8146

File tree

1 file changed

+39
-36
lines changed

1 file changed

+39
-36
lines changed

gitlab/__init__.py

+39-36
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)