create_tag
Create a new tag in a Bitbucket repository to mark specific commits or branches with version labels like v1.0.0, supporting optional annotated tag messages.
Instructions
Create a new tag in a repository.
Args:
repo_slug: Repository slug
name: Tag name (e.g., "v1.0.0")
target: Commit hash or branch name to tag
message: Optional tag message (for annotated tags)
Returns:
Created tag info
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| repo_slug | Yes | ||
| name | Yes | ||
| target | Yes | ||
| message | No |
Implementation Reference
- src/server.py:1296-1328 (handler)MCP tool handler function for create_tag, decorated with @mcp.tool(). Calls the Bitbucket client to create the tag and formats the response.@mcp.tool() @handle_bitbucket_error @formatted def create_tag( repo_slug: str, name: str, target: str, message: str = "", ) -> dict: """Create a new tag in a repository. Args: repo_slug: Repository slug name: Tag name (e.g., "v1.0.0") target: Commit hash or branch name to tag message: Optional tag message (for annotated tags) Returns: Created tag info """ client = get_client() result = client.create_tag( repo_slug, name=name, target=target, message=message if message else None, ) return { "name": result.get("name"), "target": truncate_hash(result.get("target", {}).get("hash")), "message": result.get("message", ""), }
- src/bitbucket_client.py:1307-1337 (helper)BitbucketClient method that implements the actual API call to create a tag in the repository.def create_tag( self, repo_slug: str, name: str, target: str, message: Optional[str] = None, ) -> dict[str, Any]: """Create a tag. Args: repo_slug: Repository slug name: Tag name (e.g., "v1.0.0") target: Commit hash or branch to tag message: Optional tag message (for annotated tags) Returns: Created tag info """ payload = { "name": name, "target": {"hash": target}, } if message: payload["message"] = message result = self._request( "POST", self._repo_path(repo_slug, "refs", "tags"), json=payload, ) return self._require_result(result, "create tag", name)