Documentation
¶
Overview ¶
Package invites implements MCP tools for GitLab invitation operations including listing pending invitations and inviting users to projects/groups.
Index ¶
- func FormatInviteResultMarkdown(out InviteResultOutput) *mcp.CallToolResult
- func FormatInviteResultMarkdownString(out InviteResultOutput) string
- func FormatListPendingMarkdown(out ListPendingInvitationsOutput) *mcp.CallToolResult
- func FormatListPendingMarkdownString(out ListPendingInvitationsOutput) string
- func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type GroupInvitesInput
- type InviteResultOutput
- type ListPendingGroupInvitationsInput
- type ListPendingInvitationsOutput
- type ListPendingProjectInvitationsInput
- type PendingInviteOutput
- type ProjectInvitesInput
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.