Skip to content

Commit 5051d44

Browse files
authored
Merge pull request #207 from pablotoledo/master
2 new bitbucket methods to grant group permissions
2 parents b31d97f + cc98a09 commit 5051d44

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

atlassian/bitbucket.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,27 @@ def project_grant_user_permissions(self, project_key, username, permission):
104104
permission=permission,
105105
username=username)
106106
return self.put(url)
107+
108+
def project_grant_group_permissions(self, project_key, groupname, permission):
109+
"""
110+
Grant the specified project permission to an specific group
111+
:param project_key: project key involved
112+
:param groupname: group to be granted
113+
:param permission: the project permissions available are 'PROJECT_ADMIN', 'PROJECT_WRITE' and 'PROJECT_READ'
114+
:return:
115+
"""
116+
url = 'rest/api/1.0/projects/{project_key}/permissions/groups?permission={permission}&name={groupname}'.format(
117+
project_key=project_key,
118+
permission=permission,
119+
groupname=groupname)
120+
return self.put(url)
107121

108122
def repo_grant_user_permissions(self, project_key, repo_key, username, permission):
109123
"""
110124
Grant the specified repository permission to an specific user
111125
:param project_key: project key involved
112126
:param repo_key: repository key involved (slug)
113-
:param user: user name to be granted
127+
:param username: user name to be granted
114128
:param permission: the repository permissions available are 'REPO_ADMIN', 'REPO_WRITE' and 'REPO_READ'
115129
:return:
116130
"""
@@ -121,6 +135,22 @@ def repo_grant_user_permissions(self, project_key, repo_key, username, permissio
121135
username=username)
122136
return self.put(url)
123137

138+
def repo_grant_group_permissions(self, project_key, repo_key, groupname, permission):
139+
"""
140+
Grant the specified repository permission to an specific group
141+
:param project_key: project key involved
142+
:param repo_key: repository key involved (slug)
143+
:param groupname: group to be granted
144+
:param permission: the repository permissions available are 'REPO_ADMIN', 'REPO_WRITE' and 'REPO_READ'
145+
:return:
146+
"""
147+
url = 'rest/api/1.0/projects/{project_key}/repos/{repo_key}/permissions/groups?permission={permission}&name={groupname}'.format(
148+
project_key=project_key,
149+
repo_key=repo_key,
150+
permission=permission,
151+
groupname=groupname)
152+
return self.put(url)
153+
124154
def project_groups(self, key, limit=99999, filter_str=None):
125155
"""
126156
Get Project Groups

docs/bitbucket.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ Manage projects
3333
# Grant project permission to an specific user
3434
bitbucket.project_grant_user_permissions(project_key, username, permission)
3535
36+
# Grant project permission to an specific group
37+
bitbucket.project_grant_group_permissions(project_key, groupname, permission)
38+
3639
Manage repositories
3740
---------------
3841

@@ -74,6 +77,9 @@ Manage repositories
7477
# Grant repository permission to an specific user
7578
bitbucket.repo_grant_user_permissions(project_key, repo_key, username, permission)
7679
80+
# Grant repository permission to an specific group
81+
bitbucket.repo_grant_group_permissions(project_key, repo_key, groupname, permission)
82+
7783
Groups and admins
7884
-----------------
7985

0 commit comments

Comments
 (0)