groupmembers

package
v1.0.4 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 groupmembers provides MCP tool handlers for GitLab group member operations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FormatMemberMarkdown

func FormatMemberMarkdown(out Output) string

FormatMemberMarkdown formats a single group member as markdown.

func FormatShareMarkdown

func FormatShareMarkdown(out ShareOutput) string

FormatShareMarkdown formats a group share result as markdown.

func RegisterMeta

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

RegisterMeta registers the gitlab_group_member meta-tool.

func RegisterTools

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

RegisterTools registers all group member individual tools.

func RemoveMember

func RemoveMember(ctx context.Context, client *gitlabclient.Client, input RemoveInput) error

RemoveMember removes a member from a group.

func UnshareGroup

func UnshareGroup(ctx context.Context, client *gitlabclient.Client, input UnshareInput) error

UnshareGroup removes a group share.

Types

type AddInput

type AddInput struct {
	GroupID     toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	UserID      int64                `json:"user_id,omitempty" jsonschema:"User ID to add,required"`
	Username    string               `json:"username,omitempty" jsonschema:"Username to add (alternative to user_id)"`
	AccessLevel int                  `json:"access_level" jsonschema:"Access level (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner)"`
	ExpiresAt   string               `json:"expires_at,omitempty" jsonschema:"Membership expiration date (YYYY-MM-DD)"`
}

AddInput contains parameters for adding a group member.

type EditInput

type EditInput struct {
	GroupID     toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	UserID      int64                `json:"user_id" jsonschema:"User ID,required"`
	AccessLevel int                  `json:"access_level,omitempty" jsonschema:"New access level (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner)"`
	ExpiresAt   string               `json:"expires_at,omitempty" jsonschema:"New membership expiration date (YYYY-MM-DD)"`
}

EditInput contains parameters for editing a group member.

type GetInput

type GetInput struct {
	GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	UserID  int64                `json:"user_id" jsonschema:"User ID,required"`
}

GetInput contains parameters for getting a group member.

type Output

type Output struct {
	toolutil.HintableOutput
	ID                     int64  `json:"id"`
	Username               string `json:"username"`
	Name                   string `json:"name"`
	State                  string `json:"state"`
	AvatarURL              string `json:"avatar_url,omitempty"`
	WebURL                 string `json:"web_url"`
	AccessLevel            int    `json:"access_level"`
	AccessLevelDescription string `json:"access_level_description"`
	CreatedAt              string `json:"created_at,omitempty"`
	ExpiresAt              string `json:"expires_at,omitempty"`
	Email                  string `json:"email,omitempty"`
	MemberRoleName         string `json:"member_role_name,omitempty"`
	IsUsingSeat            bool   `json:"is_using_seat,omitempty"`
}

Output represents a single group member.

func AddMember

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

AddMember adds a member to a group.

func EditMember

func EditMember(ctx context.Context, client *gitlabclient.Client, input EditInput) (Output, error)

EditMember edits a group member.

func GetInheritedMember

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

GetInheritedMember gets a single inherited group member.

func GetMember

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

GetMember gets a single group member.

type RemoveInput

type RemoveInput struct {
	GroupID           toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	UserID            int64                `json:"user_id" jsonschema:"User ID to remove,required"`
	SkipSubresources  bool                 `json:"skip_subresources,omitempty" jsonschema:"Skip removal from subresources"`
	UnassignIssuables bool                 `json:"unassign_issuables,omitempty" jsonschema:"Unassign issues and merge requests"`
}

RemoveInput contains parameters for removing a group member.

type ShareInput

type ShareInput struct {
	GroupID      toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path to share,required"`
	ShareGroupID int64                `json:"share_group_id" jsonschema:"Group ID to share with,required"`
	GroupAccess  int                  `json:"group_access" jsonschema:"Access level for the shared group (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer)"`
	ExpiresAt    string               `json:"expires_at,omitempty" jsonschema:"Share expiration date (YYYY-MM-DD)"`
}

ShareInput contains parameters for sharing a group with another group.

type ShareOutput

type ShareOutput struct {
	toolutil.HintableOutput
	ID          int64  `json:"id"`
	Name        string `json:"name"`
	Path        string `json:"path"`
	Description string `json:"description,omitempty"`
	WebURL      string `json:"web_url"`
}

ShareOutput represents the result of sharing with a group.

func ShareGroup

func ShareGroup(ctx context.Context, client *gitlabclient.Client, input ShareInput) (ShareOutput, error)

ShareGroup shares a group with another group.

type UnshareInput

type UnshareInput struct {
	GroupID      toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	ShareGroupID int64                `json:"share_group_id" jsonschema:"Group ID to stop sharing with,required"`
}

UnshareInput contains parameters for unsharing a group.

Jump to

Keyboard shortcuts

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