|
26 | 26 | importrequests
|
27 | 27 | importsix
|
28 | 28 |
|
| 29 | +importlogging |
| 30 | +logger=logging.getLogger(__name__) |
| 31 | + |
29 | 32 | __title__='python-gitlab'
|
30 | 33 | __version__='0.9.1'
|
31 | 34 | __author__='Gauvain Pocentek'
|
@@ -189,6 +192,8 @@ def set_url(self, url):
|
189 | 192 | self._url='%s/api/v3'%url
|
190 | 193 |
|
191 | 194 | def_construct_url(self,id_,obj,parameters):
|
| 195 | +if'next_url'inparameters: |
| 196 | +returnparameters['next_url'] |
192 | 197 | args=_sanitize_dict(parameters)
|
193 | 198 | url=obj._url%args
|
194 | 199 | ifid_isnotNone:
|
@@ -342,8 +347,14 @@ def list(self, obj_class, **kwargs):
|
342 | 347 | ifkeyincls_kwargs:
|
343 | 348 | delcls_kwargs[key]
|
344 | 349 |
|
345 |
| -return [cls(self,item,**cls_kwargs)foriteminr.json() |
346 |
| -ifitemisnotNone] |
| 350 | +results= [cls(self,item,**cls_kwargs)foriteminr.json() |
| 351 | +ifitemisnotNone] |
| 352 | +if'next'inr.linksand'url'inr.links['next']: |
| 353 | +args=kwargs.copy() |
| 354 | +args['next_url']=r.links['next']['url'] |
| 355 | +logger.debug("Iterating results 'next' link: %s",args['next_url']) |
| 356 | +results.extend(self.list(obj_class,**args)) |
| 357 | +returnresults |
347 | 358 | else:
|
348 | 359 | _raise_error_from_response(r,GitlabListError)
|
349 | 360 |
|
|