Help us shape the future of Go! Take the 2026 Go Developer Survey

civariables

package
v3.2.0 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package civariables implements MCP tools for GitLab project CI/CD variable operations.

The package wraps the GitLab Project-level variables API:

Index

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 project CI/CD variable actions.

func Delete

func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) error

Delete deletes resources for the civariables package.

func DeleteOutput

func DeleteOutput(ctx context.Context, client *gitlabclient.Client, input DeleteInput) (toolutil.DeleteOutput, error)

DeleteOutput deletes a CI/CD variable and returns the canonical success message shape.

func FormatListMarkdown

func FormatListMarkdown(out ListOutput) string

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

func FormatOutputMarkdown

func FormatOutputMarkdown(v Output) string

FormatOutputMarkdown renders a single CI/CD variable as Markdown.

Types

type CreateInput

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

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

type DeleteInput

type DeleteInput struct {
	ProjectID        toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	Key              string               `json:"key" jsonschema:"Variable key name,required"`
	EnvironmentScope string               `json:"environment_scope" jsonschema:"Filter by environment scope (shorthand for filter.environment_scope)"`
	Filter           *Filter              `` /* 130-byte string literal not displayed */
}

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

type Filter

type Filter struct {
	EnvironmentScope string `json:"environment_scope,omitempty" jsonschema:"Filter the variable by its environment scope (e.g. * or production)"`
}

Filter mirrors gitlab.VariableFilter: the available filter on project variable get/update/delete operations, selecting the variable instance by its environment scope when several variables share a key.

type GetInput

type GetInput struct {
	ProjectID        toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	Key              string               `json:"key" jsonschema:"Variable key name,required"`
	EnvironmentScope string               `json:"environment_scope" jsonschema:"Filter by environment scope (shorthand for filter.environment_scope)"`
	Filter           *Filter              `` /* 130-byte string literal not displayed */
}

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

type ListInput

type ListInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	OrderBy   string               `json:"order_by,omitempty" jsonschema:"Column by which to order keyset-paginated results"`
	Sort      string               `json:"sort,omitempty" jsonschema:"Sort direction for keyset-paginated results (asc, desc)"`
	toolutil.PaginationInput
	toolutil.KeysetPaginationInput
}

ListInput holds parameters for listing project CI/CD variables. The OrderBy, Sort, and embedded KeysetPaginationInput fields mirror the SDK gitlab.ListProjectVariablesOptions (its embedded gitlab.ListOptions: order_by, sort, pagination, page_token) so every supported list filter is exposed 1:1.

type ListOutput

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

ListOutput represents a paginated list of CI/CD variables.

func List

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

List lists resources for the civariables package.

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

func Create

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

Create creates resources for the civariables package.

func Get

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

Get retrieves resources for the civariables package.

func Update

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

Update updates resources for the civariables package.

type UpdateInput

type UpdateInput struct {
	ProjectID        toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	Key              string               `json:"key" jsonschema:"Variable key name,required"`
	Value            string               `json:"value" jsonschema:"Updated variable value"`
	Description      string               `json:"description" jsonschema:"Updated variable description"`
	VariableType     string               `json:"variable_type,omitempty" jsonschema:"Variable type: env_var or file"`
	Protected        *bool                `json:"protected" jsonschema:"Only expose in protected branches/tags"`
	Masked           *bool                `json:"masked" jsonschema:"Mask variable value in job logs"`
	Raw              *bool                `json:"raw" jsonschema:"Treat variable value as raw string"`
	EnvironmentScope string               `json:"environment_scope" jsonschema:"Filter by environment scope (shorthand for filter.environment_scope)"`
	Filter           *Filter              `` /* 130-byte string literal not displayed */
}

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

Jump to

Keyboard shortcuts

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