Help us shape the future of Go! Take the 2026 Go Developer Survey

namespaces

package
v2.7.5 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package namespaces implements MCP tools for GitLab namespace operations.

The package wraps the GitLab Namespaces API:

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ActionSpecs

func ActionSpecs(client *gitlabclient.Client) []toolutil.ActionSpec

ActionSpecs returns canonical specs for namespace actions exposed through gitlab_user.

func FormatExistsMarkdown

func FormatExistsMarkdown(out ExistsOutput) *mcp.CallToolResult

FormatExistsMarkdown formats a namespace existence check as a Markdown CallToolResult.

func FormatExistsMarkdownString

func FormatExistsMarkdownString(out ExistsOutput) string

FormatExistsMarkdownString renders a namespace existence result as a Markdown string.

func FormatListMarkdown

func FormatListMarkdown(out ListOutput) *mcp.CallToolResult

FormatListMarkdown formats a list of namespaces as a Markdown CallToolResult.

func FormatListMarkdownString

func FormatListMarkdownString(out ListOutput) string

FormatListMarkdownString renders a list of namespaces as a Markdown string.

func FormatMarkdown

func FormatMarkdown(out Output) *mcp.CallToolResult

FormatMarkdown formats a single namespace as a Markdown CallToolResult.

func FormatMarkdownString

func FormatMarkdownString(out Output) string

FormatMarkdownString renders a single namespace as a Markdown string.

Types

type ExistsInput

type ExistsInput struct {
	ID       string `json:"id" jsonschema:"Namespace path to check for existence,required"`
	ParentID int64  `json:"parent_id,omitempty" jsonschema:"Parent namespace ID to scope the check"`
}

ExistsInput contains parameters for checking namespace existence.

type ExistsOutput

type ExistsOutput struct {
	toolutil.HintableOutput
	Exists   bool     `json:"exists"`
	Suggests []string `json:"suggests,omitempty"`
}

ExistsOutput represents the result of a namespace existence check.

func Exists

func Exists(ctx context.Context, client *gitlabclient.Client, input ExistsInput) (ExistsOutput, error)

Exists checks whether a namespace path is available.

type GetInput

type GetInput struct {
	ID string `json:"id" jsonschema:"Namespace ID or path,required"`
}

GetInput contains parameters for getting a namespace by ID.

type ListInput

type ListInput struct {
	Search       string `json:"search,omitempty" jsonschema:"Filter namespaces by search term"`
	OwnedOnly    bool   `json:"owned_only,omitempty" jsonschema:"If true return only namespaces owned by the authenticated user"`
	TopLevelOnly bool   `json:"top_level_only,omitempty" jsonschema:"If true return only top-level namespaces"`
	OrderBy      string `json:"order_by,omitempty" jsonschema:"Column to order keyset-paginated results by (e.g. id)"`
	Sort         string `json:"sort,omitempty" jsonschema:"Sort direction for keyset-paginated results (asc, desc)"`
	toolutil.PaginationInput
	toolutil.KeysetPaginationInput
}

ListInput contains parameters for listing namespaces.

type ListOutput

type ListOutput struct {
	toolutil.HintableOutput
	Namespaces []Output                  `json:"namespaces"`
	Pagination toolutil.PaginationOutput `json:"pagination"`
}

ListOutput represents a paginated list of namespaces.

func List

func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)

List returns a paginated list of namespaces visible to the user.

func Search(ctx context.Context, client *gitlabclient.Client, input SearchInput) (ListOutput, error)

Search searches namespaces by query string.

type Output

type Output struct {
	toolutil.HintableOutput
	ID                          int64  `json:"id"`
	Name                        string `json:"name"`
	Path                        string `json:"path"`
	Kind                        string `json:"kind"`
	FullPath                    string `json:"full_path"`
	ParentID                    int64  `json:"parent_id,omitempty"`
	AvatarURL                   string `json:"avatar_url,omitempty"`
	WebURL                      string `json:"web_url,omitempty"`
	MembersCountWithDescendants int64  `json:"members_count_with_descendants,omitempty"`
	BillableMembersCount        int64  `json:"billable_members_count,omitempty" tier:"premium"`
	Plan                        string `json:"plan,omitempty" tier:"premium"`
	TrialEndsOn                 string `json:"trial_ends_on,omitempty" tier:"premium"`
	Trial                       bool   `json:"trial,omitempty" tier:"premium"`
	MaxSeatsUsed                *int64 `json:"max_seats_used,omitempty"`
	SeatsInUse                  *int64 `json:"seats_in_use,omitempty"`
}

Output represents a single namespace.

func Get

func Get(ctx context.Context, client *gitlabclient.Client, input GetInput) (Output, error)

Get retrieves a single namespace by ID or path. Uses a raw HTTP request to work around upstream client-go issue where GetNamespace expects a single JSON object but some GitLab versions return an array for path-based lookups.

type SearchInput

type SearchInput struct {
	Query string `json:"query" jsonschema:"Search query string for namespaces,required"`
}

SearchInput contains parameters for searching namespaces.

Jump to

Keyboard shortcuts

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