groupserviceaccounts

package
v2.0.2 Latest Latest
Warning

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

Go to latest
Published: May 19, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package groupserviceaccounts implements MCP tools for GitLab group service account operations.

The package wraps the GitLab Group service accounts 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 group service account actions.

func Delete

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

Delete deletes a group service account.

func FormatListMarkdown

func FormatListMarkdown(out ListOutput) string

FormatListMarkdown renders a paginated list of service accounts as Markdown.

func FormatListMarkdownString

func FormatListMarkdownString(o ListOutput) string

FormatListMarkdownString renders a paginated list of service accounts.

func FormatListPATMarkdown

func FormatListPATMarkdown(out ListPATOutput) string

FormatListPATMarkdown renders a paginated list of PATs as Markdown.

func FormatListPATMarkdownString

func FormatListPATMarkdownString(o ListPATOutput) string

FormatListPATMarkdownString renders a paginated list of PATs.

func FormatMarkdownString

func FormatMarkdownString(o Output) string

FormatMarkdownString renders a service account as Markdown.

func FormatOutputMarkdown

func FormatOutputMarkdown(out Output) string

FormatOutputMarkdown renders a single service account as Markdown.

func FormatPATMarkdownString

func FormatPATMarkdownString(o PATOutput) string

FormatPATMarkdownString renders a service account PAT as Markdown.

func FormatPATOutputMarkdown

func FormatPATOutputMarkdown(out PATOutput) string

FormatPATOutputMarkdown renders a single PAT as Markdown.

func RevokePAT

func RevokePAT(ctx context.Context, client *gitlabclient.Client, input RevokePATInput) error

RevokePAT revokes a personal access token for a group service account.

Types

type CreateInput

type CreateInput struct {
	GroupID  string `json:"group_id" jsonschema:"Group ID or URL-encoded path (top-level only),required"`
	Name     string `json:"name,omitempty" jsonschema:"Service account name"`
	Username string `json:"username,omitempty" jsonschema:"Service account username"`
	Email    string `json:"email,omitempty" jsonschema:"Service account email"`
}

CreateInput holds parameters for creating a group service account.

type CreatePATInput

type CreatePATInput struct {
	GroupID          string   `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	ServiceAccountID int64    `json:"service_account_id" jsonschema:"Service account user ID,required"`
	Name             string   `json:"name" jsonschema:"Token name,required"`
	Scopes           []string `json:"scopes" jsonschema:"Token scopes (e.g. api read_api read_user),required"`
	Description      string   `json:"description,omitempty" jsonschema:"Token description"`
	ExpiresAt        string   `json:"expires_at,omitempty" jsonschema:"Expiration date (YYYY-MM-DD)"`
}

CreatePATInput holds parameters for creating a service account PAT.

type DeleteInput

type DeleteInput struct {
	GroupID          string `json:"group_id" jsonschema:"Group ID or URL-encoded path (top-level only),required"`
	ServiceAccountID int64  `json:"service_account_id" jsonschema:"Service account user ID,required"`
	HardDelete       bool   `json:"hard_delete,omitempty" jsonschema:"Hard delete the service account"`
}

DeleteInput holds parameters for deleting a group service account.

type DeleteOutput

type DeleteOutput = toolutil.DeleteOutput

DeleteOutput confirms the deletion of a resource.

type ListInput

type ListInput struct {
	GroupID string `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	toolutil.PaginationInput
	OrderBy string `json:"order_by,omitempty" jsonschema:"Order by id or username"`
	Sort    string `json:"sort,omitempty" jsonschema:"Sort direction: asc or desc"`
}

ListInput holds parameters for listing group service accounts.

type ListOutput

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

ListOutput holds a paginated list of group service accounts.

func List

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

List retrieves service accounts for a group.

type ListPATInput

type ListPATInput struct {
	GroupID          string `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	ServiceAccountID int64  `json:"service_account_id" jsonschema:"Service account user ID,required"`
	toolutil.PaginationInput
}

ListPATInput holds parameters for listing service account PATs.

type ListPATOutput

type ListPATOutput struct {
	toolutil.HintableOutput
	Tokens     []PATOutput               `json:"tokens"`
	Pagination toolutil.PaginationOutput `json:"pagination"`
}

ListPATOutput holds a paginated list of service account PATs.

func ListPATs

func ListPATs(ctx context.Context, client *gitlabclient.Client, input ListPATInput) (ListPATOutput, error)

ListPATs retrieves personal access tokens for a group service account.

type Output

type Output struct {
	toolutil.HintableOutput
	ID       int64  `json:"id"`
	Name     string `json:"name"`
	Username string `json:"username"`
	Email    string `json:"email"`
}

Output represents a group service account.

func Create

func Create(ctx context.Context, client *gitlabclient.Client, input CreateInput) (Output, error)

Create creates a new group service account.

func Update

func Update(ctx context.Context, client *gitlabclient.Client, input UpdateInput) (Output, error)

Update updates a group service account.

type PATOutput

type PATOutput struct {
	toolutil.HintableOutput
	ID          int64    `json:"id"`
	Name        string   `json:"name"`
	Revoked     bool     `json:"revoked"`
	CreatedAt   string   `json:"created_at,omitempty"`
	Description string   `json:"description,omitempty"`
	Scopes      []string `json:"scopes"`
	UserID      int64    `json:"user_id"`
	Active      bool     `json:"active"`
	ExpiresAt   string   `json:"expires_at,omitempty"`
	Token       string   `json:"token,omitempty"`
}

PATOutput represents a personal access token for a service account.

func CreatePAT

func CreatePAT(ctx context.Context, client *gitlabclient.Client, input CreatePATInput) (PATOutput, error)

CreatePAT creates a new personal access token for a group service account.

type RevokePATInput

type RevokePATInput struct {
	GroupID          string `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	ServiceAccountID int64  `json:"service_account_id" jsonschema:"Service account user ID,required"`
	TokenID          int64  `json:"token_id" jsonschema:"Personal access token ID to revoke,required"`
}

RevokePATInput holds parameters for revoking a service account PAT.

type UpdateInput

type UpdateInput struct {
	GroupID          string `json:"group_id" jsonschema:"Group ID or URL-encoded path (top-level only),required"`
	ServiceAccountID int64  `json:"service_account_id" jsonschema:"Service account user ID,required"`
	Name             string `json:"name,omitempty" jsonschema:"New name"`
	Username         string `json:"username,omitempty" jsonschema:"New username"`
	Email            string `json:"email,omitempty" jsonschema:"New email"`
}

UpdateInput holds parameters for updating a group service account.

Jump to

Keyboard shortcuts

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