groupvariables

package
v1.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package groupvariables implements GitLab group-level CI/CD variable operations including list, get, create, update, and delete.

markdown.go provides Markdown formatting functions for group CI/CD variable MCP tool output.

register.go wires groupvariables MCP tools to the MCP server.

Index

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 group CI/CD variable by key.

func FormatListMarkdown

func FormatListMarkdown(out ListOutput) string

FormatListMarkdown renders a paginated list of group CI/CD variables as a Markdown table.

func FormatOutputMarkdown

func FormatOutputMarkdown(v Output) string

FormatOutputMarkdown renders a single group CI/CD variable as Markdown.

func RegisterMeta

func RegisterMeta(server *mcp.Server, client *gitlab.Client)

RegisterMeta registers the gitlab_group_variable meta-tool.

func RegisterTools

func RegisterTools(server *mcp.Server, client *gitlab.Client)

RegisterTools registers the five group CI/CD variable management tools with the MCP server.

Types

type CreateInput

type CreateInput struct {
	GroupID          toolutil.StringOrInt `json:"group_id"                       jsonschema:"Group ID or URL-encoded path,required"`
	Key              string               `json:"key"                            jsonschema:"Variable key name,required"`
	Value            string               `json:"value"                          jsonschema:"Variable value"`
	Description      string               `json:"description,omitempty"          jsonschema:"Variable description"`
	VariableType     string               `json:"variable_type,omitempty"        jsonschema:"Variable type: env_var or file"`
	Protected        *bool                `json:"protected,omitempty"            jsonschema:"Only expose in protected branches/tags"`
	Masked           *bool                `json:"masked,omitempty"               jsonschema:"Mask variable value in job logs"`
	MaskedAndHidden  *bool                `json:"masked_and_hidden,omitempty"    jsonschema:"Mask and hide variable value"`
	Raw              *bool                `json:"raw,omitempty"                  jsonschema:"Treat variable value as raw string"`
	EnvironmentScope string               `json:"environment_scope,omitempty"    jsonschema:"Environment scope (default: *)"`
}

CreateInput holds parameters for creating a group CI/CD variable.

type DeleteInput

type DeleteInput struct {
	GroupID          toolutil.StringOrInt `json:"group_id"                       jsonschema:"Group ID or URL-encoded path,required"`
	Key              string               `json:"key"                            jsonschema:"Variable key name,required"`
	EnvironmentScope string               `json:"environment_scope,omitempty"    jsonschema:"Filter by environment scope"`
}

DeleteInput holds parameters for deleting a group CI/CD variable.

type GetInput

type GetInput struct {
	GroupID          toolutil.StringOrInt `json:"group_id"          jsonschema:"Group ID or URL-encoded path,required"`
	Key              string               `json:"key"               jsonschema:"Variable key name,required"`
	EnvironmentScope string               `json:"environment_scope,omitempty" jsonschema:"Filter by environment scope"`
}

GetInput holds parameters for retrieving a single group CI/CD variable.

type ListInput

type ListInput struct {
	GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	toolutil.PaginationInput
}

ListInput holds parameters for listing group CI/CD variables.

type ListOutput

type ListOutput struct {
	toolutil.HintableOutput
	Variables  []Output                  `json:"variables"`
	Pagination toolutil.PaginationOutput `json:"pagination"`
}

ListOutput represents a paginated list of group CI/CD variables.

func List

func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)

List retrieves a paginated list of CI/CD variables for a GitLab group.

type Output

type Output struct {
	toolutil.HintableOutput
	Key              string `json:"key"`
	Value            string `json:"value"`
	VariableType     string `json:"variable_type"`
	Protected        bool   `json:"protected"`
	Masked           bool   `json:"masked"`
	Hidden           bool   `json:"hidden"`
	Raw              bool   `json:"raw"`
	EnvironmentScope string `json:"environment_scope"`
	Description      string `json:"description"`
}

Output represents a single group CI/CD variable.

func Create

func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)

Create creates a new CI/CD variable in a GitLab group.

func Get

func Get(ctx context.Context, client *gitlabclient.Client, input GetInput) (Output, error)

Get retrieves a single group CI/CD variable by key.

func Update

func Update(ctx context.Context, client *gitlabclient.Client, input UpdateInput) (Output, error)

Update modifies an existing group CI/CD variable.

type UpdateInput

type UpdateInput struct {
	GroupID          toolutil.StringOrInt `json:"group_id"                       jsonschema:"Group ID or URL-encoded path,required"`
	Key              string               `json:"key"                            jsonschema:"Variable key name,required"`
	Value            string               `json:"value,omitempty"                jsonschema:"Updated variable value"`
	Description      string               `json:"description,omitempty"          jsonschema:"Updated variable description"`
	VariableType     string               `json:"variable_type,omitempty"        jsonschema:"Variable type: env_var or file"`
	Protected        *bool                `json:"protected,omitempty"            jsonschema:"Only expose in protected branches/tags"`
	Masked           *bool                `json:"masked,omitempty"               jsonschema:"Mask variable value in job logs"`
	Raw              *bool                `json:"raw,omitempty"                  jsonschema:"Treat variable value as raw string"`
	EnvironmentScope string               `json:"environment_scope,omitempty"    jsonschema:"Filter by environment scope"`
}

UpdateInput holds parameters for updating a group CI/CD variable.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL