Documentation
¶
Overview ¶
Package groupsaml implements MCP tools for GitLab group SAML link operations.
The package wraps the GitLab Group SAML API:
Index ¶
- func ActionSpecs(client *gitlabclient.Client) []toolutil.ActionSpec
- func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) error
- func FormatListMarkdown(out ListOutput) string
- func FormatOutputMarkdown(out Output) string
- func FormatSAMLUsersListMarkdown(out SAMLUsersListOutput) string
- type AddInput
- type BasicUserOutput
- type CustomAttributeOutput
- type DeleteInput
- type GetInput
- type ListInput
- type ListOutput
- type Output
- type SAMLUserOutput
- type SAMLUsersListInput
- type SAMLUsersListOutput
- type SCIMIdentityOutput
- type UserIdentityOutput
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 SAML link actions.
func Delete ¶
func Delete(ctx context.Context, client *gitlabclient.Client, input DeleteInput) error
Delete removes a group SAML link.
func FormatListMarkdown ¶
func FormatListMarkdown(out ListOutput) string
FormatListMarkdown renders a list of group SAML links as Markdown.
func FormatOutputMarkdown ¶
FormatOutputMarkdown renders a single group SAML link as Markdown.
func FormatSAMLUsersListMarkdown ¶ added in v2.3.0
func FormatSAMLUsersListMarkdown(out SAMLUsersListOutput) string
FormatSAMLUsersListMarkdown renders the SAML-provisioned users of a group as Markdown.
Types ¶
type AddInput ¶
type AddInput struct {
GroupID string `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
SAMLGroupName string `json:"saml_group_name" jsonschema:"Name of the SAML group,required"`
AccessLevel int `` /* 154-byte string literal not displayed */
MemberRoleID *int64 `json:"member_role_id,omitempty" jsonschema:"Custom member role ID"`
Provider string `json:"provider,omitempty" jsonschema:"SAML provider name"`
}
AddInput holds parameters for adding a group SAML link.
type BasicUserOutput ¶ added in v2.3.0
type BasicUserOutput struct {
ID int64 `json:"id"`
Username string `json:"username"`
Name string `json:"name"`
State string `json:"state,omitempty"`
AvatarURL string `json:"avatar_url,omitempty"`
WebURL string `json:"web_url,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
}
BasicUserOutput mirrors gl.BasicUser for the created_by reference.
type CustomAttributeOutput ¶ added in v2.3.0
CustomAttributeOutput represents a single custom attribute key/value pair.
type DeleteInput ¶
type DeleteInput struct {
GroupID string `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
SAMLGroupName string `json:"saml_group_name" jsonschema:"Name of the SAML group to delete,required"`
}
DeleteInput holds parameters for deleting a group SAML link.
type GetInput ¶
type GetInput struct {
GroupID string `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
SAMLGroupName string `json:"saml_group_name" jsonschema:"Name of the SAML group,required"`
}
GetInput holds parameters for getting a single group SAML link.
type ListInput ¶
type ListInput struct {
GroupID string `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
}
ListInput holds parameters for listing group SAML links.
type ListOutput ¶
type ListOutput struct {
toolutil.HintableOutput
Links []Output `json:"links"`
}
ListOutput holds a list of group SAML links.
func List ¶
func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
List retrieves all SAML links for a group.
type Output ¶
type Output struct {
toolutil.HintableOutput
Name string `json:"name"`
AccessLevel int `json:"access_level"`
MemberRoleID int64 `json:"member_role_id,omitempty"`
Provider string `json:"provider,omitempty"`
}
Output represents a single group SAML link.
type SAMLUserOutput ¶ added in v2.3.0
type SAMLUserOutput struct {
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"`
IsAuditor bool `json:"is_auditor"`
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"`
Skype string `json:"skype,omitempty"`
Linkedin string `json:"linkedin,omitempty"`
Twitter string `json:"twitter,omitempty"`
Provider string `json:"provider,omitempty"`
ExternUID string `json:"extern_uid,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
ConfirmedAt string `json:"confirmed_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"`
CurrentSignInIP string `json:"current_sign_in_ip,omitempty"`
LastSignInAt string `json:"last_sign_in_at,omitempty"`
LastSignInIP string `json:"last_sign_in_ip,omitempty"`
ProjectsLimit int64 `json:"projects_limit"`
CanCreateProject bool `json:"can_create_project"`
CanCreateGroup bool `json:"can_create_group"`
CanCreateOrganization bool `json:"can_create_organization"`
Note string `json:"note,omitempty"`
UsingLicenseSeat bool `json:"using_license_seat"`
ThemeID int64 `json:"theme_id,omitempty"`
ColorSchemeID int64 `json:"color_scheme_id,omitempty"`
NamespaceID int64 `json:"namespace_id,omitempty"`
Identities []UserIdentityOutput `json:"identities,omitempty"`
SCIMIdentities []SCIMIdentityOutput `json:"scim_identities,omitempty"`
CustomAttributes []CustomAttributeOutput `json:"custom_attributes,omitempty"`
CreatedBy *BasicUserOutput `json:"created_by,omitempty"`
}
SAMLUserOutput represents a SAML-provisioned user of a top-level group. The GitLab saml_users endpoint returns the standard user object, so this mirrors the canonical user representation (gl.User) field-for-field. The groups sub-packages cannot import each other (zero import cycles), so the shape is replicated here rather than shared.
type SAMLUsersListInput ¶ added in v2.3.0
type SAMLUsersListInput struct {
GroupID string `json:"group_id" jsonschema:"Top-level group ID or URL-encoded path,required"`
Search string `json:"search,omitempty" jsonschema:"Filter SAML users by name, username, or public email"`
Username string `json:"username,omitempty" jsonschema:"Filter by an exact username"`
Active *bool `json:"active,omitempty" jsonschema:"Limit to active users only"`
Blocked *bool `json:"blocked,omitempty" jsonschema:"Limit to blocked users only"`
CreatedAfter string `json:"created_after,omitempty" jsonschema:"Return users created after this timestamp (RFC3339, e.g. 2026-01-02T15:04:05Z)"`
CreatedBefore string `json:"created_before,omitempty" jsonschema:"Return users created before this timestamp (RFC3339, e.g. 2026-01-02T15:04:05Z)"`
OrderBy string `json:"order_by,omitempty" jsonschema:"Column to order keyset-paginated results by (e.g. id, name, username, created_at)"`
Sort string `json:"sort,omitempty" jsonschema:"Sort order for keyset pagination: 'asc' or 'desc'"`
toolutil.PaginationInput
toolutil.KeysetPaginationInput
}
SAMLUsersListInput holds parameters for listing the SAML users of a top-level group.
type SAMLUsersListOutput ¶ added in v2.3.0
type SAMLUsersListOutput struct {
toolutil.HintableOutput
Users []SAMLUserOutput `json:"users"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
SAMLUsersListOutput holds a paginated list of SAML-provisioned group users.
func SAMLUsersList ¶ added in v2.3.0
func SAMLUsersList(ctx context.Context, client *gitlabclient.Client, input SAMLUsersListInput) (SAMLUsersListOutput, error)
SAMLUsersList retrieves the users provisioned via SAML SSO for a top-level group.
type SCIMIdentityOutput ¶ added in v2.3.0
type SCIMIdentityOutput struct {
ExternUID string `json:"extern_uid"`
GroupID int64 `json:"group_id"`
Active bool `json:"active"`
}
SCIMIdentityOutput represents a SCIM identity associated with a SAML user.
type UserIdentityOutput ¶ added in v2.3.0
type UserIdentityOutput struct {
Provider string `json:"provider"`
ExternUID string `json:"extern_uid"`
}
UserIdentityOutput represents a linked external identity (provider, extern_uid).