Documentation
¶
Overview ¶
markdown.go provides Markdown formatting functions for tag MCP tool output.
register.go wires tags MCP tools to the MCP server.
Package tags implements GitLab tag and protected tag operations including create, delete, get, list, signature, protect, and unprotect.
Index ¶
- func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) error
- func FormatListMarkdown(out ListOutput) *mcp.CallToolResult
- func FormatListMarkdownString(out ListOutput) string
- func FormatListProtectedTagsMarkdown(out ListProtectedTagsOutput) *mcp.CallToolResult
- func FormatListProtectedTagsMarkdownString(out ListProtectedTagsOutput) string
- func FormatOutputMarkdown(t Output) *mcp.CallToolResult
- func FormatOutputMarkdownString(t Output) string
- func FormatProtectedTagMarkdown(out ProtectedTagOutput) *mcp.CallToolResult
- func FormatProtectedTagMarkdownString(out ProtectedTagOutput) string
- func FormatSignatureMarkdown(out SignatureOutput) *mcp.CallToolResult
- func FormatSignatureMarkdownString(out SignatureOutput) string
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- func UnprotectTag(ctx context.Context, client *gitlabclient.Client, input UnprotectTagInput) error
- type CreateInput
- type DeleteInput
- type GetInput
- type GetProtectedTagInput
- type ListInput
- type ListOutput
- type ListProtectedTagsInput
- type ListProtectedTagsOutput
- type Output
- type ProtectTagInput
- type ProtectedTagOutput
- type SignatureInput
- type SignatureOutput
- type TagAccessLevelOutput
- type TagPermission
- type UnprotectTagInput
- type X509CertificateOutput
- type X509IssuerOutput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Delete ¶
func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) error
Delete removes a tag from the specified GitLab project.
func FormatListMarkdown ¶
func FormatListMarkdown(out ListOutput) *mcp.CallToolResult
FormatListMarkdown renders a list of tags as an MCP CallToolResult.
func FormatListMarkdownString ¶
func FormatListMarkdownString(out ListOutput) string
FormatListMarkdownString renders a list of tags as a Markdown table.
func FormatListProtectedTagsMarkdown ¶
func FormatListProtectedTagsMarkdown(out ListProtectedTagsOutput) *mcp.CallToolResult
FormatListProtectedTagsMarkdown renders a list of protected tags as an MCP CallToolResult.
func FormatListProtectedTagsMarkdownString ¶
func FormatListProtectedTagsMarkdownString(out ListProtectedTagsOutput) string
FormatListProtectedTagsMarkdownString renders a list of protected tags as Markdown.
func FormatOutputMarkdown ¶
func FormatOutputMarkdown(t Output) *mcp.CallToolResult
FormatOutputMarkdown renders a single tag as an MCP CallToolResult.
func FormatOutputMarkdownString ¶
FormatOutputMarkdownString renders a single tag as a Markdown summary.
func FormatProtectedTagMarkdown ¶
func FormatProtectedTagMarkdown(out ProtectedTagOutput) *mcp.CallToolResult
FormatProtectedTagMarkdown renders a protected tag as an MCP CallToolResult.
func FormatProtectedTagMarkdownString ¶
func FormatProtectedTagMarkdownString(out ProtectedTagOutput) string
FormatProtectedTagMarkdownString renders a protected tag as Markdown.
func FormatSignatureMarkdown ¶
func FormatSignatureMarkdown(out SignatureOutput) *mcp.CallToolResult
FormatSignatureMarkdown renders a tag signature as an MCP CallToolResult.
func FormatSignatureMarkdownString ¶
func FormatSignatureMarkdownString(out SignatureOutput) string
FormatSignatureMarkdownString renders a tag signature as a Markdown summary.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers Git tag tools on the MCP server.
func UnprotectTag ¶
func UnprotectTag(ctx context.Context, client *gitlabclient.Client, input UnprotectTagInput) error
UnprotectTag removes protection from a repository tag.
Types ¶
type CreateInput ¶
type CreateInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
TagName string `json:"tag_name" jsonschema:"Name of the tag,required"`
Ref string `json:"ref" jsonschema:"Commit SHA, branch name, or another tag to create the tag from,required"`
Message string `json:"message,omitempty" jsonschema:"Creates an annotated tag with this message"`
}
CreateInput defines parameters for creating a Git tag.
type DeleteInput ¶
type DeleteInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
TagName string `json:"tag_name" jsonschema:"Name of the tag to delete,required"`
}
DeleteInput defines parameters for deleting a tag.
type GetInput ¶
type GetInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
TagName string `json:"tag_name" jsonschema:"Tag name to retrieve,required"`
}
GetInput defines parameters for retrieving a single tag.
type GetProtectedTagInput ¶
type GetProtectedTagInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
TagName string `json:"tag_name" jsonschema:"Name of the protected tag,required"`
}
GetProtectedTagInput defines parameters for retrieving a single protected tag.
type ListInput ¶
type ListInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
Search string `json:"search,omitempty" jsonschema:"Search query to filter tags by name"`
OrderBy string `json:"order_by,omitempty" jsonschema:"Order tags by field (name, updated)"`
Sort string `json:"sort,omitempty" jsonschema:"Sort direction (asc, desc)"`
toolutil.PaginationInput
}
ListInput defines parameters for listing tags.
type ListOutput ¶
type ListOutput struct {
toolutil.HintableOutput
Tags []Output `json:"tags"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListOutput holds a list of tags.
func List ¶
func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
List retrieves a paginated list of tags for the specified GitLab project.
type ListProtectedTagsInput ¶
type ListProtectedTagsInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
toolutil.PaginationInput
}
ListProtectedTagsInput defines parameters for listing protected tags.
type ListProtectedTagsOutput ¶
type ListProtectedTagsOutput struct {
toolutil.HintableOutput
Tags []ProtectedTagOutput `json:"tags"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListProtectedTagsOutput holds a list of protected tags.
func ListProtectedTags ¶
func ListProtectedTags(ctx context.Context, client *gitlabclient.Client, input ListProtectedTagsInput) (ListProtectedTagsOutput, error)
ListProtectedTags retrieves a paginated list of protected tags for a project.
type Output ¶
type Output struct {
toolutil.HintableOutput
Name string `json:"name"`
Target string `json:"target"`
Message string `json:"message"`
Protected bool `json:"protected"`
CommitSHA string `json:"commit_sha,omitempty"`
CommitMessage string `json:"commit_message,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
}
Output represents a Git tag.
func Create ¶
func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)
Create creates a new Git tag in the specified GitLab project.
type ProtectTagInput ¶
type ProtectTagInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
TagName string `json:"tag_name" jsonschema:"Tag name or wildcard pattern (e.g. 'v*'),required"`
CreateAccessLevel int `json:"create_access_level,omitempty" jsonschema:"Access level allowed to create (0=No access, 30=Developer, 40=Maintainer)"`
AllowedToCreate []TagPermission `json:"allowed_to_create,omitempty" jsonschema:"Granular create permissions (user_id, group_id, deploy_key_id, access_level)"`
}
ProtectTagInput defines parameters for protecting a tag.
type ProtectedTagOutput ¶
type ProtectedTagOutput struct {
toolutil.HintableOutput
Name string `json:"name"`
CreateAccessLevels []TagAccessLevelOutput `json:"create_access_levels"`
}
ProtectedTagOutput represents a protected tag.
func GetProtectedTag ¶
func GetProtectedTag(ctx context.Context, client *gitlabclient.Client, input GetProtectedTagInput) (ProtectedTagOutput, error)
GetProtectedTag retrieves a single protected tag by name.
func ProtectTag ¶
func ProtectTag(ctx context.Context, client *gitlabclient.Client, input ProtectTagInput) (ProtectedTagOutput, error)
ProtectTag protects tag for the tags package.
type SignatureInput ¶
type SignatureInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
TagName string `json:"tag_name" jsonschema:"Tag name to retrieve signature for,required"`
}
SignatureInput defines parameters for retrieving the X.509 signature of a tag.
type SignatureOutput ¶
type SignatureOutput struct {
toolutil.HintableOutput
SignatureType string `json:"signature_type"`
VerificationStatus string `json:"verification_status"`
X509Certificate X509CertificateOutput `json:"x509_certificate"`
}
SignatureOutput represents the X.509 signature of a tag.
func GetSignature ¶
func GetSignature(ctx context.Context, client *gitlabclient.Client, input SignatureInput) (SignatureOutput, error)
GetSignature retrieves the X.509 signature of a tag.
type TagAccessLevelOutput ¶
type TagAccessLevelOutput struct {
ID int64 `json:"id"`
AccessLevel int `json:"access_level"`
AccessLevelDescription string `json:"access_level_description"`
UserID int64 `json:"user_id,omitempty"`
GroupID int64 `json:"group_id,omitempty"`
DeployKeyID int64 `json:"deploy_key_id,omitempty"`
}
TagAccessLevelOutput represents access level description for a protected tag.
type TagPermission ¶
type TagPermission struct {
UserID int64 `json:"user_id,omitempty" jsonschema:"User ID allowed to create"`
GroupID int64 `json:"group_id,omitempty" jsonschema:"Group ID allowed to create"`
DeployKeyID int64 `json:"deploy_key_id,omitempty" jsonschema:"Deploy key ID allowed to create"`
AccessLevel int `json:"access_level,omitempty" jsonschema:"Access level (0, 30, 40)"`
}
TagPermission represents a granular permission option for protected tags.
type UnprotectTagInput ¶
type UnprotectTagInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
TagName string `json:"tag_name" jsonschema:"Name of the protected tag to unprotect,required"`
}
UnprotectTagInput defines parameters for unprotecting a tag.
type X509CertificateOutput ¶
type X509CertificateOutput struct {
ID int64 `json:"id"`
Subject string `json:"subject"`
SubjectKeyIdentifier string `json:"subject_key_identifier"`
Email string `json:"email"`
SerialNumber string `json:"serial_number"`
CertificateStatus string `json:"certificate_status"`
X509Issuer X509IssuerOutput `json:"x509_issuer"`
}
X509CertificateOutput represents an X.509 certificate.