Documentation
¶
Overview ¶
Package integrations implements MCP tool handlers for GitLab project integrations (services). It wraps the ServicesService from client-go v2.
The generic List method returns all integrations. Get and Delete dispatch to the integration-specific client-go methods based on the slug parameter.
Index ¶
- func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) error
- func FormatGetMarkdown(out GetOutput) *mcp.CallToolResult
- func FormatListMarkdown(out ListOutput) *mcp.CallToolResult
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type DeleteInput
- type GetInput
- type GetOutput
- type IntegrationItem
- type ListInput
- type ListOutput
- type SetJiraInput
- type SetJiraOutput
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/disables a specific integration from a project.
func FormatGetMarkdown ¶
func FormatGetMarkdown(out GetOutput) *mcp.CallToolResult
FormatGetMarkdown formats a single integration.
func FormatListMarkdown ¶
func FormatListMarkdown(out ListOutput) *mcp.CallToolResult
FormatListMarkdown formats a list of integrations.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers all integration tools on the MCP server.
Types ¶
type DeleteInput ¶
type DeleteInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
Slug string `` /* 307-byte string literal not displayed */
}
DeleteInput is the input for deleting/disabling an integration.
type GetInput ¶
type GetInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
Slug string `` /* 307-byte string literal not displayed */
}
GetInput is the input for getting an integration by slug.
type GetOutput ¶
type GetOutput struct {
toolutil.HintableOutput
Integration IntegrationItem `json:"integration"`
}
GetOutput is the output for a single integration.
type IntegrationItem ¶
type IntegrationItem struct {
ID int64 `json:"id"`
Title string `json:"title"`
Slug string `json:"slug"`
Active bool `json:"active"`
CreatedAt string `json:"created_at,omitempty"`
UpdatedAt string `json:"updated_at,omitempty"`
}
IntegrationItem is a summary of an integration/service.
type ListInput ¶
type ListInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
}
ListInput is the input for listing project integrations.
type ListOutput ¶
type ListOutput struct {
toolutil.HintableOutput
Integrations []IntegrationItem `json:"integrations"`
}
ListOutput is the output for listing integrations.
func List ¶
func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
List returns all integrations for a project.
type SetJiraInput ¶
type SetJiraInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
URL string `json:"url" jsonschema:"Jira instance base URL,required"`
Username string `json:"username,omitempty" jsonschema:"Jira username"`
Password string `json:"password,omitempty" jsonschema:"Jira password or API token"`
Active *bool `json:"active,omitempty" jsonschema:"Enable or disable the integration"`
APIURL string `json:"api_url,omitempty" jsonschema:"Jira API URL (overrides base URL)"`
JiraAuthType *int64 `json:"jira_auth_type,omitempty" jsonschema:"Jira auth type (0=basic, 1=token)"`
JiraIssuePrefix string `json:"jira_issue_prefix,omitempty" jsonschema:"Jira issue key prefix"`
JiraIssueRegex string `json:"jira_issue_regex,omitempty" jsonschema:"Custom regex for Jira issue keys"`
JiraIssueTransitionAutomatic *bool `json:"jira_issue_transition_automatic,omitempty" jsonschema:"Auto-transition Jira issues"`
JiraIssueTransitionID string `json:"jira_issue_transition_id,omitempty" jsonschema:"Jira transition ID"`
CommitEvents *bool `json:"commit_events,omitempty" jsonschema:"Trigger on commit events"`
MergeRequestsEvents *bool `json:"merge_requests_events,omitempty" jsonschema:"Trigger on merge request events"`
CommentOnEventEnabled *bool `json:"comment_on_event_enabled,omitempty" jsonschema:"Add comments on Jira issues for events"`
IssuesEnabled *bool `json:"issues_enabled,omitempty" jsonschema:"Enable Jira issues integration"`
ProjectKeys []string `json:"project_keys,omitempty" jsonschema:"Jira project keys to restrict"`
UseInheritedSettings *bool `json:"use_inherited_settings,omitempty" jsonschema:"Use inherited settings from group"`
}
SetJiraInput is the input for configuring the Jira integration.
type SetJiraOutput ¶
type SetJiraOutput struct {
toolutil.HintableOutput
Integration IntegrationItem `json:"integration"`
}
SetJiraOutput is the output after configuring Jira.
func SetJira ¶
func SetJira(ctx context.Context, client *gitlabclient.Client, input SetJiraInput) (SetJiraOutput, error)
SetJira configures the Jira integration for a project.