Skip to content

Commit ad22cb6

Browse files
authored
Merge pull request #368 from djachkov/master
Bamboo: add 2 methods, update docs, minor change in rest_client
2 parents f068e4b + 4d4622a commit ad22cb6

File tree

3 files changed

+35
-9
lines changed

3 files changed

+35
-9
lines changed

atlassian/bamboo.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def _get_generator(self, path, elements_key='results', element_key='result', dat
3434
params['start-index'] = start_index
3535
response = self.get(path, data, flags, params, headers)
3636
results = response[elements_key]
37-
size = 0
37+
size = 0
3838

3939
# Check if we still can get results
4040
if size > max_results or results['size'] == 0:
@@ -87,7 +87,7 @@ def project_plans(self, project_key):
8787
def plans(self, expand=None, favourite=False, clover_enabled=False, start_index=0, max_results=25):
8888
return self.base_list_call("plan", expand, favourite, clover_enabled, start_index, max_results,
8989
elements_key='plans', element_key='plan')
90-
90+
9191
def plan_directory_info(self, plan_key):
9292
"""
9393
Returns information about the directories where artifacts, build logs, and build results will be stored.
@@ -99,6 +99,15 @@ def plan_directory_info(self, plan_key):
9999
resource = 'planDirectoryInfo/{}'.format(plan_key)
100100
return self.get(self.resource_url(resource))
101101

102+
def get_plan(self, plan_key):
103+
"""
104+
Get plan information.
105+
:param plan_key:
106+
:return:
107+
"""
108+
resource = 'rest/api/latest/plan/{}'.format(plan_key)
109+
return self.get(resource)
110+
102111
def delete_plan(self, plan_key):
103112
"""
104113
Marks plan for deletion. Plan will be deleted by a batch job.
@@ -118,7 +127,7 @@ def enable_plan(self, plan_key):
118127
return self.post(self.resource_url(resource))
119128

120129
""" Branches """
121-
130+
122131
def search_branches(self, plan_key, include_default_branch=True, max_results=25):
123132
params = {
124133
'max-result': max_results,
@@ -171,6 +180,15 @@ def create_branch(self, plan_key, branch_name, vcs_branch=None, enabled=False, c
171180
cleanupEnabled='true' if cleanup_enabled else 'false')
172181
return self.put(self.resource_url(resource), params=params)
173182

183+
def get_vcs_branches(self, plan_key, max_results=25):
184+
"""
185+
Get all vcs names for the current plan
186+
:param plan_key: str TST-BLD
187+
:return:
188+
"""
189+
resource = 'plan/{plan_key}/vcsBranches'.format(plan_key=plan_key)
190+
return self.base_list_call(resource, start_index=0, max_results=max_results)
191+
174192
""" Build results """
175193

176194
def results(self, project_key=None, plan_key=None, job_key=None, build_number=None, expand=None, favourite=False,
@@ -523,7 +541,7 @@ def get_custom_expiry(self, limit=25):
523541
"""
524542
url = "rest/api/latest/admin/expiry/custom/plan?limit={}".format(limit)
525543
return self.get(url)
526-
544+
527545
def reports(self, max_results=25):
528546
params = {'max-results': max_results}
529547
return self._get_generator(self.resource_url('chart/reports'), elements_key='reports', element_key='report',

atlassian/rest_client.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -198,18 +198,20 @@ def get(self, path, data=None, flags=None, params=None, headers=None, not_json_r
198198
:param trailing: OPTIONAL: for wrap slash symbol in the end of string
199199
:return:
200200
"""
201-
answer = self.request('GET', path=path, flags=flags, params=params, data=data, headers=headers,
201+
response = self.request('GET', path=path, flags=flags, params=params, data=data, headers=headers,
202202
trailing=trailing)
203+
if self.advanced_mode:
204+
return response
203205
if not_json_response:
204-
return answer.content
206+
return response.content
205207
else:
206-
if not answer.text:
208+
if not response.text:
207209
return None
208210
try:
209-
return answer.json()
211+
return response.json()
210212
except Exception as e:
211213
log.error(e)
212-
return answer.text
214+
return response.text
213215

214216
def post(self, path, data=None, headers=None, files=None, params=None, trailing=None):
215217
response = self.request('POST', path=path, data=data, headers=headers, files=files, params=params,

docs/bamboo.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ Projects & Plans
2121
# Get information about plan build directory
2222
plan_directory_info(plan_key)
2323
24+
# Get plan information
25+
get_plan(plan_key)
26+
2427
# Delete a plan (or a plan branch)
2528
delete_plan(plan_key)
2629
@@ -44,6 +47,9 @@ Branches
4447
# Create new branch (vcs or simple)
4548
create_branch(plan_key, branch_name, vcs_branch=None, enabled=False, cleanup_enabled=False)
4649
50+
# Get VCS Branches
51+
get_vcs_branches(plan_key, max_results=25)
52+
4753
Build results
4854
-------------
4955

0 commit comments

Comments
 (0)