Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 31 additions & 1 deletion atlassian/bitbucket.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,13 +104,27 @@ def project_grant_user_permissions(self, project_key, username, permission):
permission=permission,
username=username)
return self.put(url)

def project_grant_group_permissions(self, project_key, groupname, permission):
"""
Grant the specified project permission to an specific group
:param project_key: project key involved
:param groupname: group to be granted
:param permission: the project permissions available are 'PROJECT_ADMIN', 'PROJECT_WRITE' and 'PROJECT_READ'
:return:
"""
url = 'rest/api/1.0/projects/{project_key}/permissions/groups?permission={permission}&name={groupname}'.format(
project_key=project_key,
permission=permission,
groupname=groupname)
return self.put(url)

def repo_grant_user_permissions(self, project_key, repo_key, username, permission):
"""
Grant the specified repository permission to an specific user
:param project_key: project key involved
:param repo_key: repository key involved (slug)
:param user: user name to be granted
:param username: user name to be granted
:param permission: the repository permissions available are 'REPO_ADMIN', 'REPO_WRITE' and 'REPO_READ'
:return:
"""
Expand All @@ -121,6 +135,22 @@ def repo_grant_user_permissions(self, project_key, repo_key, username, permissio
username=username)
return self.put(url)

def repo_grant_group_permissions(self, project_key, repo_key, groupname, permission):
"""
Grant the specified repository permission to an specific group
:param project_key: project key involved
:param repo_key: repository key involved (slug)
:param groupname: group to be granted
:param permission: the repository permissions available are 'REPO_ADMIN', 'REPO_WRITE' and 'REPO_READ'
:return:
"""
url = 'rest/api/1.0/projects/{project_key}/repos/{repo_key}/permissions/groups?permission={permission}&name={groupname}'.format(
project_key=project_key,
repo_key=repo_key,
permission=permission,
groupname=groupname)
return self.put(url)

def project_groups(self, key, limit=99999, filter_str=None):
"""
Get Project Groups
Expand Down
6 changes: 6 additions & 0 deletions docs/bitbucket.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ Manage projects
# Grant project permission to an specific user
bitbucket.project_grant_user_permissions(project_key, username, permission)

# Grant project permission to an specific group
bitbucket.project_grant_group_permissions(project_key, groupname, permission)

Manage repositories
---------------

Expand Down Expand Up @@ -74,6 +77,9 @@ Manage repositories
# Grant repository permission to an specific user
bitbucket.repo_grant_user_permissions(project_key, repo_key, username, permission)

# Grant repository permission to an specific group
bitbucket.repo_grant_group_permissions(project_key, repo_key, groupname, permission)

Groups and admins
-----------------

Expand Down