Skip to content

Commit bc1cb99

Browse files
lelandsindttouchnetgonchik
authored andcommitted
branches_permissions (#376)
made repository optional added 'all_branches_permissions'
1 parent c57b96f commit bc1cb99

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

atlassian/bitbucket.py

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,22 +1065,47 @@ def get_content_of_file(self, project, repository, filename, at=None, markup=Non
10651065
params['markup'] = markup
10661066
return self.get(url, params=params, not_json_response=True, headers=headers)
10671067

1068-
def get_branches_permissions(self, project, repository, limit=25):
1068+
def get_branches_permissions(self, project, repository=None, start=0, limit=25):
10691069
"""
10701070
Get branches permissions from a given repo
10711071
:param project:
10721072
:param repository:
1073+
:param start:
10731074
:param limit:
10741075
:return:
10751076
"""
1076-
url = 'rest/branch-permissions/2.0/projects/{project}/repos/{repository}/restrictions'.format(
1077-
project=project,
1078-
repository=repository)
1077+
if repository != None:
1078+
url = 'rest/branch-permissions/2.0/projects/{project}/repos/{repository}/restrictions'.format(
1079+
project=project,
1080+
repository=repository)
1081+
else:
1082+
url = 'rest/branch-permissions/2.0/projects/{project}/restrictions'.format(
1083+
project=project)
1084+
10791085
params = {}
10801086
if limit:
10811087
params['limit'] = limit
1088+
if start:
1089+
params['start'] = start
10821090
return self.get(url, params=params)
10831091

1092+
def all_branches_permissions(self, project, repository=None):
1093+
"""
1094+
Get branches permissions from a given repo
1095+
:param project:
1096+
:param repository:
1097+
:return:
1098+
"""
1099+
start = 0
1100+
branches_permissions = []
1101+
response = self.get_branches_permissions(project=project, repository=repository, start=start)
1102+
branches_permissions += response.get('values')
1103+
while not response.get('isLastPage'):
1104+
start = response.get('nextPageStart')
1105+
response = self.get_branches_permissions(project=project, repository=repository, start=start)
1106+
branches_permissions += response.get('values')
1107+
return branches_permissions
1108+
10841109
def reindex(self):
10851110
"""
10861111
Rebuild the bundled Elasticsearch indexes for Bitbucket Server

0 commit comments

Comments
 (0)