Documentation
¶
Overview ¶
markdown.go provides Markdown formatting functions for resource event MCP tool output.
register.go wires resourceevents MCP tools to the MCP server.
Package resourceevents implements MCP tool handlers for GitLab resource label events, milestone events, and state events. These track changes to labels, milestones, and states on issues and merge requests.
Index ¶
- func FormatIterationEventMarkdown(out IterationEventOutput) string
- func FormatIterationEventsMarkdown(out ListIterationEventsOutput) string
- func FormatLabelEventMarkdown(out LabelEventOutput) string
- func FormatLabelEventsMarkdown(out ListLabelEventsOutput) string
- func FormatMilestoneEventMarkdown(out MilestoneEventOutput) string
- func FormatMilestoneEventsMarkdown(out ListMilestoneEventsOutput) string
- func FormatStateEventMarkdown(out StateEventOutput) string
- func FormatStateEventsMarkdown(out ListStateEventsOutput) string
- func FormatWeightEventsMarkdown(out ListWeightEventsOutput) string
- func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type GetIssueIterationEventInput
- type GetIssueLabelEventInput
- type GetIssueMilestoneEventInput
- type GetIssueStateEventInput
- type GetMRLabelEventInput
- type GetMRMilestoneEventInput
- type GetMRStateEventInput
- type IterationEventIterationOutput
- type IterationEventOutput
- type LabelEventLabelOutput
- type LabelEventOutput
- type ListIssueIterationEventsInput
- type ListIssueLabelEventsInput
- type ListIssueMilestoneEventsInput
- type ListIssueStateEventsInput
- type ListIssueWeightEventsInput
- type ListIterationEventsOutput
- type ListLabelEventsOutput
- type ListMRLabelEventsInput
- type ListMRMilestoneEventsInput
- type ListMRStateEventsInput
- type ListMilestoneEventsOutput
- type ListStateEventsOutput
- type ListWeightEventsOutput
- type MilestoneEventOutput
- type StateEventOutput
- type WeightEventOutput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatIterationEventMarkdown ¶
func FormatIterationEventMarkdown(out IterationEventOutput) string
FormatIterationEventMarkdown formats a single iteration event.
func FormatIterationEventsMarkdown ¶
func FormatIterationEventsMarkdown(out ListIterationEventsOutput) string
FormatIterationEventsMarkdown formats a list of iteration events.
func FormatLabelEventMarkdown ¶
func FormatLabelEventMarkdown(out LabelEventOutput) string
FormatLabelEventMarkdown formats a single label event.
func FormatLabelEventsMarkdown ¶
func FormatLabelEventsMarkdown(out ListLabelEventsOutput) string
FormatLabelEventsMarkdown formats a list of label events.
func FormatMilestoneEventMarkdown ¶
func FormatMilestoneEventMarkdown(out MilestoneEventOutput) string
FormatMilestoneEventMarkdown formats a single milestone event.
func FormatMilestoneEventsMarkdown ¶
func FormatMilestoneEventsMarkdown(out ListMilestoneEventsOutput) string
FormatMilestoneEventsMarkdown formats a list of milestone events.
func FormatStateEventMarkdown ¶
func FormatStateEventMarkdown(out StateEventOutput) string
FormatStateEventMarkdown formats a single state event.
func FormatStateEventsMarkdown ¶
func FormatStateEventsMarkdown(out ListStateEventsOutput) string
FormatStateEventsMarkdown formats a list of state events.
func FormatWeightEventsMarkdown ¶
func FormatWeightEventsMarkdown(out ListWeightEventsOutput) string
FormatWeightEventsMarkdown formats a list of weight events.
func RegisterMeta ¶
func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)
RegisterMeta registers the gitlab_resource_event meta-tool.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers individual resource event tools.
Types ¶
type GetIssueIterationEventInput ¶
type GetIssueIterationEventInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
IssueIID int64 `json:"issue_iid" jsonschema:"Issue internal ID,required"`
IterationEventID int64 `json:"iteration_event_id" jsonschema:"Iteration event ID,required"`
}
GetIssueIterationEventInput defines parameters for getting a single issue iteration event.
type GetIssueLabelEventInput ¶
type GetIssueLabelEventInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
IssueIID int64 `json:"issue_iid" jsonschema:"Issue internal ID,required"`
LabelEventID int64 `json:"label_event_id" jsonschema:"Label event ID,required"`
}
GetIssueLabelEventInput defines parameters for getting a single issue label event.
type GetIssueMilestoneEventInput ¶
type GetIssueMilestoneEventInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
IssueIID int64 `json:"issue_iid" jsonschema:"Issue internal ID,required"`
MilestoneEventID int64 `json:"milestone_event_id" jsonschema:"Milestone event ID,required"`
}
GetIssueMilestoneEventInput defines parameters for getting a single issue milestone event.
type GetIssueStateEventInput ¶
type GetIssueStateEventInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
IssueIID int64 `json:"issue_iid" jsonschema:"Issue internal ID,required"`
StateEventID int64 `json:"state_event_id" jsonschema:"State event ID,required"`
}
GetIssueStateEventInput defines parameters for getting a single issue state event.
type GetMRLabelEventInput ¶
type GetMRLabelEventInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
MRIID int64 `json:"merge_request_iid" jsonschema:"Merge request internal ID,required"`
LabelEventID int64 `json:"label_event_id" jsonschema:"Label event ID,required"`
}
GetMRLabelEventInput defines parameters for getting a single MR label event.
type GetMRMilestoneEventInput ¶
type GetMRMilestoneEventInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
MRIID int64 `json:"merge_request_iid" jsonschema:"Merge request internal ID,required"`
MilestoneEventID int64 `json:"milestone_event_id" jsonschema:"Milestone event ID,required"`
}
GetMRMilestoneEventInput defines parameters for getting a single MR milestone event.
type GetMRStateEventInput ¶
type GetMRStateEventInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
MRIID int64 `json:"merge_request_iid" jsonschema:"Merge request internal ID,required"`
StateEventID int64 `json:"state_event_id" jsonschema:"State event ID,required"`
}
GetMRStateEventInput defines parameters for getting a single MR state event.
type IterationEventIterationOutput ¶
type IterationEventIterationOutput struct {
ID int64 `json:"id"`
IID int64 `json:"iid"`
Sequence int64 `json:"sequence"`
GroupID int64 `json:"group_id"`
Title string `json:"title"`
State int64 `json:"state"`
WebURL string `json:"web_url,omitempty"`
StartDate string `json:"start_date,omitempty"`
DueDate string `json:"due_date,omitempty"`
}
IterationEventIterationOutput represents the iteration in an iteration event.
type IterationEventOutput ¶
type IterationEventOutput struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Action string `json:"action"`
CreatedAt string `json:"created_at"`
ResourceType string `json:"resource_type"`
ResourceID int64 `json:"resource_id"`
UserID int64 `json:"user_id"`
Username string `json:"username"`
Iteration IterationEventIterationOutput `json:"iteration"`
}
IterationEventOutput represents a resource iteration event.
func GetIssueIterationEvent ¶
func GetIssueIterationEvent(ctx context.Context, client *gitlabclient.Client, input GetIssueIterationEventInput) (IterationEventOutput, error)
GetIssueIterationEvent gets a single iteration event for an issue.
type LabelEventLabelOutput ¶
type LabelEventLabelOutput struct {
ID int64 `json:"id"`
Name string `json:"name"`
Color string `json:"color"`
TextColor string `json:"text_color"`
Description string `json:"description"`
}
LabelEventLabelOutput represents the label in a label event.
type LabelEventOutput ¶
type LabelEventOutput struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Action string `json:"action"`
CreatedAt string `json:"created_at"`
ResourceType string `json:"resource_type"`
ResourceID int64 `json:"resource_id"`
UserID int64 `json:"user_id"`
Username string `json:"username"`
Label LabelEventLabelOutput `json:"label"`
}
LabelEventOutput represents a resource label event.
func GetIssueLabelEvent ¶
func GetIssueLabelEvent(ctx context.Context, client *gitlabclient.Client, input GetIssueLabelEventInput) (LabelEventOutput, error)
GetIssueLabelEvent gets a single label event for an issue.
func GetMRLabelEvent ¶
func GetMRLabelEvent(ctx context.Context, client *gitlabclient.Client, input GetMRLabelEventInput) (LabelEventOutput, error)
GetMRLabelEvent gets a single label event for a merge request.
type ListIssueIterationEventsInput ¶
type ListIssueIterationEventsInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
IssueIID int64 `json:"issue_iid" jsonschema:"Issue internal ID,required"`
toolutil.PaginationInput
}
ListIssueIterationEventsInput defines parameters for listing issue iteration events.
type ListIssueLabelEventsInput ¶
type ListIssueLabelEventsInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
IssueIID int64 `json:"issue_iid" jsonschema:"Issue internal ID,required"`
toolutil.PaginationInput
}
ListIssueLabelEventsInput defines parameters for listing issue label events.
type ListIssueMilestoneEventsInput ¶
type ListIssueMilestoneEventsInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
IssueIID int64 `json:"issue_iid" jsonschema:"Issue internal ID,required"`
toolutil.PaginationInput
}
ListIssueMilestoneEventsInput defines parameters for listing issue milestone events.
type ListIssueStateEventsInput ¶
type ListIssueStateEventsInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
IssueIID int64 `json:"issue_iid" jsonschema:"Issue internal ID,required"`
toolutil.PaginationInput
}
ListIssueStateEventsInput defines parameters for listing issue state events.
type ListIssueWeightEventsInput ¶
type ListIssueWeightEventsInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
IssueIID int64 `json:"issue_iid" jsonschema:"Issue internal ID,required"`
toolutil.PaginationInput
}
ListIssueWeightEventsInput defines parameters for listing issue weight events.
type ListIterationEventsOutput ¶
type ListIterationEventsOutput struct {
toolutil.HintableOutput
Events []IterationEventOutput `json:"events"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListIterationEventsOutput wraps a list of iteration events.
func ListIssueIterationEvents ¶
func ListIssueIterationEvents(ctx context.Context, client *gitlabclient.Client, input ListIssueIterationEventsInput) (ListIterationEventsOutput, error)
ListIssueIterationEvents lists iteration events for an issue.
type ListLabelEventsOutput ¶
type ListLabelEventsOutput struct {
toolutil.HintableOutput
Events []LabelEventOutput `json:"events"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListLabelEventsOutput wraps a list of label events.
func ListIssueLabelEvents ¶
func ListIssueLabelEvents(ctx context.Context, client *gitlabclient.Client, input ListIssueLabelEventsInput) (ListLabelEventsOutput, error)
ListIssueLabelEvents lists label events for an issue.
func ListMRLabelEvents ¶
func ListMRLabelEvents(ctx context.Context, client *gitlabclient.Client, input ListMRLabelEventsInput) (ListLabelEventsOutput, error)
ListMRLabelEvents lists label events for a merge request.
type ListMRLabelEventsInput ¶
type ListMRLabelEventsInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
MRIID int64 `json:"merge_request_iid" jsonschema:"Merge request internal ID,required"`
toolutil.PaginationInput
}
ListMRLabelEventsInput defines parameters for listing merge request label events.
type ListMRMilestoneEventsInput ¶
type ListMRMilestoneEventsInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
MRIID int64 `json:"merge_request_iid" jsonschema:"Merge request internal ID,required"`
toolutil.PaginationInput
}
ListMRMilestoneEventsInput defines parameters for listing MR milestone events.
type ListMRStateEventsInput ¶
type ListMRStateEventsInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
MRIID int64 `json:"merge_request_iid" jsonschema:"Merge request internal ID,required"`
toolutil.PaginationInput
}
ListMRStateEventsInput defines parameters for listing MR state events.
type ListMilestoneEventsOutput ¶
type ListMilestoneEventsOutput struct {
toolutil.HintableOutput
Events []MilestoneEventOutput `json:"events"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListMilestoneEventsOutput wraps a list of milestone events.
func ListIssueMilestoneEvents ¶
func ListIssueMilestoneEvents(ctx context.Context, client *gitlabclient.Client, input ListIssueMilestoneEventsInput) (ListMilestoneEventsOutput, error)
ListIssueMilestoneEvents lists milestone events for an issue.
func ListMRMilestoneEvents ¶
func ListMRMilestoneEvents(ctx context.Context, client *gitlabclient.Client, input ListMRMilestoneEventsInput) (ListMilestoneEventsOutput, error)
ListMRMilestoneEvents lists milestone events for a merge request.
type ListStateEventsOutput ¶
type ListStateEventsOutput struct {
toolutil.HintableOutput
Events []StateEventOutput `json:"events"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListStateEventsOutput wraps a list of state events.
func ListIssueStateEvents ¶
func ListIssueStateEvents(ctx context.Context, client *gitlabclient.Client, input ListIssueStateEventsInput) (ListStateEventsOutput, error)
ListIssueStateEvents lists state events for an issue.
func ListMRStateEvents ¶
func ListMRStateEvents(ctx context.Context, client *gitlabclient.Client, input ListMRStateEventsInput) (ListStateEventsOutput, error)
ListMRStateEvents lists state events for a merge request.
type ListWeightEventsOutput ¶
type ListWeightEventsOutput struct {
toolutil.HintableOutput
Events []WeightEventOutput `json:"events"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListWeightEventsOutput wraps a list of weight events.
func ListIssueWeightEvents ¶
func ListIssueWeightEvents(ctx context.Context, client *gitlabclient.Client, input ListIssueWeightEventsInput) (ListWeightEventsOutput, error)
ListIssueWeightEvents lists weight events for an issue.
type MilestoneEventOutput ¶
type MilestoneEventOutput struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Action string `json:"action"`
CreatedAt string `json:"created_at"`
ResourceType string `json:"resource_type"`
ResourceID int64 `json:"resource_id"`
UserID int64 `json:"user_id"`
Username string `json:"username"`
MilestoneID int64 `json:"milestone_id"`
MilestoneTitle string `json:"milestone_title"`
}
MilestoneEventOutput represents a resource milestone event.
func GetIssueMilestoneEvent ¶
func GetIssueMilestoneEvent(ctx context.Context, client *gitlabclient.Client, input GetIssueMilestoneEventInput) (MilestoneEventOutput, error)
GetIssueMilestoneEvent gets a single milestone event for an issue.
func GetMRMilestoneEvent ¶
func GetMRMilestoneEvent(ctx context.Context, client *gitlabclient.Client, input GetMRMilestoneEventInput) (MilestoneEventOutput, error)
GetMRMilestoneEvent gets a single milestone event for a merge request.
type StateEventOutput ¶
type StateEventOutput struct {
toolutil.HintableOutput
ID int64 `json:"id"`
State string `json:"state"`
CreatedAt string `json:"created_at"`
ResourceType string `json:"resource_type"`
ResourceID int64 `json:"resource_id"`
UserID int64 `json:"user_id"`
Username string `json:"username"`
}
StateEventOutput represents a resource state event.
func GetIssueStateEvent ¶
func GetIssueStateEvent(ctx context.Context, client *gitlabclient.Client, input GetIssueStateEventInput) (StateEventOutput, error)
GetIssueStateEvent gets a single state event for an issue.
func GetMRStateEvent ¶
func GetMRStateEvent(ctx context.Context, client *gitlabclient.Client, input GetMRStateEventInput) (StateEventOutput, error)
GetMRStateEvent gets a single state event for a merge request.
type WeightEventOutput ¶
type WeightEventOutput struct {
ID int64 `json:"id"`
CreatedAt string `json:"created_at"`
ResourceType string `json:"resource_type"`
ResourceID int64 `json:"resource_id"`
State string `json:"state"`
IssueID int64 `json:"issue_id"`
Weight int64 `json:"weight"`
UserID int64 `json:"user_id"`
Username string `json:"username"`
}
WeightEventOutput represents a resource weight event.