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

useremails

package
v3.3.0 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package useremails implements MCP tools for GitLab user email operations.

The package wraps the GitLab User emails 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 user email actions exposed through gitlab_user.

func FormatDeleteMarkdownString

func FormatDeleteMarkdownString(o DeleteOutput) string

FormatDeleteMarkdownString renders a deletion confirmation.

func FormatListMarkdownString

func FormatListMarkdownString(out ListOutput) string

FormatListMarkdownString renders the addresses on an account as the collection they are, the confirmation state of each in the column a reader is looking at it for.

func FormatMarkdownString

func FormatMarkdownString(out Output) string

FormatMarkdownString renders one address as a card.

Types

type AddForUserInput

type AddForUserInput struct {
	UserID           int64  `json:"user_id" jsonschema:"GitLab user ID,required"`
	Email            string `json:"email" jsonschema:"Email address to add,required"`
	SkipConfirmation bool   `json:"skip_confirmation,omitempty" jsonschema:"Skip confirmation email (admin only)"`
}

AddForUserInput holds parameters for adding an email to a specific user.

type AddInput

type AddInput struct {
	Email            string `json:"email" jsonschema:"Email address to add,required"`
	SkipConfirmation bool   `json:"skip_confirmation,omitempty" jsonschema:"Skip confirmation email (admin only)"`
}

AddInput holds parameters for adding an email to the current user.

type DeleteForUserInput

type DeleteForUserInput struct {
	UserID  int64 `json:"user_id" jsonschema:"GitLab user ID,required"`
	EmailID int64 `json:"email_id" jsonschema:"Email ID to delete,required"`
}

DeleteForUserInput identifies a user's email to delete.

type DeleteInput

type DeleteInput struct {
	EmailID int64 `json:"email_id" jsonschema:"Email ID to delete,required"`
}

DeleteInput identifies an email to delete for the current user.

type DeleteOutput

type DeleteOutput struct {
	EmailID int64 `json:"email_id"`
	Deleted bool  `json:"deleted"`
}

DeleteOutput confirms an email deletion.

func Delete

func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) (DeleteOutput, error)

Delete deletes an email address from the current user.

func DeleteForUser

func DeleteForUser(ctx context.Context, client *gitlabclient.Client, input DeleteForUserInput) (DeleteOutput, error)

DeleteForUser deletes an email address from a specific user (admin only).

type GetInput

type GetInput struct {
	EmailID int64 `json:"email_id" jsonschema:"Email ID to retrieve,required"`
}

GetInput identifies an email by ID.

type ListForUserInput

type ListForUserInput struct {
	UserID int64 `json:"user_id" jsonschema:"GitLab user ID,required"`
	toolutil.PaginationInput
	toolutil.KeysetPaginationInput
	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 ordered results: asc or desc"`
}

ListForUserInput identifies a user for listing emails and carries offset and keyset pagination parameters mirroring v2.ListEmailsForUserOptions (which embeds v2.ListOptions).

type ListOutput

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

ListOutput holds one page of a user's email addresses and the pagination GitLab sent with it.

func ListForUser

func ListForUser(ctx context.Context, client *gitlabclient.Client, input ListForUserInput) (ListOutput, error)

ListForUser lists email addresses for a specific user.

type Output

type Output struct {
	toolutil.HintableOutput
	ID          int64  `json:"id"`
	Email       string `json:"email"`
	ConfirmedAt string `json:"confirmed_at,omitempty"`
}

Output represents an email address.

func Add

func Add(ctx context.Context, client *gitlabclient.Client, input AddInput) (Output, error)

Add adds an email address to the current user.

func AddForUser

func AddForUser(ctx context.Context, client *gitlabclient.Client, input AddForUserInput) (Output, error)

AddForUser adds an email address to a specific user (admin only).

func Get

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

Get retrieves a single email by ID.

Jump to

Keyboard shortcuts

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