Documentation
¶
Overview ¶
markdown.go provides Markdown formatting functions for pipeline schedule MCP tool output.
Package pipelineschedules implements MCP tool handlers for GitLab pipeline schedule operations including list, get, create, update, delete, run, and schedule variable management via the PipelineSchedules API.
register.go wires pipelineschedules MCP tools to the MCP server.
Index ¶
- func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) error
- func DeleteVariable(ctx context.Context, client *gitlabclient.Client, input DeleteVariableInput) error
- func FormatListMarkdown(out ListOutput) string
- func FormatOutputMarkdown(s Output) string
- func FormatTriggeredPipelinesMarkdown(out TriggeredPipelinesListOutput) string
- func FormatVariableMarkdown(v VariableOutput) string
- func RegisterTools(server *mcp.Server, client *gitlab.Client)
- type CreateInput
- type CreateVariableInput
- type DeleteInput
- type DeleteVariableInput
- type EditVariableInput
- type GetInput
- type ListInput
- type ListOutput
- type ListTriggeredPipelinesInput
- type Output
- func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)
- func Get(ctx context.Context, client *gitlabclient.Client, input GetInput) (Output, error)
- func Run(ctx context.Context, client *gitlabclient.Client, input RunInput) (Output, error)
- func TakeOwnership(ctx context.Context, client *gitlabclient.Client, input TakeOwnershipInput) (Output, error)
- func Update(ctx context.Context, client *gitlabclient.Client, input UpdateInput) (Output, error)
- type RunInput
- type TakeOwnershipInput
- type TriggeredPipelineOutput
- type TriggeredPipelinesListOutput
- type UpdateInput
- type VariableOutput
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 deletes resources for the pipelineschedules package.
func DeleteVariable ¶
func DeleteVariable(ctx context.Context, client *gitlabclient.Client, input DeleteVariableInput) error
DeleteVariable deletes a pipeline schedule variable by key.
func FormatListMarkdown ¶
func FormatListMarkdown(out ListOutput) string
FormatListMarkdown renders a paginated list of pipeline schedules as a Markdown table.
func FormatOutputMarkdown ¶
FormatOutputMarkdown renders a single pipeline schedule as Markdown.
func FormatTriggeredPipelinesMarkdown ¶
func FormatTriggeredPipelinesMarkdown(out TriggeredPipelinesListOutput) string
FormatTriggeredPipelinesMarkdown renders a list of triggered pipelines as Markdown.
func FormatVariableMarkdown ¶
func FormatVariableMarkdown(v VariableOutput) string
FormatVariableMarkdown renders a pipeline schedule variable as Markdown.
Types ¶
type CreateInput ¶
type CreateInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
Description string `json:"description" jsonschema:"Schedule description,required"`
Ref string `json:"ref" jsonschema:"Branch or tag to run the pipeline on,required"`
Cron string `json:"cron" jsonschema:"Cron expression (e.g. 0 1 * * *),required"`
CronTimezone string `json:"cron_timezone,omitempty" jsonschema:"Cron timezone (e.g. UTC or America/New_York)"`
Active *bool `json:"active,omitempty" jsonschema:"Whether the schedule is active (default: true)"`
}
CreateInput contains parameters for creating a pipeline schedule.
type CreateVariableInput ¶
type CreateVariableInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
ScheduleID int `json:"schedule_id" jsonschema:"Pipeline schedule ID,required"`
Key string `json:"key" jsonschema:"Variable key,required"`
Value string `json:"value" jsonschema:"Variable value,required"`
VariableType string `json:"variable_type,omitempty" jsonschema:"Variable type: env_var (default) or file"`
}
CreateVariableInput defines parameters for creating a pipeline schedule variable.
type DeleteInput ¶
type DeleteInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
ScheduleID int `json:"schedule_id" jsonschema:"Pipeline schedule ID,required"`
}
DeleteInput contains parameters for deleting a pipeline schedule.
type DeleteVariableInput ¶
type DeleteVariableInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
ScheduleID int `json:"schedule_id" jsonschema:"Pipeline schedule ID,required"`
Key string `json:"key" jsonschema:"Variable key to delete,required"`
}
DeleteVariableInput defines parameters for deleting a pipeline schedule variable.
type EditVariableInput ¶
type EditVariableInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
ScheduleID int `json:"schedule_id" jsonschema:"Pipeline schedule ID,required"`
Key string `json:"key" jsonschema:"Variable key to edit,required"`
Value string `json:"value" jsonschema:"New variable value,required"`
VariableType string `json:"variable_type,omitempty" jsonschema:"Variable type: env_var or file"`
}
EditVariableInput defines parameters for editing a pipeline schedule variable.
type GetInput ¶
type GetInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
ScheduleID int `json:"schedule_id" jsonschema:"Pipeline schedule ID,required"`
}
GetInput contains parameters for retrieving a single pipeline schedule.
type ListInput ¶
type ListInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
Scope string `json:"scope,omitempty" jsonschema:"Filter by scope: active or inactive"`
toolutil.PaginationInput
}
ListInput contains parameters for listing pipeline schedules.
type ListOutput ¶
type ListOutput struct {
toolutil.HintableOutput
Schedules []Output `json:"schedules"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListOutput represents a paginated list of pipeline schedules.
func List ¶
func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
List lists resources for the pipelineschedules package.
type ListTriggeredPipelinesInput ¶
type ListTriggeredPipelinesInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
ScheduleID int `json:"schedule_id" jsonschema:"Pipeline schedule ID,required"`
Page int64 `json:"page,omitempty" jsonschema:"Page number for pagination"`
PerPage int64 `json:"per_page,omitempty" jsonschema:"Items per page (max 100)"`
}
ListTriggeredPipelinesInput defines parameters for listing pipelines triggered by a schedule.
type Output ¶
type Output struct {
toolutil.HintableOutput
ID int `json:"id"`
Description string `json:"description"`
Ref string `json:"ref"`
Cron string `json:"cron"`
CronTimezone string `json:"cron_timezone"`
NextRunAt string `json:"next_run_at,omitempty"`
Active bool `json:"active"`
OwnerName string `json:"owner_name,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
UpdatedAt string `json:"updated_at,omitempty"`
}
Output represents a single pipeline schedule in MCP responses.
func Create ¶
func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)
Create creates resources for the pipelineschedules package.
func TakeOwnership ¶
func TakeOwnership(ctx context.Context, client *gitlabclient.Client, input TakeOwnershipInput) (Output, error)
TakeOwnership takes ownership of a pipeline schedule, making the current user the owner.
func Update ¶
func Update(ctx context.Context, client *gitlabclient.Client, input UpdateInput) (Output, error)
Update updates resources for the pipelineschedules package.
type RunInput ¶
type RunInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
ScheduleID int `json:"schedule_id" jsonschema:"Pipeline schedule ID,required"`
}
RunInput contains parameters for triggering a pipeline schedule.
type TakeOwnershipInput ¶
type TakeOwnershipInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
ScheduleID int `json:"schedule_id" jsonschema:"Pipeline schedule ID,required"`
}
TakeOwnershipInput defines parameters for taking ownership of a pipeline schedule.
type TriggeredPipelineOutput ¶
type TriggeredPipelineOutput struct {
ID int `json:"id"`
IID int `json:"iid"`
Ref string `json:"ref"`
SHA string `json:"sha"`
Status string `json:"status"`
Source string `json:"source"`
WebURL string `json:"web_url"`
}
TriggeredPipelineOutput represents a pipeline triggered by a schedule.
type TriggeredPipelinesListOutput ¶
type TriggeredPipelinesListOutput struct {
toolutil.HintableOutput
Pipelines []TriggeredPipelineOutput `json:"pipelines"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
TriggeredPipelinesListOutput represents the paginated result of pipelines triggered by a schedule.
func ListTriggeredPipelines ¶
func ListTriggeredPipelines(ctx context.Context, client *gitlabclient.Client, input ListTriggeredPipelinesInput) (TriggeredPipelinesListOutput, error)
ListTriggeredPipelines lists all pipelines triggered by a specific schedule.
type UpdateInput ¶
type UpdateInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
ScheduleID int `json:"schedule_id" jsonschema:"Pipeline schedule ID,required"`
Description string `json:"description,omitempty" jsonschema:"Updated description"`
Ref string `json:"ref,omitempty" jsonschema:"Updated branch or tag"`
Cron string `json:"cron,omitempty" jsonschema:"Updated cron expression"`
CronTimezone string `json:"cron_timezone,omitempty" jsonschema:"Updated cron timezone"`
Active *bool `json:"active,omitempty" jsonschema:"Enable or disable the schedule"`
}
UpdateInput contains parameters for editing a pipeline schedule.
type VariableOutput ¶
type VariableOutput struct {
toolutil.HintableOutput
Key string `json:"key"`
Value string `json:"value"`
VariableType string `json:"variable_type"`
}
VariableOutput represents a pipeline schedule variable.
func CreateVariable ¶
func CreateVariable(ctx context.Context, client *gitlabclient.Client, input CreateVariableInput) (VariableOutput, error)
CreateVariable creates a new variable for a pipeline schedule.
func EditVariable ¶
func EditVariable(ctx context.Context, client *gitlabclient.Client, input EditVariableInput) (VariableOutput, error)
EditVariable edits an existing pipeline schedule variable.