invites

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 invites implements MCP tools for GitLab invitation operations including listing pending invitations and inviting users to projects/groups.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FormatInviteResultMarkdown

func FormatInviteResultMarkdown(out InviteResultOutput) *mcp.CallToolResult

FormatInviteResultMarkdown formats an invitation result as a Markdown CallToolResult.

func FormatInviteResultMarkdownString

func FormatInviteResultMarkdownString(out InviteResultOutput) string

FormatInviteResultMarkdownString renders an invitation result as a Markdown string.

func FormatListPendingMarkdown

func FormatListPendingMarkdown(out ListPendingInvitationsOutput) *mcp.CallToolResult

FormatListPendingMarkdown formats pending invitations as a Markdown CallToolResult.

func FormatListPendingMarkdownString

func FormatListPendingMarkdownString(out ListPendingInvitationsOutput) string

FormatListPendingMarkdownString renders pending invitations as a Markdown string.

func RegisterMeta

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

RegisterMeta registers the gitlab_invite meta-tool.

func RegisterTools

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

RegisterTools registers individual invite tools.

Types

type GroupInvitesInput

type GroupInvitesInput struct {
	GroupID     toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	Email       string               `json:"email,omitempty" jsonschema:"Email address to invite (either email or user_id required)"`
	UserID      int64                `json:"user_id,omitempty" jsonschema:"User ID to invite (either email or user_id required)"`
	AccessLevel int                  `json:"access_level" jsonschema:"Access level (10=Guest 20=Reporter 30=Developer 40=Maintainer 50=Owner),required"`
	ExpiresAt   string               `json:"expires_at,omitempty" jsonschema:"Expiration date for the invitation (YYYY-MM-DD)"`
}

GroupInvitesInput contains parameters for inviting a user to a group.

type InviteResultOutput

type InviteResultOutput struct {
	toolutil.HintableOutput
	Status  string            `json:"status"`
	Message map[string]string `json:"message,omitempty"`
}

InviteResultOutput represents the result of an invitation operation.

func GroupInvites

func GroupInvites(ctx context.Context, client *gitlabclient.Client, input GroupInvitesInput) (InviteResultOutput, error)

GroupInvites invites a user to a group by email or user ID.

func ProjectInvites

func ProjectInvites(ctx context.Context, client *gitlabclient.Client, input ProjectInvitesInput) (InviteResultOutput, error)

ProjectInvites invites a user to a project by email or user ID.

type ListPendingGroupInvitationsInput

type ListPendingGroupInvitationsInput struct {
	GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	Query   string               `json:"query,omitempty" jsonschema:"Filter invitations by email or name"`
	Page    int64                `json:"page,omitempty" jsonschema:"Page number for pagination (default 1)"`
	PerPage int64                `json:"per_page,omitempty" jsonschema:"Number of items per page (default 20, max 100)"`
}

ListPendingGroupInvitationsInput contains parameters for listing pending group invitations.

type ListPendingInvitationsOutput

type ListPendingInvitationsOutput struct {
	toolutil.HintableOutput
	Invitations []PendingInviteOutput     `json:"invitations"`
	Pagination  toolutil.PaginationOutput `json:"pagination"`
}

ListPendingInvitationsOutput holds a paginated list of pending invitations.

func ListPendingGroupInvitations

func ListPendingGroupInvitations(ctx context.Context, client *gitlabclient.Client, input ListPendingGroupInvitationsInput) (ListPendingInvitationsOutput, error)

ListPendingGroupInvitations returns pending invitations for a group.

func ListPendingProjectInvitations

func ListPendingProjectInvitations(ctx context.Context, client *gitlabclient.Client, input ListPendingProjectInvitationsInput) (ListPendingInvitationsOutput, error)

ListPendingProjectInvitations returns pending invitations for a project.

type ListPendingProjectInvitationsInput

type ListPendingProjectInvitationsInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	Query     string               `json:"query,omitempty" jsonschema:"Filter invitations by email or name"`
	Page      int64                `json:"page,omitempty" jsonschema:"Page number for pagination (default 1)"`
	PerPage   int64                `json:"per_page,omitempty" jsonschema:"Number of items per page (default 20, max 100)"`
}

ListPendingProjectInvitationsInput contains parameters for listing pending project invitations.

type PendingInviteOutput

type PendingInviteOutput struct {
	ID            int64  `json:"id"`
	InviteEmail   string `json:"invite_email"`
	CreatedAt     string `json:"created_at,omitempty"`
	AccessLevel   int    `json:"access_level"`
	ExpiresAt     string `json:"expires_at,omitempty"`
	UserName      string `json:"user_name,omitempty"`
	CreatedByName string `json:"created_by_name,omitempty"`
}

PendingInviteOutput represents a single pending invitation.

type ProjectInvitesInput

type ProjectInvitesInput struct {
	ProjectID   toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	Email       string               `json:"email,omitempty" jsonschema:"Email address to invite (either email or user_id required)"`
	UserID      int64                `json:"user_id,omitempty" jsonschema:"User ID to invite (either email or user_id required)"`
	AccessLevel int                  `json:"access_level" jsonschema:"Access level (10=Guest 20=Reporter 30=Developer 40=Maintainer 50=Owner),required"`
	ExpiresAt   string               `json:"expires_at,omitempty" jsonschema:"Expiration date for the invitation (YYYY-MM-DD)"`
}

ProjectInvitesInput contains parameters for inviting a user to a project.

Jump to

Keyboard shortcuts

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