77
88class Bamboo (AtlassianRestAPI ):
99 def _get_generator (self , path , elements_key = 'results' , element_key = 'result' , data = None , flags = None ,
10- params = None , headers = None ):
10+ params = None , headers = None , max_results = None ):
1111 """
1212 Generic method to return a generator with the results returned from Bamboo. It is intended to work for
1313 responses in the form:
@@ -27,22 +27,21 @@ def _get_generator(self, path, elements_key='results', element_key='result', dat
2727 :param path: URI for the resource
2828 :return: generator with the contents of response[elements_key][element_key]
2929 """
30- size = 1
3130 start_index = 0
32- while size :
33- params [ 'start-index' ] = start_index
34- response = self . get ( path , data , flags , params , headers )
35- results = response [ elements_key ]
36- size = results [ 'size' ]
37- # Check if start index was reset when reaching the end of the pages list
38- if results ['start-index ' ] < start_index :
39- break
40- for r in results [element_key ]:
41- yield r
42- start_index += results [ 'max-result' ]
43-
44- def base_list_call ( self , resource , expand , favourite , clover_enabled , max_results , label = None , start_index = 0 ,
45- ** kwargs ):
31+ params [ 'start-index' ] = start_index
32+ response = self . get ( path , data , flags , params , headers )
33+ results = response [ elements_key ]
34+ size = 0
35+
36+ # Check if we still can get results
37+ if size > max_results or results ['size ' ] == 0 :
38+ return
39+ for r in results [element_key ]:
40+ size += 1
41+ yield r
42+ start_index += results [ 'max-result' ]
43+
44+ def base_list_call ( self , resource , expand , favourite , clover_enabled , max_results , label = None , start_index = 0 , ** kwargs ):
4645 flags = []
4746 params = {'max-results' : max_results }
4847 if expand :
@@ -57,10 +56,11 @@ def base_list_call(self, resource, expand, favourite, clover_enabled, max_result
5756 if 'elements_key' in kwargs and 'element_key' in kwargs :
5857 return self ._get_generator (self .resource_url (resource ), flags = flags , params = params ,
5958 elements_key = kwargs ['elements_key' ],
60- element_key = kwargs ['element_key' ])
59+ element_key = kwargs ['element_key' ],
60+ max_results = max_results )
6161 params ['start-index' ] = start_index
6262 return self .get (self .resource_url (resource ), flags = flags , params = params )
63-
63+
6464 def get_custom_expiry (self , limit = 25 ):
6565 """
6666 Get list of all plans where user has admin permission and which override global expiry settings.
@@ -372,6 +372,16 @@ def create_branch(self, plan_key, branch_name, vcs_branch=None, enabled=False, c
372372 cleanupEnabled = 'true' if cleanup_enabled else 'false' )
373373 return self .put (self .resource_url (resource ), params = params )
374374
375+ def get_branch_info (self , plan_key , branch_name ):
376+ """
377+ Get information about a plan branch
378+ :param plan_key:
379+ :param branch_name:
380+ :return:
381+ """
382+ resource = 'plan/{plan_key}/branch/{branch_name}' .format (plan_key = plan_key , branch_name = branch_name )
383+ return self .get (self .resource_url (resource ))
384+
375385 def enable_plan (self , plan_key ):
376386 """
377387 Enable plan.
0 commit comments