update_user_permission
Modify repository access by setting user permissions to read, write, or admin levels in Bitbucket.
Instructions
Update or add a user's permission for a repository.
Args:
repo_slug: Repository slug
selected_user: User's account_id or UUID
permission: Permission level - "read", "write", or "admin"
Returns:
Updated permission info
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| repo_slug | Yes | ||
| selected_user | Yes | ||
| permission | Yes |
Implementation Reference
- src/server.py:1549-1572 (handler)MCP tool handler function for 'update_user_permission'. Registers the tool with @mcp.tool() and implements the logic by calling the BitbucketClient method.@mcp.tool() @handle_bitbucket_error @formatted def update_user_permission( repo_slug: str, selected_user: str, permission: str, ) -> dict: """Update or add a user's permission for a repository. Args: repo_slug: Repository slug selected_user: User's account_id or UUID permission: Permission level - "read", "write", or "admin" Returns: Updated permission info """ client = get_client() result = client.update_user_permission(repo_slug, selected_user, permission) return { "user": result.get("user", {}).get("display_name"), "permission": result.get("permission"), }
- src/bitbucket_client.py:1534-1555 (helper)BitbucketClient helper method that executes the Bitbucket API PUT request to update repository user permissions.def update_user_permission( self, repo_slug: str, selected_user: str, permission: str, ) -> dict[str, Any]: """Update (or add) user permission. Args: repo_slug: Repository slug selected_user: User UUID or account_id permission: Permission level: "read", "write", or "admin" Returns: Updated permission info """ result = self._request( "PUT", self._repo_path(repo_slug, "permissions-config", "users", selected_user), json={"permission": permission}, ) return self._require_result(result, "update permission for user", selected_user)
- src/models.py:629-644 (schema)Pydantic model defining the structure for user permission data, used in related permission listing tools.class UserPermission(BaseModel): """User permission info.""" user: Optional[str] = None account_id: Optional[str] = None permission: str @classmethod def from_api(cls, data: dict) -> "UserPermission": user_data = data.get("user") or {} return cls( user=user_data.get("display_name"), account_id=user_data.get("account_id"), permission=data.get("permission", ""), )
- src/server.py:1549-1549 (registration)@mcp.tool() decorator that registers the update_user_permission function as an MCP tool.@mcp.tool()