groupboards

package
v1.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2026 License: MIT Imports: 10 Imported by: 0

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.

markdown.go provides Markdown formatting functions for group issue board MCP tool output.

register.go wires groupboards MCP tools to the MCP server.

Index

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL