Skip to content

Commit 1438e21

Browse files
committed
group permissions
2 method to grant repo and project permissions to the specied group
1 parent 2077533 commit 1438e21

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

atlassian/bitbucket.py

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def project_grant_user_permissions(self, project_key, username, permission):
9595
"""
9696
Grant the specified project permission to an specific user
9797
:param project_key: project key involved
98-
:param user: user name to be granted
98+
:param username: user name to be granted
9999
:param permission: the project permissions available are 'PROJECT_ADMIN', 'PROJECT_WRITE' and 'PROJECT_READ'
100100
:return:
101101
"""
@@ -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)