groupboards

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2026 License: MIT Imports: 9 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.

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