Documentation
¶
Overview ¶
Package issuenotes implements GitLab issue note (comment) operations including create and list. Notes are comments attached to issues and may be marked as internal (visible only to project members) or system-generated.
Index ¶
- func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) error
- func FormatListMarkdown(out ListOutput) string
- func FormatOutputMarkdown(n Output) string
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type CreateInput
- type DeleteInput
- type GetInput
- type ListInput
- type ListOutput
- type Output
- func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)
- func GetNote(ctx context.Context, client *gitlabclient.Client, input GetInput) (Output, error)
- func ToOutput(n *gl.Note) Output
- func Update(ctx context.Context, client *gitlabclient.Client, input UpdateInput) (Output, error)
- type UpdateInput
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 a note from an issue.
func FormatListMarkdown ¶
func FormatListMarkdown(out ListOutput) string
FormatListMarkdown renders a list of issue notes as a Markdown table.
func FormatOutputMarkdown ¶
FormatOutputMarkdown renders a single issue note as a Markdown summary.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers MCP tools for GitLab issue note operations.
Types ¶
type CreateInput ¶
type CreateInput 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"`
Body string `json:"body" jsonschema:"Note body (Markdown supported),required"`
Internal *bool `json:"internal,omitempty" jsonschema:"Mark note as internal (visible only to project members)"`
}
CreateInput defines parameters for adding a comment to an issue.
type DeleteInput ¶
type DeleteInput 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"`
NoteID int64 `json:"note_id" jsonschema:"ID of the note to delete,required"`
}
DeleteInput defines parameters for deleting an issue note.
type GetInput ¶
type GetInput 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"`
NoteID int64 `json:"note_id" jsonschema:"ID of the note to retrieve,required"`
}
GetInput defines parameters for getting a single issue note.
type ListInput ¶
type ListInput 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"`
OrderBy string `json:"order_by,omitempty" jsonschema:"Order by field (created_at, updated_at)"`
Sort string `json:"sort,omitempty" jsonschema:"Sort direction (asc, desc)"`
toolutil.PaginationInput
}
ListInput defines parameters for listing issue notes.
type ListOutput ¶
type ListOutput struct {
toolutil.HintableOutput
Notes []Output `json:"notes"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListOutput holds a paginated list of issue notes.
func List ¶
func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
List retrieves a paginated list of notes for a specific issue. Supports ordering by created_at or updated_at and sorting in ascending or descending order. Returns the notes with pagination metadata.
type Output ¶
type Output struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Body string `json:"body"`
Author string `json:"author"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
System bool `json:"system"`
Internal bool `json:"internal"`
Resolvable bool `json:"resolvable,omitempty"`
Resolved bool `json:"resolved,omitempty"`
NoteableType string `json:"notable_type,omitempty"`
NoteableID int64 `json:"notable_id,omitempty"`
CommitID string `json:"commit_id,omitempty"`
Type string `json:"type,omitempty"`
NoteableIID int64 `json:"notable_iid,omitempty"`
ProjectID int64 `json:"project_id,omitempty"`
Confidential bool `json:"confidential"`
}
Output represents a note (comment) on an issue.
func Create ¶
func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)
Create adds a new comment to the specified issue in a GitLab project. The note body supports Markdown and can optionally be marked as internal. Returns the created note or an error if the API call fails.
func ToOutput ¶
ToOutput converts a GitLab API gl.Note to the MCP tool output format, extracting the author username and formatting timestamps as RFC 3339 strings.
func Update ¶
func Update(ctx context.Context, client *gitlabclient.Client, input UpdateInput) (Output, error)
Update modifies the body of an existing issue note.
type UpdateInput ¶
type UpdateInput 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"`
NoteID int64 `json:"note_id" jsonschema:"ID of the note to update,required"`
Body string `json:"body" jsonschema:"Updated note body (Markdown supported),required"`
}
UpdateInput defines parameters for updating an issue note.