@@ -75,15 +75,19 @@ class GitlabAuthenticationError(Exception):
7575class 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