Documentation
¶
Overview ¶
Package securitycategories implements MCP tools for GitLab security categories.
The package exposes catalog-backed actions for creating, updating, and deleting the category records that group GitLab security attributes. Handlers validate namespace and category identifiers, optional update fields, and GraphQL mutation responses before returning MCP-friendly output with nested attribute summaries.
Security categories are GraphQL-backed GitLab security taxonomy objects. This package keeps those mutations and conversions together so meta-tools, dynamic discovery, individual tool projection, and Markdown rendering all describe the same behavior.
GitLab API docs:
Index ¶
- func ActionSpecs(client *gitlabclient.Client) []toolutil.ActionSpec
- func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) (toolutil.DeleteOutput, error)
- func FormatOutputMarkdown(out Output) string
- type AttributeSummary
- type CreateInput
- type DeleteInput
- type Output
- type UpdateInput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ActionSpecs ¶
func ActionSpecs(client *gitlabclient.Client) []toolutil.ActionSpec
ActionSpecs returns canonical specs for security category actions.
func Delete ¶
func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) (toolutil.DeleteOutput, error)
Delete deletes a GitLab security category and its associated attributes.
func FormatOutputMarkdown ¶
FormatOutputMarkdown renders a security category as Markdown.
Types ¶
type AttributeSummary ¶
type AttributeSummary struct {
ID int64 `json:"id"`
Name string `json:"name"`
Color string `json:"color"`
Description string `json:"description,omitempty"`
EditableState string `json:"editable_state,omitempty"`
}
AttributeSummary represents a security attribute nested in a category response.
type CreateInput ¶
type CreateInput struct {
NamespaceID int64 `json:"namespace_id" jsonschema:"Numeric namespace ID,required"`
Name string `json:"name" jsonschema:"Security category name,required"`
Description *string `json:"description,omitempty" jsonschema:"Security category description"`
MultipleSelection *bool `json:"multiple_selection,omitempty" jsonschema:"Whether multiple attributes can be selected for the category"`
}
CreateInput defines parameters for creating a security category.
type DeleteInput ¶
type DeleteInput struct {
CategoryID int64 `json:"category_id" jsonschema:"Numeric security category ID,required"`
}
DeleteInput defines parameters for deleting a security category.
type Output ¶
type Output struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
MultipleSelection bool `json:"multiple_selection"`
EditableState string `json:"editable_state,omitempty"`
TemplateType string `json:"template_type,omitempty"`
SecurityAttributes []AttributeSummary `json:"security_attributes,omitempty"`
}
Output represents a GitLab security category.
func Create ¶
func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)
Create creates a GitLab security category.
func Update ¶
func Update(ctx context.Context, client *gitlabclient.Client, input UpdateInput) (Output, error)
Update updates a GitLab security category.
type UpdateInput ¶
type UpdateInput struct {
CategoryID int64 `json:"category_id" jsonschema:"Numeric security category ID,required"`
NamespaceID int64 `json:"namespace_id" jsonschema:"Numeric namespace ID,required"`
Name *string `json:"name,omitempty" jsonschema:"New security category name"`
Description *string `json:"description,omitempty" jsonschema:"New security category description"`
}
UpdateInput defines parameters for updating a security category.