Documentation
¶
Overview ¶
Package runners implements GitLab Runners API operations as MCP tools. It supports listing, getting, updating, removing runners, managing project/group runner assignments, listing runner jobs, registering/verifying runners, and resetting runner authentication tokens.
Index ¶
- func DeleteByID(ctx context.Context, client *gitlabclient.Client, input DeleteByIDInput) error
- func DeleteByToken(ctx context.Context, client *gitlabclient.Client, input DeleteByTokenInput) error
- func DisableProject(ctx context.Context, client *gitlabclient.Client, input DisableProjectInput) error
- func FormatAuthTokenMarkdown(out AuthTokenOutput) string
- func FormatDetailsMarkdown(out DetailsOutput) string
- func FormatJobListMarkdown(out JobListOutput) string
- func FormatListMarkdown(out ListOutput) string
- func FormatManagerListMarkdown(out ManagerListOutput) string
- func FormatOutputMarkdown(out Output) string
- func FormatRegTokenMarkdown(out AuthTokenOutput) string
- func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- func Remove(ctx context.Context, client *gitlabclient.Client, input RemoveInput) error
- func Verify(ctx context.Context, client *gitlabclient.Client, input VerifyInput) error
- type AuthTokenOutput
- func ResetAuthToken(ctx context.Context, client *gitlabclient.Client, input ResetAuthTokenInput) (AuthTokenOutput, error)
- func ResetGroupRegToken(ctx context.Context, client *gitlabclient.Client, ...) (AuthTokenOutput, error)deprecated
- func ResetInstanceRegToken(ctx context.Context, client *gitlabclient.Client, _ ResetInstanceRegTokenInput) (AuthTokenOutput, error)deprecated
- func ResetProjectRegToken(ctx context.Context, client *gitlabclient.Client, ...) (AuthTokenOutput, error)deprecated
- type DeleteByIDInput
- type DeleteByTokenInput
- type DetailsOutput
- type DisableProjectInput
- type EnableProjectInput
- type GetInput
- type JobListOutput
- type ListAllInput
- type ListGroupInput
- type ListInput
- type ListJobsInput
- type ListManagersInput
- type ListOutput
- func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
- func ListAll(ctx context.Context, client *gitlabclient.Client, input ListAllInput) (ListOutput, error)
- func ListGroup(ctx context.Context, client *gitlabclient.Client, input ListGroupInput) (ListOutput, error)
- func ListProject(ctx context.Context, client *gitlabclient.Client, input ListProjectInput) (ListOutput, error)
- type ListProjectInput
- type ManagerListOutput
- type ManagerOutput
- type Output
- type RegisterInput
- type RemoveInput
- type ResetAuthTokenInput
- type ResetGroupRegTokenInput
- type ResetInstanceRegTokenInput
- type ResetProjectRegTokenInput
- type UpdateInput
- type VerifyInput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeleteByID ¶
func DeleteByID(ctx context.Context, client *gitlabclient.Client, input DeleteByIDInput) error
DeleteByID deletes a registered runner by its ID.
func DeleteByToken ¶
func DeleteByToken(ctx context.Context, client *gitlabclient.Client, input DeleteByTokenInput) error
DeleteByToken deletes a registered runner using its authentication token.
func DisableProject ¶
func DisableProject(ctx context.Context, client *gitlabclient.Client, input DisableProjectInput) error
DisableProject removes a runner from a project.
func FormatAuthTokenMarkdown ¶
func FormatAuthTokenMarkdown(out AuthTokenOutput) string
FormatAuthTokenMarkdown renders an auth token as Markdown.
func FormatDetailsMarkdown ¶
func FormatDetailsMarkdown(out DetailsOutput) string
FormatDetailsMarkdown renders detailed runner information as Markdown.
func FormatJobListMarkdown ¶
func FormatJobListMarkdown(out JobListOutput) string
FormatJobListMarkdown renders a list of runner jobs as Markdown.
func FormatListMarkdown ¶
func FormatListMarkdown(out ListOutput) string
FormatListMarkdown renders a list of runners as Markdown.
func FormatManagerListMarkdown ¶
func FormatManagerListMarkdown(out ManagerListOutput) string
FormatManagerListMarkdown renders a list of runner managers as Markdown.
func FormatOutputMarkdown ¶
FormatOutputMarkdown renders a runner output as Markdown.
func FormatRegTokenMarkdown ¶
func FormatRegTokenMarkdown(out AuthTokenOutput) string
FormatRegTokenMarkdown renders a registration token as Markdown.
func RegisterMeta ¶
func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)
RegisterMeta registers the gitlab_runner meta-tool with all runner actions.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers all runner management MCP tools.
func Remove ¶
func Remove(ctx context.Context, client *gitlabclient.Client, input RemoveInput) error
Remove deletes a runner by its ID.
func Verify ¶
func Verify(ctx context.Context, client *gitlabclient.Client, input VerifyInput) error
Verify checks whether a runner authentication token is valid.
Types ¶
type AuthTokenOutput ¶
type AuthTokenOutput struct {
toolutil.HintableOutput
Token string `json:"token"`
ExpiresAt string `json:"token_expires_at,omitempty"`
}
AuthTokenOutput represents a runner authentication token.
func ResetAuthToken ¶
func ResetAuthToken(ctx context.Context, client *gitlabclient.Client, input ResetAuthTokenInput) (AuthTokenOutput, error)
ResetAuthToken resets the authentication token for a runner.
func ResetGroupRegToken
deprecated
func ResetGroupRegToken(ctx context.Context, client *gitlabclient.Client, input ResetGroupRegTokenInput) (AuthTokenOutput, error)
ResetGroupRegToken resets a group's runner registration token.
Deprecated: Scheduled for removal in GitLab 20.0.
func ResetInstanceRegToken
deprecated
func ResetInstanceRegToken(ctx context.Context, client *gitlabclient.Client, _ ResetInstanceRegTokenInput) (AuthTokenOutput, error)
ResetInstanceRegToken resets the instance-level runner registration token.
Deprecated: Scheduled for removal in GitLab 20.0.
func ResetProjectRegToken
deprecated
func ResetProjectRegToken(ctx context.Context, client *gitlabclient.Client, input ResetProjectRegTokenInput) (AuthTokenOutput, error)
ResetProjectRegToken resets a project's runner registration token.
Deprecated: Scheduled for removal in GitLab 20.0.
type DeleteByIDInput ¶
type DeleteByIDInput struct {
RunnerID int64 `json:"runner_id" jsonschema:"Runner ID to delete,required"`
}
DeleteByIDInput defines parameters for deleting a registered runner by ID.
type DeleteByTokenInput ¶
type DeleteByTokenInput struct {
Token string `json:"token" jsonschema:"Runner authentication token,required"`
}
DeleteByTokenInput defines parameters for deleting a runner by its token.
type DetailsOutput ¶
type DetailsOutput struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Description string `json:"description"`
Name string `json:"name"`
Paused bool `json:"paused"`
RunnerType string `json:"runner_type"`
Online bool `json:"online"`
Status string `json:"status"`
ContactedAt string `json:"contacted_at,omitempty"`
MaintenanceNote string `json:"maintenance_note,omitempty"`
TagList []string `json:"tag_list,omitempty"`
RunUntagged bool `json:"run_untagged"`
Locked bool `json:"locked"`
AccessLevel string `json:"access_level"`
MaximumTimeout int64 `json:"maximum_timeout,omitempty"`
ProjectCount int `json:"project_count,omitempty"`
GroupCount int `json:"group_count,omitempty"`
}
DetailsOutput represents detailed runner information.
func Get ¶
func Get(ctx context.Context, client *gitlabclient.Client, input GetInput) (DetailsOutput, error)
Get returns detailed information about a specific runner.
func Update ¶
func Update(ctx context.Context, client *gitlabclient.Client, input UpdateInput) (DetailsOutput, error)
Update modifies a runner's configuration and returns updated details.
type DisableProjectInput ¶
type DisableProjectInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
RunnerID int64 `json:"runner_id" jsonschema:"Runner ID to remove from project,required"`
}
DisableProjectInput defines parameters for removing a runner from a project.
type EnableProjectInput ¶
type EnableProjectInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
RunnerID int64 `json:"runner_id" jsonschema:"Runner ID to assign,required"`
}
EnableProjectInput defines parameters for assigning a runner to a project.
type GetInput ¶
type GetInput struct {
RunnerID int64 `json:"runner_id" jsonschema:"Runner ID,required"`
}
GetInput defines parameters for getting runner details.
type JobListOutput ¶
type JobListOutput struct {
toolutil.HintableOutput
Jobs []jobs.Output `json:"jobs"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
JobListOutput holds a paginated list of runner jobs.
func ListJobs ¶
func ListJobs(ctx context.Context, client *gitlabclient.Client, input ListJobsInput) (JobListOutput, error)
ListJobs returns jobs processed by a specific runner.
type ListAllInput ¶
type ListAllInput struct {
Type string `json:"type,omitempty" jsonschema:"Runner type filter: instance_type, group_type, project_type"`
Status string `json:"status,omitempty" jsonschema:"Runner status filter: online, offline, stale, never_contacted"`
Paused *bool `json:"paused,omitempty" jsonschema:"Filter by paused state"`
TagList string `json:"tag_list,omitempty" jsonschema:"Comma-separated list of tags to filter by"`
toolutil.PaginationInput
}
ListAllInput defines parameters for listing all runners (admin).
type ListGroupInput ¶
type ListGroupInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
Type string `json:"type,omitempty" jsonschema:"Runner type filter: instance_type, group_type, project_type"`
Status string `json:"status,omitempty" jsonschema:"Runner status filter: online, offline, stale, never_contacted"`
TagList string `json:"tag_list,omitempty" jsonschema:"Comma-separated list of tags to filter by"`
toolutil.PaginationInput
}
ListGroupInput defines parameters for listing group runners.
type ListInput ¶
type ListInput struct {
Type string `json:"type,omitempty" jsonschema:"Runner type filter: instance_type, group_type, project_type"`
Status string `json:"status,omitempty" jsonschema:"Runner status filter: online, offline, stale, never_contacted"`
Paused *bool `json:"paused,omitempty" jsonschema:"Filter by paused state"`
TagList string `json:"tag_list,omitempty" jsonschema:"Comma-separated list of tags to filter by"`
toolutil.PaginationInput
}
ListInput defines parameters for listing owned runners.
type ListJobsInput ¶
type ListJobsInput struct {
RunnerID int64 `json:"runner_id" jsonschema:"Runner ID,required"`
Status string `json:"status,omitempty" jsonschema:"Job status filter: running, success, failed, canceled"`
OrderBy string `json:"order_by,omitempty" jsonschema:"Order by field: id (default)"`
Sort string `json:"sort,omitempty" jsonschema:"Sort direction: asc, desc"`
toolutil.PaginationInput
}
ListJobsInput defines parameters for listing jobs processed by a runner.
type ListManagersInput ¶
type ListManagersInput struct {
RunnerID int64 `json:"runner_id" jsonschema:"Runner ID,required"`
}
ListManagersInput defines parameters for listing runner managers.
type ListOutput ¶
type ListOutput struct {
toolutil.HintableOutput
Runners []Output `json:"runners"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListOutput holds a paginated list of runners.
func List ¶
func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
List returns owned runners with optional filters.
func ListAll ¶
func ListAll(ctx context.Context, client *gitlabclient.Client, input ListAllInput) (ListOutput, error)
ListAll returns all runners across the GitLab instance (admin endpoint).
func ListGroup ¶
func ListGroup(ctx context.Context, client *gitlabclient.Client, input ListGroupInput) (ListOutput, error)
ListGroup returns runners available in a specific group.
func ListProject ¶
func ListProject(ctx context.Context, client *gitlabclient.Client, input ListProjectInput) (ListOutput, error)
ListProject returns runners assigned to a specific project.
type ListProjectInput ¶
type ListProjectInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
Type string `json:"type,omitempty" jsonschema:"Runner type filter: instance_type, group_type, project_type"`
Status string `json:"status,omitempty" jsonschema:"Runner status filter: online, offline, stale, never_contacted"`
TagList string `json:"tag_list,omitempty" jsonschema:"Comma-separated list of tags to filter by"`
toolutil.PaginationInput
}
ListProjectInput defines parameters for listing project runners.
type ManagerListOutput ¶
type ManagerListOutput struct {
toolutil.HintableOutput
Managers []ManagerOutput `json:"managers"`
}
ManagerListOutput holds a list of runner managers.
func ListManagers ¶
func ListManagers(ctx context.Context, client *gitlabclient.Client, input ListManagersInput) (ManagerListOutput, error)
ListManagers retrieves all managers for a specific runner.
type ManagerOutput ¶
type ManagerOutput struct {
ID int64 `json:"id"`
SystemID string `json:"system_id"`
Version string `json:"version"`
Revision string `json:"revision"`
Platform string `json:"platform"`
Architecture string `json:"architecture"`
CreatedAt string `json:"created_at,omitempty"`
ContactedAt string `json:"contacted_at,omitempty"`
IPAddress string `json:"ip_address"`
Status string `json:"status"`
}
ManagerOutput represents a runner manager in responses.
type Output ¶
type Output struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Description string `json:"description"`
Name string `json:"name"`
Paused bool `json:"paused"`
RunnerType string `json:"runner_type"`
Online bool `json:"online"`
Status string `json:"status"`
}
Output represents a GitLab CI Runner in responses.
func EnableProject ¶
func EnableProject(ctx context.Context, client *gitlabclient.Client, input EnableProjectInput) (Output, error)
EnableProject assigns a runner to a project.
func Register ¶
func Register(ctx context.Context, client *gitlabclient.Client, input RegisterInput) (Output, error)
Register creates a new runner with the given registration token.
type RegisterInput ¶
type RegisterInput struct {
Token string `json:"token" jsonschema:"Registration token,required"`
Description string `json:"description,omitempty" jsonschema:"Runner description"`
Paused *bool `json:"paused,omitempty" jsonschema:"Register in paused state"`
Locked *bool `json:"locked,omitempty" jsonschema:"Lock runner to current project"`
RunUntagged *bool `json:"run_untagged,omitempty" jsonschema:"Whether to run untagged jobs"`
TagList []string `json:"tag_list,omitempty" jsonschema:"List of runner tags"`
AccessLevel string `json:"access_level,omitempty" jsonschema:"Access level: not_protected, ref_protected"`
MaximumTimeout *int64 `json:"maximum_timeout,omitempty" jsonschema:"Maximum job timeout in seconds"`
MaintenanceNote string `json:"maintenance_note,omitempty" jsonschema:"Maintenance note"`
}
RegisterInput defines parameters for registering a new runner.
type RemoveInput ¶
type RemoveInput struct {
RunnerID int64 `json:"runner_id" jsonschema:"Runner ID to remove,required"`
}
RemoveInput defines parameters for removing a runner.
type ResetAuthTokenInput ¶
type ResetAuthTokenInput struct {
RunnerID int64 `json:"runner_id" jsonschema:"Runner ID,required"`
}
ResetAuthTokenInput defines parameters for resetting a runner's auth token.
type ResetGroupRegTokenInput ¶
type ResetGroupRegTokenInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
}
ResetGroupRegTokenInput defines parameters for resetting group runner reg token.
type ResetInstanceRegTokenInput ¶
type ResetInstanceRegTokenInput struct{}
ResetInstanceRegTokenInput is an empty struct for the instance reg token reset (no parameters needed).
type ResetProjectRegTokenInput ¶
type ResetProjectRegTokenInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
}
ResetProjectRegTokenInput defines parameters for resetting project runner reg token.
type UpdateInput ¶
type UpdateInput struct {
RunnerID int64 `json:"runner_id" jsonschema:"Runner ID,required"`
Description string `json:"description,omitempty" jsonschema:"Runner description"`
Paused *bool `json:"paused,omitempty" jsonschema:"Pause/unpause the runner"`
TagList []string `json:"tag_list,omitempty" jsonschema:"List of runner tags"`
RunUntagged *bool `json:"run_untagged,omitempty" jsonschema:"Whether to run untagged jobs"`
Locked *bool `json:"locked,omitempty" jsonschema:"Whether runner is locked to current project"`
AccessLevel string `json:"access_level,omitempty" jsonschema:"Access level: not_protected, ref_protected"`
MaximumTimeout *int64 `json:"maximum_timeout,omitempty" jsonschema:"Maximum job timeout in seconds"`
MaintenanceNote string `json:"maintenance_note,omitempty" jsonschema:"Maintenance note for the runner"`
}
UpdateInput defines parameters for updating a runner.
type VerifyInput ¶
type VerifyInput struct {
Token string `json:"token" jsonschema:"Runner authentication token to verify,required"`
}
VerifyInput defines parameters for verifying a runner token.