update_group_permission
Modify group access to a repository by setting read, write, or admin permissions. Manage repository security through controlled group authorization.
Instructions
Update or add a group's permission for a repository.
Args:
repo_slug: Repository slug
group_slug: Group slug
permission: Permission level - "read", "write", or "admin"
Returns:
Updated permission info
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| repo_slug | Yes | ||
| group_slug | Yes | ||
| permission | Yes |
Implementation Reference
- src/server.py:1637-1660 (handler)MCP tool handler: Updates group permissions on a repository by calling the BitbucketClient method. Registered via @mcp.tool() decorator using function name.@mcp.tool() @handle_bitbucket_error @formatted def update_group_permission( repo_slug: str, group_slug: str, permission: str, ) -> dict: """Update or add a group's permission for a repository. Args: repo_slug: Repository slug group_slug: Group slug permission: Permission level - "read", "write", or "admin" Returns: Updated permission info """ client = get_client() result = client.update_group_permission(repo_slug, group_slug, permission) return { "group": result.get("group", {}).get("name"), "permission": result.get("permission"), }
- src/bitbucket_client.py:1611-1632 (helper)BitbucketClient helper method that performs the actual API PUT request to /repositories/{workspace}/{repo_slug}/permissions-config/groups/{group_slug}.def update_group_permission( self, repo_slug: str, group_slug: str, permission: str, ) -> dict[str, Any]: """Update (or add) group permission. Args: repo_slug: Repository slug group_slug: Group slug permission: Permission level: "read", "write", or "admin" Returns: Updated permission info """ result = self._request( "PUT", self._repo_path(repo_slug, "permissions-config", "groups", group_slug), json={"permission": permission}, ) return self._require_result(result, "update permission for group", group_slug)
- src/models.py:646-661 (schema)Pydantic model used for parsing and validating group permission responses in related tools like list_group_permissions and get_group_permission.class GroupPermission(BaseModel): """Group permission info.""" group: Optional[str] = None slug: Optional[str] = None permission: str @classmethod def from_api(cls, data: dict) -> "GroupPermission": group_data = data.get("group") or {} return cls( group=group_data.get("name"), slug=group_data.get("slug"), permission=data.get("permission", ""), )