Documentation
¶
Overview ¶
Package users implements GitLab user MCP tools for the current authenticated user, administrator user management, user CRUD, SSH keys, service accounts, personal access tokens, memberships, activities, runner details, and identity deletion.
The package registers both read-only profile tools and administrative actions such as block, unblock, ban, unban, activate, deactivate, approve, reject, disable two-factor authentication, and user-scoped SSH key management. It also provides Markdown formatters for user tool outputs.
Index ¶
- func FormatAdminActionMarkdownString(o AdminActionOutput) string
- func FormatAssociationsCountMarkdown(o AssociationsCountOutput) *mcp.CallToolResult
- func FormatAssociationsCountMarkdownString(o AssociationsCountOutput) string
- func FormatContributionEventsMarkdown(o ContributionEventsOutput) *mcp.CallToolResult
- func FormatContributionEventsMarkdownString(o ContributionEventsOutput) string
- func FormatCurrentUserPATMarkdownString(out CurrentUserPATOutput) string
- func FormatDeleteUserIdentityMarkdownString(o DeleteUserIdentityOutput) string
- func FormatEmailListMarkdown(o EmailListOutput) *mcp.CallToolResult
- func FormatEmailListMarkdownString(o EmailListOutput) string
- func FormatListMarkdown(o ListOutput) *mcp.CallToolResult
- func FormatListMarkdownString(o ListOutput) string
- func FormatMarkdown(u Output) *mcp.CallToolResult
- func FormatMarkdownString(u Output) string
- func FormatSSHKeyListMarkdown(o SSHKeyListOutput) *mcp.CallToolResult
- func FormatSSHKeyListMarkdownString(o SSHKeyListOutput) string
- func FormatSSHKeyMarkdown(o SSHKeyOutput) *mcp.CallToolResult
- func FormatSSHKeyMarkdownString(o SSHKeyOutput) string
- func FormatServiceAccountListMarkdownString(out ServiceAccountListOutput) string
- func FormatStatusMarkdown(o StatusOutput) *mcp.CallToolResult
- func FormatStatusMarkdownString(o StatusOutput) string
- func FormatUserActivitiesMarkdownString(o UserActivitiesOutput) string
- func FormatUserMembershipsMarkdownString(o UserMembershipsOutput) string
- func FormatUserRunnerMarkdownString(o UserRunnerOutput) string
- func RegisterEnterpriseTools(server *mcp.Server, client *gitlabclient.Client)
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type AddSSHKeyForUserInput
- type AddSSHKeyInput
- type AdminActionInput
- type AdminActionOutput
- func ActivateUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
- func ApproveUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
- func BanUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
- func BlockUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
- func DeactivateUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
- func DisableTwoFactor(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
- func RejectUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
- func UnbanUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
- func UnblockUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
- type AssociationsCountOutput
- type ContributionEventOutput
- type ContributionEventsOutput
- type CreateCurrentUserPATInput
- type CreateInput
- type CreateServiceAccountInput
- type CreateUserRunnerInput
- type CurrentInput
- type CurrentUserPATOutput
- type DeleteInput
- type DeleteOutput
- type DeleteSSHKeyForUserInput
- type DeleteSSHKeyInput
- type DeleteSSHKeyOutput
- type DeleteUserIdentityInput
- type DeleteUserIdentityOutput
- type EmailListOutput
- type EmailOutput
- type GetAssociationsCountInput
- type GetInput
- type GetSSHKeyForUserInput
- type GetSSHKeyInput
- type GetStatusInput
- type GetUserActivitiesInput
- type GetUserMembershipsInput
- type ListContributionEventsInput
- type ListEmailsInput
- type ListInput
- type ListOutput
- type ListSSHKeysForUserInput
- type ListSSHKeysInput
- type ListServiceAccountsInput
- type ModifyInput
- type Output
- func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)
- func CreateServiceAccount(ctx context.Context, client *gitlabclient.Client, ...) (Output, error)
- func Current(ctx context.Context, client *gitlabclient.Client, _ CurrentInput) (Output, error)
- func Get(ctx context.Context, client *gitlabclient.Client, input GetInput) (Output, error)
- func Modify(ctx context.Context, client *gitlabclient.Client, input ModifyInput) (Output, error)
- type SSHKeyListOutput
- type SSHKeyOutput
- func AddSSHKey(ctx context.Context, client *gitlabclient.Client, input AddSSHKeyInput) (SSHKeyOutput, error)
- func AddSSHKeyForUser(ctx context.Context, client *gitlabclient.Client, input AddSSHKeyForUserInput) (SSHKeyOutput, error)
- func GetSSHKey(ctx context.Context, client *gitlabclient.Client, input GetSSHKeyInput) (SSHKeyOutput, error)
- func GetSSHKeyForUser(ctx context.Context, client *gitlabclient.Client, input GetSSHKeyForUserInput) (SSHKeyOutput, error)
- type ServiceAccountListOutput
- type ServiceAccountOutput
- type SetStatusInput
- type StatusOutput
- func CurrentUserStatus(ctx context.Context, client *gitlabclient.Client, _ CurrentInput) (StatusOutput, error)
- func GetStatus(ctx context.Context, client *gitlabclient.Client, input GetStatusInput) (StatusOutput, error)
- func SetStatus(ctx context.Context, client *gitlabclient.Client, input SetStatusInput) (StatusOutput, error)
- type UserActivitiesOutput
- type UserActivityOutput
- type UserMembershipOutput
- type UserMembershipsOutput
- type UserRunnerOutput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatAdminActionMarkdownString ¶
func FormatAdminActionMarkdownString(o AdminActionOutput) string
FormatAdminActionMarkdownString renders an admin action result as Markdown.
func FormatAssociationsCountMarkdown ¶
func FormatAssociationsCountMarkdown(o AssociationsCountOutput) *mcp.CallToolResult
FormatAssociationsCountMarkdown renders user associations count as an MCP CallToolResult.
func FormatAssociationsCountMarkdownString ¶
func FormatAssociationsCountMarkdownString(o AssociationsCountOutput) string
FormatAssociationsCountMarkdownString renders user associations count as a Markdown string.
func FormatContributionEventsMarkdown ¶
func FormatContributionEventsMarkdown(o ContributionEventsOutput) *mcp.CallToolResult
FormatContributionEventsMarkdown renders contribution events as an MCP CallToolResult.
func FormatContributionEventsMarkdownString ¶
func FormatContributionEventsMarkdownString(o ContributionEventsOutput) string
FormatContributionEventsMarkdownString renders contribution events as a Markdown string.
func FormatCurrentUserPATMarkdownString ¶
func FormatCurrentUserPATMarkdownString(out CurrentUserPATOutput) string
FormatCurrentUserPATMarkdownString formats a PAT as Markdown.
func FormatDeleteUserIdentityMarkdownString ¶
func FormatDeleteUserIdentityMarkdownString(o DeleteUserIdentityOutput) string
FormatDeleteUserIdentityMarkdownString renders a delete identity result as Markdown.
func FormatEmailListMarkdown ¶
func FormatEmailListMarkdown(o EmailListOutput) *mcp.CallToolResult
FormatEmailListMarkdown renders an email list as an MCP CallToolResult.
func FormatEmailListMarkdownString ¶
func FormatEmailListMarkdownString(o EmailListOutput) string
FormatEmailListMarkdownString renders an email list as a Markdown string.
func FormatListMarkdown ¶
func FormatListMarkdown(o ListOutput) *mcp.CallToolResult
FormatListMarkdown renders a user list as an MCP CallToolResult.
func FormatListMarkdownString ¶
func FormatListMarkdownString(o ListOutput) string
FormatListMarkdownString renders a user list as a Markdown string.
func FormatMarkdown ¶
func FormatMarkdown(u Output) *mcp.CallToolResult
FormatMarkdown renders the user as an MCP CallToolResult.
func FormatMarkdownString ¶
FormatMarkdownString renders the authenticated user profile as a Markdown summary.
func FormatSSHKeyListMarkdown ¶
func FormatSSHKeyListMarkdown(o SSHKeyListOutput) *mcp.CallToolResult
FormatSSHKeyListMarkdown renders an SSH key list as an MCP CallToolResult.
func FormatSSHKeyListMarkdownString ¶
func FormatSSHKeyListMarkdownString(o SSHKeyListOutput) string
FormatSSHKeyListMarkdownString renders an SSH key list as a Markdown string.
func FormatSSHKeyMarkdown ¶
func FormatSSHKeyMarkdown(o SSHKeyOutput) *mcp.CallToolResult
FormatSSHKeyMarkdown renders a single SSH key as an MCP CallToolResult.
func FormatSSHKeyMarkdownString ¶
func FormatSSHKeyMarkdownString(o SSHKeyOutput) string
FormatSSHKeyMarkdownString renders a single SSH key as a Markdown string.
func FormatServiceAccountListMarkdownString ¶
func FormatServiceAccountListMarkdownString(out ServiceAccountListOutput) string
FormatServiceAccountListMarkdownString formats a list of service accounts as Markdown.
func FormatStatusMarkdown ¶
func FormatStatusMarkdown(o StatusOutput) *mcp.CallToolResult
FormatStatusMarkdown renders a user status as an MCP CallToolResult.
func FormatStatusMarkdownString ¶
func FormatStatusMarkdownString(o StatusOutput) string
FormatStatusMarkdownString renders a user status as a Markdown string.
func FormatUserActivitiesMarkdownString ¶
func FormatUserActivitiesMarkdownString(o UserActivitiesOutput) string
FormatUserActivitiesMarkdownString renders user activities as a Markdown string.
func FormatUserMembershipsMarkdownString ¶
func FormatUserMembershipsMarkdownString(o UserMembershipsOutput) string
FormatUserMembershipsMarkdownString renders user memberships as a Markdown string.
func FormatUserRunnerMarkdownString ¶
func FormatUserRunnerMarkdownString(o UserRunnerOutput) string
FormatUserRunnerMarkdownString renders a user runner as a Markdown string.
func RegisterEnterpriseTools ¶
func RegisterEnterpriseTools(server *mcp.Server, client *gitlabclient.Client)
RegisterEnterpriseTools registers enterprise-only user tools (service accounts).
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers tools for user-related operations.
Types ¶
type AddSSHKeyForUserInput ¶
type AddSSHKeyForUserInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user,required"`
Title string `json:"title" jsonschema:"A descriptive title for the SSH key,required"`
Key string `json:"key" jsonschema:"The SSH public key content,required"`
ExpiresAt string `json:"expires_at,omitempty" jsonschema:"Expiration date in ISO 8601 format (YYYY-MM-DD)"`
UsageType string `json:"usage_type,omitempty" jsonschema:"Usage type: auth or signing (default: auth)"`
}
AddSSHKeyForUserInput holds parameters for adding an SSH key to a specific user.
type AddSSHKeyInput ¶
type AddSSHKeyInput struct {
Title string `json:"title" jsonschema:"A descriptive title for the SSH key,required"`
Key string `json:"key" jsonschema:"The SSH public key content,required"`
ExpiresAt string `json:"expires_at,omitempty" jsonschema:"Expiration date in ISO 8601 format (YYYY-MM-DD)"`
UsageType string `json:"usage_type,omitempty" jsonschema:"Usage type: auth or signing (default: auth)"`
}
AddSSHKeyInput holds parameters for adding an SSH key to the current user.
type AdminActionInput ¶
type AdminActionInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user,required"`
}
AdminActionInput holds the user_id parameter for admin state actions.
type AdminActionOutput ¶
type AdminActionOutput struct {
UserID int64 `json:"user_id"`
Action string `json:"action"`
Success bool `json:"success"`
}
AdminActionOutput represents the result of an admin state action.
func ActivateUser ¶
func ActivateUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
ActivateUser activates a deactivated GitLab user (admin only).
func ApproveUser ¶
func ApproveUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
ApproveUser approves a pending GitLab user (admin only).
func BanUser ¶
func BanUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
BanUser bans a GitLab user (admin only).
func BlockUser ¶
func BlockUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
BlockUser blocks a GitLab user (admin only).
func DeactivateUser ¶
func DeactivateUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
DeactivateUser deactivates an active GitLab user (admin only).
func DisableTwoFactor ¶
func DisableTwoFactor(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
DisableTwoFactor disables two-factor authentication for a GitLab user (admin only).
func RejectUser ¶
func RejectUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
RejectUser rejects a pending GitLab user (admin only).
func UnbanUser ¶
func UnbanUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
UnbanUser unbans a previously banned GitLab user (admin only).
func UnblockUser ¶
func UnblockUser(ctx context.Context, client *gitlabclient.Client, input AdminActionInput) (AdminActionOutput, error)
UnblockUser unblocks a previously blocked GitLab user (admin only).
type AssociationsCountOutput ¶
type AssociationsCountOutput struct {
toolutil.HintableOutput
GroupsCount int64 `json:"groups_count"`
ProjectsCount int64 `json:"projects_count"`
IssuesCount int64 `json:"issues_count"`
MergeRequestsCount int64 `json:"merge_requests_count"`
}
AssociationsCountOutput represents a user's association counts.
func GetAssociationsCount ¶
func GetAssociationsCount(ctx context.Context, client *gitlabclient.Client, input GetAssociationsCountInput) (AssociationsCountOutput, error)
GetAssociationsCount retrieves the count of a user's associations.
type ContributionEventOutput ¶
type ContributionEventOutput struct {
ID int64 `json:"id"`
Title string `json:"title,omitempty"`
ProjectID int64 `json:"project_id"`
ActionName string `json:"action_name"`
TargetID int64 `json:"target_id,omitempty"`
TargetIID int64 `json:"target_iid,omitempty"`
TargetType string `json:"target_type,omitempty"`
TargetURL string `json:"target_url,omitempty"`
TargetTitle string `json:"target_title,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
}
ContributionEventOutput represents a user contribution event.
type ContributionEventsOutput ¶
type ContributionEventsOutput struct {
toolutil.HintableOutput
Events []ContributionEventOutput `json:"events"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ContributionEventsOutput holds a paginated list of contribution events.
func ListContributionEvents ¶
func ListContributionEvents(ctx context.Context, client *gitlabclient.Client, input ListContributionEventsInput) (ContributionEventsOutput, error)
ListContributionEvents retrieves contribution events for a user.
type CreateCurrentUserPATInput ¶
type CreateCurrentUserPATInput struct {
Name string `json:"name" jsonschema:"Name of the personal access token,required"`
Scopes []string `json:"scopes" jsonschema:"Array of scopes,required"`
Description string `json:"description,omitempty" jsonschema:"Description for the token"`
ExpiresAt string `json:"expires_at,omitempty" jsonschema:"Token expiration date (YYYY-MM-DD)"`
}
CreateCurrentUserPATInput holds parameters for creating a PAT for the current user.
type CreateInput ¶
type CreateInput struct {
Email string `json:"email" jsonschema:"The user email address,required"`
Name string `json:"name" jsonschema:"The user display name,required"`
Username string `json:"username" jsonschema:"The username,required"`
Password string `json:"password,omitempty" jsonschema:"The user password (required unless reset_password or force_random_password is set)"`
ResetPassword *bool `json:"reset_password,omitempty" jsonschema:"Send a password reset email instead of setting password"`
ForceRandomPassword *bool `json:"force_random_password,omitempty" jsonschema:"Set a random password instead of requiring one"`
SkipConfirmation *bool `json:"skip_confirmation,omitempty" jsonschema:"Skip confirmation email and activate user immediately"`
Admin *bool `json:"admin,omitempty" jsonschema:"Grant admin privileges"`
External *bool `json:"external,omitempty" jsonschema:"Mark user as external"`
Bio string `json:"bio,omitempty" jsonschema:"User bio text"`
Location string `json:"location,omitempty" jsonschema:"User location"`
JobTitle string `json:"job_title,omitempty" jsonschema:"User job title"`
Organization string `json:"organization,omitempty" jsonschema:"User organization"`
ProjectsLimit *int64 `json:"projects_limit,omitempty" jsonschema:"Maximum number of projects the user can create"`
Note string `json:"note,omitempty" jsonschema:"Admin note about the user"`
}
CreateInput holds parameters for creating a new GitLab user (admin only).
type CreateServiceAccountInput ¶
type CreateServiceAccountInput struct {
Name string `json:"name,omitempty" jsonschema:"Name for the service account"`
Username string `json:"username,omitempty" jsonschema:"Username for the service account"`
Email string `json:"email,omitempty" jsonschema:"Email for the service account"`
}
CreateServiceAccountInput holds parameters for creating a service account.
type CreateUserRunnerInput ¶
type CreateUserRunnerInput struct {
RunnerType string `json:"runner_type" jsonschema:"Runner type: instance_type or group_type or project_type,required"`
GroupID *int64 `json:"group_id,omitempty" jsonschema:"Group ID (required for group_type runners)"`
ProjectID *int64 `json:"project_id,omitempty" jsonschema:"Project ID (required for project_type runners)"`
Description string `json:"description,omitempty" jsonschema:"Runner description"`
Paused *bool `json:"paused,omitempty" jsonschema:"Whether the runner should be paused"`
Locked *bool `json:"locked,omitempty" jsonschema:"Whether the runner should be locked"`
RunUntagged *bool `json:"run_untagged,omitempty" jsonschema:"Whether the runner can run untagged jobs"`
TagList []string `json:"tag_list,omitempty" jsonschema:"List of runner tags"`
AccessLevel string `json:"access_level,omitempty" jsonschema:"Access level: not_protected or ref_protected"`
MaximumTimeout *int64 `json:"maximum_timeout,omitempty" jsonschema:"Maximum timeout for jobs in seconds"`
MaintenanceNote string `json:"maintenance_note,omitempty" jsonschema:"Maintenance note for the runner"`
}
CreateUserRunnerInput holds parameters for creating a runner linked to a user.
type CurrentInput ¶
type CurrentInput struct{}
CurrentInput is an empty struct for the current user tool (no parameters needed).
type CurrentUserPATOutput ¶
type CurrentUserPATOutput struct {
ID int64 `json:"id"`
Name string `json:"name"`
Active bool `json:"active"`
Token string `json:"token,omitempty"`
Scopes []string `json:"scopes"`
Revoked bool `json:"revoked"`
Description string `json:"description,omitempty"`
UserID int64 `json:"user_id"`
CreatedAt string `json:"created_at,omitempty"`
ExpiresAt string `json:"expires_at,omitempty"`
LastUsedAt string `json:"last_used_at,omitempty"`
}
CurrentUserPATOutput represents a personal access token.
func CreateCurrentUserPAT ¶
func CreateCurrentUserPAT(ctx context.Context, client *gitlabclient.Client, input CreateCurrentUserPATInput) (CurrentUserPATOutput, error)
CreateCurrentUserPAT creates a personal access token for the currently authenticated user.
type DeleteInput ¶
type DeleteInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user to delete,required"`
}
DeleteInput holds parameters for deleting a GitLab user (admin only).
type DeleteOutput ¶
DeleteOutput represents the result of deleting a user.
func Delete ¶
func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) (DeleteOutput, error)
Delete deletes a GitLab user (admin only).
type DeleteSSHKeyForUserInput ¶
type DeleteSSHKeyForUserInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user,required"`
KeyID int64 `json:"key_id" jsonschema:"The ID of the SSH key to delete,required"`
}
DeleteSSHKeyForUserInput holds parameters for deleting an SSH key from a specific user.
type DeleteSSHKeyInput ¶
type DeleteSSHKeyInput struct {
KeyID int64 `json:"key_id" jsonschema:"The ID of the SSH key to delete,required"`
}
DeleteSSHKeyInput holds parameters for deleting an SSH key from the current user.
type DeleteSSHKeyOutput ¶
DeleteSSHKeyOutput represents the result of deleting an SSH key.
func DeleteSSHKey ¶
func DeleteSSHKey(ctx context.Context, client *gitlabclient.Client, input DeleteSSHKeyInput) (DeleteSSHKeyOutput, error)
DeleteSSHKey deletes an SSH key from the current authenticated user.
func DeleteSSHKeyForUser ¶
func DeleteSSHKeyForUser(ctx context.Context, client *gitlabclient.Client, input DeleteSSHKeyForUserInput) (DeleteSSHKeyOutput, error)
DeleteSSHKeyForUser deletes an SSH key from a specific user (admin only).
type DeleteUserIdentityInput ¶
type DeleteUserIdentityInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user,required"`
Provider string `json:"provider" jsonschema:"The external provider name (e.g. ldap or saml),required"`
}
DeleteUserIdentityInput holds parameters for deleting a user's identity provider.
type DeleteUserIdentityOutput ¶
type DeleteUserIdentityOutput struct {
UserID int64 `json:"user_id"`
Provider string `json:"provider"`
Deleted bool `json:"deleted"`
}
DeleteUserIdentityOutput represents the result of deleting a user identity.
func DeleteUserIdentity ¶
func DeleteUserIdentity(ctx context.Context, client *gitlabclient.Client, input DeleteUserIdentityInput) (DeleteUserIdentityOutput, error)
DeleteUserIdentity deletes a user's identity provider (admin only).
type EmailListOutput ¶
type EmailListOutput struct {
toolutil.HintableOutput
Emails []EmailOutput `json:"emails"`
}
EmailListOutput holds a list of emails.
func ListEmails ¶
func ListEmails(ctx context.Context, client *gitlabclient.Client, _ ListEmailsInput) (EmailListOutput, error)
ListEmails retrieves email addresses for the current authenticated user.
type EmailOutput ¶
type EmailOutput struct {
ID int64 `json:"id"`
Email string `json:"email"`
ConfirmedAt string `json:"confirmed_at,omitempty"`
}
EmailOutput represents an email address.
type GetAssociationsCountInput ¶
type GetAssociationsCountInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user,required"`
}
GetAssociationsCountInput holds parameters for getting user association counts.
type GetInput ¶
type GetInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user to retrieve,required"`
}
GetInput holds parameters for retrieving a single user.
type GetSSHKeyForUserInput ¶
type GetSSHKeyForUserInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user,required"`
KeyID int64 `json:"key_id" jsonschema:"The ID of the SSH key,required"`
}
GetSSHKeyForUserInput holds parameters for retrieving a specific SSH key for a user.
type GetSSHKeyInput ¶
type GetSSHKeyInput struct {
KeyID int64 `json:"key_id" jsonschema:"The ID of the SSH key,required"`
}
GetSSHKeyInput holds parameters for retrieving a specific SSH key.
type GetStatusInput ¶
type GetStatusInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user whose status to retrieve,required"`
}
GetStatusInput holds parameters for retrieving a user's status.
type GetUserActivitiesInput ¶
type GetUserActivitiesInput struct {
From string `json:"from,omitempty" jsonschema:"Only activities after this date (YYYY-MM-DD)"`
Page int64 `json:"page,omitempty" jsonschema:"Page number for pagination"`
PerPage int64 `json:"per_page,omitempty" jsonschema:"Number of items per page (max 100)"`
}
GetUserActivitiesInput holds parameters for listing user activities (admin only).
type GetUserMembershipsInput ¶
type GetUserMembershipsInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user,required"`
Type string `json:"type,omitempty" jsonschema:"Filter by membership type: Project or Namespace"`
Page int64 `json:"page,omitempty" jsonschema:"Page number for pagination"`
PerPage int64 `json:"per_page,omitempty" jsonschema:"Number of items per page (max 100)"`
}
GetUserMembershipsInput holds parameters for listing a user's memberships.
type ListContributionEventsInput ¶
type ListContributionEventsInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user whose events to retrieve,required"`
Action string `` /* 176-byte string literal not displayed */
TargetType string `` /* 131-byte string literal not displayed */
Before string `json:"before,omitempty" jsonschema:"Only events before this date (YYYY-MM-DD)"`
After string `json:"after,omitempty" jsonschema:"Only events after this date (YYYY-MM-DD)"`
Sort string `json:"sort,omitempty" jsonschema:"Sort order: asc or desc"`
Page int64 `json:"page,omitempty" jsonschema:"Page number for pagination"`
PerPage int64 `json:"per_page,omitempty" jsonschema:"Number of items per page (max 100)"`
}
ListContributionEventsInput holds parameters for listing user contribution events.
type ListEmailsInput ¶
type ListEmailsInput struct{}
ListEmailsInput is an empty struct for listing current user's emails.
type ListInput ¶
type ListInput struct {
Search string `json:"search,omitempty" jsonschema:"Search users by name or username or email"`
Username string `json:"username,omitempty" jsonschema:"Filter by exact username"`
Active *bool `json:"active,omitempty" jsonschema:"Filter for active users only"`
Blocked *bool `json:"blocked,omitempty" jsonschema:"Filter for blocked users only"`
External *bool `json:"external,omitempty" jsonschema:"Filter for external users only"`
OrderBy string `json:"order_by,omitempty" jsonschema:"Order by: id | name | username | created_at | updated_at"`
Sort string `json:"sort,omitempty" jsonschema:"Sort order: asc or desc"`
Page int64 `json:"page,omitempty" jsonschema:"Page number for pagination"`
PerPage int64 `json:"per_page,omitempty" jsonschema:"Number of items per page (max 100)"`
}
ListInput holds parameters for listing GitLab users.
type ListOutput ¶
type ListOutput struct {
toolutil.HintableOutput
Users []Output `json:"users"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListOutput holds a paginated list of users.
func List ¶
func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
List retrieves a paginated list of GitLab users.
type ListSSHKeysForUserInput ¶
type ListSSHKeysForUserInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user,required"`
Page int64 `json:"page,omitempty" jsonschema:"Page number for pagination"`
PerPage int64 `json:"per_page,omitempty" jsonschema:"Number of items per page (max 100)"`
}
ListSSHKeysForUserInput holds parameters for listing SSH keys for a specific user.
type ListSSHKeysInput ¶
type ListSSHKeysInput struct {
Page int64 `json:"page,omitempty" jsonschema:"Page number for pagination"`
PerPage int64 `json:"per_page,omitempty" jsonschema:"Number of items per page (max 100)"`
}
ListSSHKeysInput holds parameters for listing SSH keys.
type ListServiceAccountsInput ¶
type ListServiceAccountsInput struct {
OrderBy string `json:"order_by,omitempty" jsonschema:"Field to order by (id/username/name)"`
Sort string `json:"sort,omitempty" jsonschema:"Sort direction (asc/desc)"`
Page int `json:"page,omitempty" jsonschema:"Page number for pagination"`
PerPage int `json:"per_page,omitempty" jsonschema:"Items per page (max 100)"`
}
ListServiceAccountsInput holds parameters for listing service accounts.
type ModifyInput ¶
type ModifyInput struct {
UserID int64 `json:"user_id" jsonschema:"The ID of the user to modify,required"`
Email string `json:"email,omitempty" jsonschema:"New email address"`
Name string `json:"name,omitempty" jsonschema:"New display name"`
Username string `json:"username,omitempty" jsonschema:"New username"`
Password string `json:"password,omitempty" jsonschema:"New password"`
Admin *bool `json:"admin,omitempty" jsonschema:"Grant or revoke admin privileges"`
External *bool `json:"external,omitempty" jsonschema:"Mark or unmark as external"`
SkipReconfirmation *bool `json:"skip_reconfirmation,omitempty" jsonschema:"Skip reconfirmation on email change"`
Bio string `json:"bio,omitempty" jsonschema:"New bio text"`
Location string `json:"location,omitempty" jsonschema:"New location"`
JobTitle string `json:"job_title,omitempty" jsonschema:"New job title"`
Organization string `json:"organization,omitempty" jsonschema:"New organization"`
ProjectsLimit *int64 `json:"projects_limit,omitempty" jsonschema:"New maximum projects limit"`
Note string `json:"note,omitempty" jsonschema:"New admin note"`
PrivateProfile *bool `json:"private_profile,omitempty" jsonschema:"Set profile as private"`
CanCreateGroup *bool `json:"can_create_group,omitempty" jsonschema:"Allow user to create groups"`
Locked *bool `json:"locked,omitempty" jsonschema:"Lock or unlock the user account"`
}
ModifyInput holds parameters for modifying an existing GitLab user (admin only).
type Output ¶
type Output struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Username string `json:"username"`
Email string `json:"email"`
Name string `json:"name"`
State string `json:"state"`
WebURL string `json:"web_url"`
AvatarURL string `json:"avatar_url"`
IsAdmin bool `json:"is_admin"`
Bot bool `json:"bot"`
Bio string `json:"bio,omitempty"`
Location string `json:"location,omitempty"`
JobTitle string `json:"job_title,omitempty"`
Organization string `json:"organization,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
PublicEmail string `json:"public_email,omitempty"`
WebsiteURL string `json:"website_url,omitempty"`
LastActivityOn string `json:"last_activity_on,omitempty"`
TwoFactorEnabled bool `json:"two_factor_enabled"`
External bool `json:"external"`
Locked bool `json:"locked"`
PrivateProfile bool `json:"private_profile"`
CurrentSignInAt string `json:"current_sign_in_at,omitempty"`
ProjectsLimit int64 `json:"projects_limit"`
CanCreateProject bool `json:"can_create_project"`
CanCreateGroup bool `json:"can_create_group"`
Note string `json:"note,omitempty"`
UsingLicenseSeat bool `json:"using_license_seat"`
ThemeID int64 `json:"theme_id,omitempty"`
ColorSchemeID int64 `json:"color_scheme_id,omitempty"`
}
Output represents the current authenticated GitLab user.
func Create ¶
func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)
Create creates a new GitLab user (admin only).
func CreateServiceAccount ¶
func CreateServiceAccount(ctx context.Context, client *gitlabclient.Client, input CreateServiceAccountInput) (Output, error)
CreateServiceAccount creates a new service account user.
func Current ¶
func Current(ctx context.Context, client *gitlabclient.Client, _ CurrentInput) (Output, error)
Current retrieves the currently authenticated GitLab user.
func Modify ¶
func Modify(ctx context.Context, client *gitlabclient.Client, input ModifyInput) (Output, error)
Modify modifies an existing GitLab user (admin only).
type SSHKeyListOutput ¶
type SSHKeyListOutput struct {
toolutil.HintableOutput
Keys []SSHKeyOutput `json:"keys"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
SSHKeyListOutput holds a paginated list of SSH keys.
func ListSSHKeys ¶
func ListSSHKeys(ctx context.Context, client *gitlabclient.Client, input ListSSHKeysInput) (SSHKeyListOutput, error)
ListSSHKeys retrieves SSH keys for the current authenticated user.
func ListSSHKeysForUser ¶
func ListSSHKeysForUser(ctx context.Context, client *gitlabclient.Client, input ListSSHKeysForUserInput) (SSHKeyListOutput, error)
ListSSHKeysForUser retrieves SSH keys for a specific user.
type SSHKeyOutput ¶
type SSHKeyOutput struct {
ID int64 `json:"id"`
Title string `json:"title"`
Key string `json:"key"`
CreatedAt string `json:"created_at,omitempty"`
ExpiresAt string `json:"expires_at,omitempty"`
UsageType string `json:"usage_type,omitempty"`
}
SSHKeyOutput represents an SSH key.
func AddSSHKey ¶
func AddSSHKey(ctx context.Context, client *gitlabclient.Client, input AddSSHKeyInput) (SSHKeyOutput, error)
AddSSHKey adds an SSH key to the current authenticated user.
func AddSSHKeyForUser ¶
func AddSSHKeyForUser(ctx context.Context, client *gitlabclient.Client, input AddSSHKeyForUserInput) (SSHKeyOutput, error)
AddSSHKeyForUser adds an SSH key to a specific user (admin only).
func GetSSHKey ¶
func GetSSHKey(ctx context.Context, client *gitlabclient.Client, input GetSSHKeyInput) (SSHKeyOutput, error)
GetSSHKey retrieves a specific SSH key for the current user.
func GetSSHKeyForUser ¶
func GetSSHKeyForUser(ctx context.Context, client *gitlabclient.Client, input GetSSHKeyForUserInput) (SSHKeyOutput, error)
GetSSHKeyForUser retrieves a specific SSH key for a user.
type ServiceAccountListOutput ¶
type ServiceAccountListOutput struct {
Accounts []ServiceAccountOutput `json:"accounts"`
}
ServiceAccountListOutput holds a list of service accounts.
func ListServiceAccounts ¶
func ListServiceAccounts(ctx context.Context, client *gitlabclient.Client, input ListServiceAccountsInput) (ServiceAccountListOutput, error)
ListServiceAccounts lists all service accounts.
type ServiceAccountOutput ¶
type ServiceAccountOutput struct {
ID int64 `json:"id"`
Username string `json:"username"`
Name string `json:"name"`
}
ServiceAccountOutput represents a service account.
type SetStatusInput ¶
type SetStatusInput struct {
Emoji string `json:"emoji,omitempty" jsonschema:"The emoji to set for the status (e.g. coffee or speech_balloon)"`
Message string `json:"message,omitempty" jsonschema:"The status message text"`
Availability string `json:"availability,omitempty" jsonschema:"The availability: not_set or busy"`
ClearStatusAfter string `` /* 153-byte string literal not displayed */
}
SetStatusInput holds parameters for setting the current user's status.
type StatusOutput ¶
type StatusOutput struct {
toolutil.HintableOutput
Emoji string `json:"emoji,omitempty"`
Availability string `json:"availability,omitempty"`
Message string `json:"message,omitempty"`
MessageHTML string `json:"message_html,omitempty"`
ClearStatusAt string `json:"clear_status_at,omitempty"`
}
StatusOutput represents a user's status.
func CurrentUserStatus ¶
func CurrentUserStatus(ctx context.Context, client *gitlabclient.Client, _ CurrentInput) (StatusOutput, error)
CurrentUserStatus retrieves the status of the current authenticated user.
func GetStatus ¶
func GetStatus(ctx context.Context, client *gitlabclient.Client, input GetStatusInput) (StatusOutput, error)
GetStatus retrieves the status of a specific user.
func SetStatus ¶
func SetStatus(ctx context.Context, client *gitlabclient.Client, input SetStatusInput) (StatusOutput, error)
SetStatus sets the current user's status.
type UserActivitiesOutput ¶
type UserActivitiesOutput struct {
Activities []UserActivityOutput `json:"activities"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
UserActivitiesOutput holds a paginated list of user activities.
func GetUserActivities ¶
func GetUserActivities(ctx context.Context, client *gitlabclient.Client, input GetUserActivitiesInput) (UserActivitiesOutput, error)
GetUserActivities retrieves user activity entries (admin only).
type UserActivityOutput ¶
type UserActivityOutput struct {
Username string `json:"username"`
LastActivityOn string `json:"last_activity_on,omitempty"`
}
UserActivityOutput represents a user activity entry.
type UserMembershipOutput ¶
type UserMembershipOutput struct {
SourceID int64 `json:"source_id"`
SourceName string `json:"source_name"`
SourceType string `json:"source_type"`
AccessLevel int64 `json:"access_level"`
}
UserMembershipOutput represents a user's membership in a project or group.
type UserMembershipsOutput ¶
type UserMembershipsOutput struct {
Memberships []UserMembershipOutput `json:"memberships"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
UserMembershipsOutput holds a paginated list of user memberships.
func GetUserMemberships ¶
func GetUserMemberships(ctx context.Context, client *gitlabclient.Client, input GetUserMembershipsInput) (UserMembershipsOutput, error)
GetUserMemberships retrieves a user's project and group memberships.
type UserRunnerOutput ¶
type UserRunnerOutput struct {
ID int64 `json:"id"`
Token string `json:"token"`
TokenExpiresAt string `json:"token_expires_at,omitempty"`
}
UserRunnerOutput represents a GitLab runner linked to the current user.
func CreateUserRunner ¶
func CreateUserRunner(ctx context.Context, client *gitlabclient.Client, input CreateUserRunnerInput) (UserRunnerOutput, error)
CreateUserRunner creates a runner linked to the current user.