Documentation
¶
Overview ¶
Package groupboards implements MCP tools for GitLab group issue boards and board lists.
It wraps the GroupIssueBoardsService from the GitLab client-go library, exposing 10 operations: 5 for group board CRUD and 5 for group board list CRUD.
Index ¶
- func DeleteGroupBoard(ctx context.Context, client *gitlabclient.Client, input DeleteGroupBoardInput) error
- func DeleteGroupBoardList(ctx context.Context, client *gitlabclient.Client, ...) error
- func FormatBoardListMarkdown(out BoardListOutput) string
- func FormatGroupBoardMarkdown(out GroupBoardOutput) string
- func FormatListBoardListsMarkdown(out ListBoardListsOutput) string
- func FormatListGroupBoardsMarkdown(out ListGroupBoardsOutput) string
- func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type BoardListOutput
- func CreateGroupBoardList(ctx context.Context, client *gitlabclient.Client, ...) (BoardListOutput, error)
- func GetGroupBoardList(ctx context.Context, client *gitlabclient.Client, input GetGroupBoardListInput) (BoardListOutput, error)
- func UpdateGroupBoardList(ctx context.Context, client *gitlabclient.Client, ...) (BoardListOutput, error)
- type CreateGroupBoardInput
- type CreateGroupBoardListInput
- type DeleteGroupBoardInput
- type DeleteGroupBoardListInput
- type GetGroupBoardInput
- type GetGroupBoardListInput
- type GroupBoardOutput
- func CreateGroupBoard(ctx context.Context, client *gitlabclient.Client, input CreateGroupBoardInput) (GroupBoardOutput, error)
- func GetGroupBoard(ctx context.Context, client *gitlabclient.Client, input GetGroupBoardInput) (GroupBoardOutput, error)
- func UpdateGroupBoard(ctx context.Context, client *gitlabclient.Client, input UpdateGroupBoardInput) (GroupBoardOutput, error)
- type ListBoardListsOutput
- type ListGroupBoardListsInput
- type ListGroupBoardsInput
- type ListGroupBoardsOutput
- type UpdateGroupBoardInput
- type UpdateGroupBoardListInput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeleteGroupBoard ¶
func DeleteGroupBoard(ctx context.Context, client *gitlabclient.Client, input DeleteGroupBoardInput) error
DeleteGroupBoard deletes a group issue board.
func DeleteGroupBoardList ¶
func DeleteGroupBoardList(ctx context.Context, client *gitlabclient.Client, input DeleteGroupBoardListInput) error
DeleteGroupBoardList deletes a group board list.
func FormatBoardListMarkdown ¶
func FormatBoardListMarkdown(out BoardListOutput) string
FormatBoardListMarkdown formats a single board list as markdown.
func FormatGroupBoardMarkdown ¶
func FormatGroupBoardMarkdown(out GroupBoardOutput) string
FormatGroupBoardMarkdown formats a single group board as markdown.
func FormatListBoardListsMarkdown ¶
func FormatListBoardListsMarkdown(out ListBoardListsOutput) string
FormatListBoardListsMarkdown formats a paginated list of board lists.
func FormatListGroupBoardsMarkdown ¶
func FormatListGroupBoardsMarkdown(out ListGroupBoardsOutput) string
FormatListGroupBoardsMarkdown formats a paginated list of group boards.
func RegisterMeta ¶
func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)
RegisterMeta registers the gitlab_group_board meta-tool.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers all group issue board individual tools.
Types ¶
type BoardListOutput ¶
type BoardListOutput struct {
toolutil.HintableOutput
ID int64 `json:"id"`
LabelID int64 `json:"label_id,omitempty"`
LabelName string `json:"label_name,omitempty"`
Position int64 `json:"position"`
MaxIssueCount int64 `json:"max_issue_count,omitempty"`
MaxIssueWeight int64 `json:"max_issue_weight,omitempty"`
AssigneeID int64 `json:"assignee_id,omitempty"`
AssigneeUser string `json:"assignee_username,omitempty"`
MilestoneID int64 `json:"milestone_id,omitempty"`
MilestoneTitle string `json:"milestone_title,omitempty"`
}
BoardListOutput represents a single list within a group board.
func CreateGroupBoardList ¶
func CreateGroupBoardList(ctx context.Context, client *gitlabclient.Client, input CreateGroupBoardListInput) (BoardListOutput, error)
CreateGroupBoardList creates a new group board list.
func GetGroupBoardList ¶
func GetGroupBoardList(ctx context.Context, client *gitlabclient.Client, input GetGroupBoardListInput) (BoardListOutput, error)
GetGroupBoardList retrieves a single group board list.
func UpdateGroupBoardList ¶
func UpdateGroupBoardList(ctx context.Context, client *gitlabclient.Client, input UpdateGroupBoardListInput) (BoardListOutput, error)
UpdateGroupBoardList reorders a group board list. The V2 API returns a slice of board lists; we return the first match.
type CreateGroupBoardInput ¶
type CreateGroupBoardInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
Name string `json:"name" jsonschema:"Board name,required"`
}
CreateGroupBoardInput represents input for creating a group board.
type CreateGroupBoardListInput ¶
type CreateGroupBoardListInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
BoardID int64 `json:"board_id" jsonschema:"Board ID,required"`
LabelID int64 `json:"label_id" jsonschema:"Label ID to create a label list,required"`
}
CreateGroupBoardListInput represents input for creating a group board list.
type DeleteGroupBoardInput ¶
type DeleteGroupBoardInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
BoardID int64 `json:"board_id" jsonschema:"Board ID,required"`
}
DeleteGroupBoardInput represents input for deleting a group board.
type DeleteGroupBoardListInput ¶
type DeleteGroupBoardListInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
BoardID int64 `json:"board_id" jsonschema:"Board ID,required"`
ListID int64 `json:"list_id" jsonschema:"Board list ID,required"`
}
DeleteGroupBoardListInput represents input for deleting a group board list.
type GetGroupBoardInput ¶
type GetGroupBoardInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
BoardID int64 `json:"board_id" jsonschema:"Board ID,required"`
}
GetGroupBoardInput represents input for getting a single group board.
type GetGroupBoardListInput ¶
type GetGroupBoardListInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
BoardID int64 `json:"board_id" jsonschema:"Board ID,required"`
ListID int64 `json:"list_id" jsonschema:"Board list ID,required"`
}
GetGroupBoardListInput represents input for getting a single group board list.
type GroupBoardOutput ¶
type GroupBoardOutput struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Name string `json:"name"`
GroupID int64 `json:"group_id,omitempty"`
GroupName string `json:"group_name,omitempty"`
MilestoneID int64 `json:"milestone_id,omitempty"`
MilestoneTitle string `json:"milestone_title,omitempty"`
Labels []string `json:"labels,omitempty"`
Lists []BoardListOutput `json:"lists,omitempty"`
}
GroupBoardOutput represents a GitLab group issue board.
func CreateGroupBoard ¶
func CreateGroupBoard(ctx context.Context, client *gitlabclient.Client, input CreateGroupBoardInput) (GroupBoardOutput, error)
CreateGroupBoard creates a new group issue board.
func GetGroupBoard ¶
func GetGroupBoard(ctx context.Context, client *gitlabclient.Client, input GetGroupBoardInput) (GroupBoardOutput, error)
GetGroupBoard retrieves a single group issue board.
func UpdateGroupBoard ¶
func UpdateGroupBoard(ctx context.Context, client *gitlabclient.Client, input UpdateGroupBoardInput) (GroupBoardOutput, error)
UpdateGroupBoard updates a group issue board.
type ListBoardListsOutput ¶
type ListBoardListsOutput struct {
toolutil.HintableOutput
Lists []BoardListOutput `json:"lists"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListBoardListsOutput represents a paginated list of board lists.
func ListGroupBoardLists ¶
func ListGroupBoardLists(ctx context.Context, client *gitlabclient.Client, input ListGroupBoardListsInput) (ListBoardListsOutput, error)
ListGroupBoardLists lists all lists in a group board.
type ListGroupBoardListsInput ¶
type ListGroupBoardListsInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
BoardID int64 `json:"board_id" jsonschema:"Board ID,required"`
toolutil.PaginationInput
}
ListGroupBoardListsInput represents input for listing group board lists.
type ListGroupBoardsInput ¶
type ListGroupBoardsInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
toolutil.PaginationInput
}
ListGroupBoardsInput represents input for listing group issue boards.
type ListGroupBoardsOutput ¶
type ListGroupBoardsOutput struct {
toolutil.HintableOutput
Boards []GroupBoardOutput `json:"boards"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListGroupBoardsOutput represents a paginated list of group boards.
func ListGroupBoards ¶
func ListGroupBoards(ctx context.Context, client *gitlabclient.Client, input ListGroupBoardsInput) (ListGroupBoardsOutput, error)
ListGroupBoards lists all issue boards for a group.
type UpdateGroupBoardInput ¶
type UpdateGroupBoardInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
BoardID int64 `json:"board_id" jsonschema:"Board ID,required"`
Name string `json:"name,omitempty" jsonschema:"Board name"`
AssigneeID int64 `json:"assignee_id,omitempty" jsonschema:"Assignee user ID"`
MilestoneID int64 `json:"milestone_id,omitempty" jsonschema:"Milestone ID"`
Labels string `json:"labels,omitempty" jsonschema:"Comma-separated board scope labels"`
Weight int64 `json:"weight,omitempty" jsonschema:"Board scope weight"`
}
UpdateGroupBoardInput represents input for updating a group board.
type UpdateGroupBoardListInput ¶
type UpdateGroupBoardListInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or path,required"`
BoardID int64 `json:"board_id" jsonschema:"Board ID,required"`
ListID int64 `json:"list_id" jsonschema:"Board list ID,required"`
Position int64 `json:"position" jsonschema:"New position of the list,required"`
}
UpdateGroupBoardListInput represents input for updating a group board list.