Skip to content

Commit 9f134fc

Browse files
author
Gauvain Pocentek
committed
Merge pull request #39 from mjmaenpaa/timeout
Timeout support
2 parents 4664ebd + d2e591e commit 9f134fc

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

gitlab.py

+23-10
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,19 @@ class GitlabAuthenticationError(Exception):
7575
class Gitlab(object):
7676
"""Represents a GitLab server connection"""
7777
def __init__(self, url, private_token=None,
78-
email=None, password=None, ssl_verify=True):
78+
email=None, password=None, ssl_verify=True, timeout=None):
7979
"""Stores informations about the server
8080
8181
url: the URL of the Gitlab server
8282
private_token: the user private token
8383
email: the user email/login
8484
password: the user password (associated with email)
85+
ssl_verify: (Passed to requests-library)
86+
timeout: (Passed to requests-library). Timeout to use for requests to
87+
gitlab server. Float or tuple(Float,Float).
8588
"""
8689
self._url = '%s/api/v3' % url
90+
self.timeout = timeout
8791
self.setToken(private_token)
8892
self.email = email
8993
self.password = password
@@ -141,7 +145,8 @@ def rawGet(self, path, **kwargs):
141145
try:
142146
return requests.get(url,
143147
headers=self.headers,
144-
verify=self.ssl_verify)
148+
verify=self.ssl_verify,
149+
timeout=self.timeout)
145150
except:
146151
raise GitlabConnectionError(
147152
"Can't connect to GitLab server (%s)" % self._url)
@@ -151,7 +156,8 @@ def rawPost(self, path, data=None):
151156
try:
152157
return requests.post(url, data,
153158
headers=self.headers,
154-
verify=self.ssl_verify)
159+
verify=self.ssl_verify,
160+
timeout=self.timeout)
155161
except:
156162
raise GitlabConnectionError(
157163
"Can't connect to GitLab server (%s)" % self._url)
@@ -162,7 +168,8 @@ def rawPut(self, path):
162168
try:
163169
return requests.put(url,
164170
headers=self.headers,
165-
verify=self.ssl_verify)
171+
verify=self.ssl_verify,
172+
timeout=self.timeout)
166173
except:
167174
raise GitlabConnectionError(
168175
"Can't connect to GitLab server (%s)" % self._url)
@@ -173,7 +180,8 @@ def rawDelete(self, path):
173180
try:
174181
return requests.delete(url,
175182
headers=self.headers,
176-
verify=self.ssl_verify)
183+
verify=self.ssl_verify,
184+
timeout=self.timeout)
177185
except:
178186
raise GitlabConnectionError(
179187
"Can't connect to GitLab server (%s)" % self._url)
@@ -195,7 +203,8 @@ def list(self, obj_class, **kwargs):
195203
["%s=%s" % (k, v) for k, v in args.items()]))
196204

197205
try:
198-
r = requests.get(url, headers=self.headers, verify=self.ssl_verify)
206+
r = requests.get(url, headers=self.headers, verify=self.ssl_verify,
207+
timeout=self.timeout)
199208
except:
200209
raise GitlabConnectionError(
201210
"Can't connect to GitLab server (%s)" % self._url)
@@ -233,7 +242,8 @@ def get(self, obj_class, id=None, **kwargs):
233242
url = '%s%s' % (self._url, url)
234243

235244
try:
236-
r = requests.get(url, headers=self.headers, verify=self.ssl_verify)
245+
r = requests.get(url, headers=self.headers, verify=self.ssl_verify,
246+
timeout=self.timeout)
237247
except:
238248
raise GitlabConnectionError(
239249
"Can't connect to GitLab server (%s)" % self._url)
@@ -255,7 +265,8 @@ def delete(self, obj):
255265
try:
256266
r = requests.delete(url,
257267
headers=self.headers,
258-
verify=self.ssl_verify)
268+
verify=self.ssl_verify,
269+
timeout=self.timeout)
259270
except:
260271
raise GitlabConnectionError(
261272
"Can't connect to GitLab server (%s)" % self._url)
@@ -288,7 +299,8 @@ def create(self, obj):
288299
try:
289300
r = requests.post(url, obj.__dict__,
290301
headers=self.headers,
291-
verify=self.ssl_verify)
302+
verify=self.ssl_verify,
303+
timeout=self.timeout)
292304
except:
293305
raise GitlabConnectionError(
294306
"Can't connect to GitLab server (%s)" % self._url)
@@ -318,7 +330,8 @@ def update(self, obj):
318330
try:
319331
r = requests.put(url, d,
320332
headers=self.headers,
321-
verify=self.ssl_verify)
333+
verify=self.ssl_verify,
334+
timeout=self.timeout)
322335
except:
323336
raise GitlabConnectionError(
324337
"Can't connect to GitLab server (%s)" % self._url)

0 commit comments

Comments
 (0)