boards

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: 8 Imported by: 0

Documentation

Overview

Package boards implements MCP tools for GitLab project issue boards and board lists.

It wraps the IssueBoardsService from the GitLab client-go library, exposing 10 operations: 5 for board CRUD and 5 for board list CRUD.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeleteBoard

func DeleteBoard(ctx context.Context, client *gitlabclient.Client, input DeleteBoardInput) error

DeleteBoard deletes an issue board.

func DeleteBoardList

func DeleteBoardList(ctx context.Context, client *gitlabclient.Client, input DeleteBoardListInput) error

DeleteBoardList deletes a board list.

func FormatBoardListMarkdown

func FormatBoardListMarkdown(out BoardListOutput) string

FormatBoardListMarkdown formats a single board list as markdown.

func FormatBoardMarkdown

func FormatBoardMarkdown(out BoardOutput) string

FormatBoardMarkdown formats a single board as markdown.

func FormatListBoardListsMarkdown

func FormatListBoardListsMarkdown(out ListBoardListsOutput) string

FormatListBoardListsMarkdown formats a paginated list of board lists.

func FormatListBoardsMarkdown

func FormatListBoardsMarkdown(out ListBoardsOutput) string

FormatListBoardsMarkdown formats a paginated list of boards.

func RegisterMeta

func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)

RegisterMeta registers the gitlab_board meta-tool.

func RegisterTools

func RegisterTools(server *mcp.Server, client *gitlabclient.Client)

RegisterTools registers all project 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 board.

func CreateBoardList

func CreateBoardList(ctx context.Context, client *gitlabclient.Client, input CreateBoardListInput) (BoardListOutput, error)

CreateBoardList creates a new board list.

func GetBoardList

func GetBoardList(ctx context.Context, client *gitlabclient.Client, input GetBoardListInput) (BoardListOutput, error)

GetBoardList retrieves a single board list.

func UpdateBoardList

func UpdateBoardList(ctx context.Context, client *gitlabclient.Client, input UpdateBoardListInput) (BoardListOutput, error)

UpdateBoardList reorders a board list.

type BoardOutput

type BoardOutput struct {
	toolutil.HintableOutput
	ID              int64             `json:"id"`
	Name            string            `json:"name"`
	ProjectID       int64             `json:"project_id,omitempty"`
	ProjectName     string            `json:"project_name,omitempty"`
	ProjectPath     string            `json:"project_path,omitempty"`
	MilestoneID     int64             `json:"milestone_id,omitempty"`
	MilestoneTitle  string            `json:"milestone_title,omitempty"`
	AssigneeID      int64             `json:"assignee_id,omitempty"`
	AssigneeUser    string            `json:"assignee_username,omitempty"`
	Weight          int64             `json:"weight,omitempty"`
	Labels          []string          `json:"labels,omitempty"`
	HideBacklogList bool              `json:"hide_backlog_list"`
	HideClosedList  bool              `json:"hide_closed_list"`
	Lists           []BoardListOutput `json:"lists,omitempty"`
}

BoardOutput represents a GitLab issue board.

func CreateBoard

func CreateBoard(ctx context.Context, client *gitlabclient.Client, input CreateBoardInput) (BoardOutput, error)

CreateBoard creates a new issue board.

func GetBoard

func GetBoard(ctx context.Context, client *gitlabclient.Client, input GetBoardInput) (BoardOutput, error)

GetBoard retrieves a single issue board.

func UpdateBoard

func UpdateBoard(ctx context.Context, client *gitlabclient.Client, input UpdateBoardInput) (BoardOutput, error)

UpdateBoard updates an existing issue board.

type CreateBoardInput

type CreateBoardInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or path,required"`
	Name      string               `json:"name" jsonschema:"Board name,required"`
}

CreateBoardInput represents input for creating a board.

type CreateBoardListInput

type CreateBoardListInput struct {
	ProjectID   toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or path,required"`
	BoardID     int64                `json:"board_id" jsonschema:"Board ID,required"`
	LabelID     int64                `json:"label_id,omitempty" jsonschema:"Label ID to create a label list"`
	AssigneeID  int64                `json:"assignee_id,omitempty" jsonschema:"Assignee ID to create an assignee list"`
	MilestoneID int64                `json:"milestone_id,omitempty" jsonschema:"Milestone ID to create a milestone list"`
	IterationID int64                `json:"iteration_id,omitempty" jsonschema:"Iteration ID to create an iteration list"`
}

CreateBoardListInput represents input for creating a board list.

type DeleteBoardInput

type DeleteBoardInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or path,required"`
	BoardID   int64                `json:"board_id" jsonschema:"Board ID,required"`
}

DeleteBoardInput represents input for deleting a board.

type DeleteBoardListInput

type DeleteBoardListInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or path,required"`
	BoardID   int64                `json:"board_id" jsonschema:"Board ID,required"`
	ListID    int64                `json:"list_id" jsonschema:"Board list ID,required"`
}

DeleteBoardListInput represents input for deleting a board list.

type GetBoardInput

type GetBoardInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or path,required"`
	BoardID   int64                `json:"board_id" jsonschema:"Board ID,required"`
}

GetBoardInput represents input for getting a single board.

type GetBoardListInput

type GetBoardListInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or path,required"`
	BoardID   int64                `json:"board_id" jsonschema:"Board ID,required"`
	ListID    int64                `json:"list_id" jsonschema:"Board list ID,required"`
}

GetBoardListInput represents input for getting a single board list.

type ListBoardListsInput

type ListBoardListsInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or path,required"`
	BoardID   int64                `json:"board_id" jsonschema:"Board ID,required"`
	toolutil.PaginationInput
}

ListBoardListsInput represents input for listing board lists.

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 ListBoardLists

func ListBoardLists(ctx context.Context, client *gitlabclient.Client, input ListBoardListsInput) (ListBoardListsOutput, error)

ListBoardLists lists all lists in a board.

type ListBoardsInput

type ListBoardsInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or path,required"`
	toolutil.PaginationInput
}

ListBoardsInput represents input for listing project issue boards.

type ListBoardsOutput

type ListBoardsOutput struct {
	toolutil.HintableOutput
	Boards     []BoardOutput             `json:"boards"`
	Pagination toolutil.PaginationOutput `json:"pagination"`
}

ListBoardsOutput represents a paginated list of boards.

func ListBoards

func ListBoards(ctx context.Context, client *gitlabclient.Client, input ListBoardsInput) (ListBoardsOutput, error)

ListBoards lists all issue boards for a project.

type UpdateBoardInput

type UpdateBoardInput struct {
	ProjectID       toolutil.StringOrInt `json:"project_id" jsonschema:"Project 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"`
	HideBacklogList *bool                `json:"hide_backlog_list,omitempty" jsonschema:"Hide the Open list"`
	HideClosedList  *bool                `json:"hide_closed_list,omitempty" jsonschema:"Hide the Closed list"`
}

UpdateBoardInput represents input for updating a board.

type UpdateBoardListInput

type UpdateBoardListInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project 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"`
}

UpdateBoardListInput represents input for updating (reordering) a board list.

Jump to

Keyboard shortcuts

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