groupmembers

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: 9 Imported by: 0

Documentation

Overview

Package groupmembers implements MCP tools for GitLab group member operations.

The package wraps the GitLab Members API for group membership:

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 member actions.

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 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