Documentation
¶
Overview ¶
markdown.go provides Markdown formatting functions for protected package MCP tool output.
Package protectedpackages implements GitLab package protection rule operations including list, create, update, and delete. Package protection rules restrict who can push or delete specific package patterns.
register.go wires protectedpackages MCP tools to the MCP server.
Index ¶
- func Delete(ctx context.Context, client *gitlabclient.Client, in DeleteInput) error
- func FormatListMarkdown(out ListOutput) string
- func FormatOutputMarkdown(r Output) string
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type CreateInput
- type DeleteInput
- type ListInput
- type ListOutput
- type Output
- type UpdateInput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Delete ¶
func Delete(ctx context.Context, client *gitlabclient.Client, in DeleteInput) error
Delete removes a package protection rule from a project.
func FormatListMarkdown ¶
func FormatListMarkdown(out ListOutput) string
FormatListMarkdown renders a paginated list of package protection rules as Markdown.
func FormatOutputMarkdown ¶
FormatOutputMarkdown renders a single package protection rule as Markdown.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers MCP tools for GitLab package protection rule operations.
Types ¶
type CreateInput ¶
type CreateInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
PackageNamePattern string `` /* 138-byte string literal not displayed */
PackageType string `json:"package_type" jsonschema:"Package type (npm, pypi, maven, generic, etc.),required"`
MinimumAccessLevelForPush string `json:"minimum_access_level_for_push,omitempty" jsonschema:"Minimum access level for push (maintainer, owner, admin)"`
MinimumAccessLevelForDelete string `json:"minimum_access_level_for_delete,omitempty" jsonschema:"Minimum access level for delete (maintainer, owner, admin)"`
}
CreateInput holds parameters for creating a package protection rule.
type DeleteInput ¶
type DeleteInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
RuleID int64 `json:"rule_id" jsonschema:"Package protection rule ID,required"`
}
DeleteInput holds parameters for deleting a package protection rule.
type ListInput ¶
type ListInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
toolutil.PaginationInput
}
ListInput holds parameters for listing package protection rules.
type ListOutput ¶
type ListOutput struct {
toolutil.HintableOutput
Rules []Output `json:"rules"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListOutput contains a paginated list of package protection rules.
func List ¶
func List(ctx context.Context, client *gitlabclient.Client, in ListInput) (ListOutput, error)
List returns all package protection rules for a project.
type Output ¶
type Output struct {
toolutil.HintableOutput
ID int64 `json:"id"`
ProjectID int64 `json:"project_id"`
PackageNamePattern string `json:"package_name_pattern"`
PackageType string `json:"package_type"`
MinimumAccessLevelForPush string `json:"minimum_access_level_for_push,omitempty"`
MinimumAccessLevelForDelete string `json:"minimum_access_level_for_delete,omitempty"`
}
Output represents a package protection rule.
func Create ¶
func Create(ctx context.Context, client *gitlabclient.Client, in CreateInput) (Output, error)
Create adds a new package protection rule to a project.
func Update ¶
func Update(ctx context.Context, client *gitlabclient.Client, in UpdateInput) (Output, error)
Update modifies an existing package protection rule.
type UpdateInput ¶
type UpdateInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
RuleID int64 `json:"rule_id" jsonschema:"Package protection rule ID,required"`
PackageNamePattern string `json:"package_name_pattern,omitempty" jsonschema:"Package name pattern with optional wildcards"`
PackageType string `json:"package_type,omitempty" jsonschema:"Package type (npm, pypi, maven, generic, etc.)"`
MinimumAccessLevelForPush string `json:"minimum_access_level_for_push,omitempty" jsonschema:"Minimum access level for push (maintainer, owner, admin)"`
MinimumAccessLevelForDelete string `json:"minimum_access_level_for_delete,omitempty" jsonschema:"Minimum access level for delete (maintainer, owner, admin)"`
}
UpdateInput holds parameters for updating a package protection rule.