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

groupscim

package
v3.2.0 Latest Latest
Warning

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

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

Documentation

Overview

Package groupscim implements MCP tools for GitLab group SCIM operations.

The package wraps the GitLab SCIM 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 SCIM identity actions.

func Delete

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

Delete removes a SCIM identity.

func FormatListMarkdown

func FormatListMarkdown(out ListOutput) string

FormatListMarkdown renders a list of SCIM identities as Markdown.

func FormatOutputMarkdown

func FormatOutputMarkdown(o Output) string

FormatOutputMarkdown renders a single SCIM identity as Markdown.

func FormatUpdateMarkdown

func FormatUpdateMarkdown(out UpdateOutput) string

FormatUpdateMarkdown renders the SCIM identity update confirmation as Markdown.

func Update

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

Update modifies a SCIM identity.

Types

type DeleteInput

type DeleteInput struct {
	GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	UID     string               `json:"uid"      jsonschema:"SCIM external UID of the user,required"`
}

DeleteInput holds parameters for deleting a SCIM identity.

type GetInput

type GetInput struct {
	GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
	UID     string               `json:"uid"      jsonschema:"SCIM external UID of the user,required"`
}

GetInput holds parameters for getting a single SCIM identity.

type ListInput

type ListInput struct {
	GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
}

ListInput holds parameters for listing SCIM identities for a group.

type ListOutput

type ListOutput struct {
	toolutil.HintableOutput
	Identities []Output `json:"identities"`
}

ListOutput holds the list response.

func List

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

List returns all SCIM identities for a group.

type Output

type Output struct {
	toolutil.HintableOutput
	ExternUID string `json:"extern_uid"`
	UserID    int64  `json:"user_id"`
	Active    bool   `json:"active"`
}

Output represents a SCIM identity. ExternUID is spelled the way GitLab spells it. The SDK struct declared the key as external_uid until client-go v3.12.0, a key GitLab never sends, so the SDK's own field never decoded and this output was filled from the captured response instead. v3.12.0 corrected the tag to extern_uid, which is why the capture is gone and the SDK struct is read directly.

func Get

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

Get returns a single SCIM identity.

type UpdateInput

type UpdateInput struct {
	GroupID   toolutil.StringOrInt `json:"group_id"   jsonschema:"Group ID or URL-encoded path,required"`
	UID       string               `json:"uid"         jsonschema:"SCIM external UID of the user,required"`
	ExternUID string               `json:"extern_uid"  jsonschema:"New external UID value,required"`
}

UpdateInput holds parameters for updating a SCIM identity.

type UpdateOutput

type UpdateOutput struct {
	toolutil.HintableOutput
	Updated bool   `json:"updated"`
	Message string `json:"message"`
}

UpdateOutput holds the update confirmation.

Jump to

Keyboard shortcuts

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