Skip to main content
Glama

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
NameRequiredDescriptionDefault
repo_slugYes
selected_userYes
permissionYes

Implementation Reference

  • 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"),
        }
  • 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)
  • 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", ""),
            )
  • @mcp.tool() decorator that registers the update_user_permission function as an MCP tool.
    @mcp.tool()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JaviMaligno/mcp-server-bitbucket'

If you have feedback or need assistance with the MCP directory API, please join our Discord server