Documentation
¶
Overview ¶
Package groupprotectedenvs implements MCP tool handlers for GitLab group-level protected environment operations.
Index ¶
- func FormatListMarkdown(out ListOutput) string
- func FormatOutputMarkdown(out Output) string
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- func Unprotect(ctx context.Context, client *gitlabclient.Client, input UnprotectInput) error
- type AccessLevelOutput
- type ApprovalRuleInput
- type ApprovalRuleOutput
- type DeployAccessLevelInput
- type GetInput
- type ListInput
- type ListOutput
- type Output
- type ProtectInput
- type UnprotectInput
- type UpdateApprovalRuleInput
- type UpdateDeployAccessLevelInput
- type UpdateInput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatListMarkdown ¶
func FormatListMarkdown(out ListOutput) string
FormatListMarkdown renders a paginated list of group protected environments as Markdown.
func FormatOutputMarkdown ¶
FormatOutputMarkdown renders a single group protected environment as Markdown.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers group protected environment tools on the MCP server.
func Unprotect ¶
func Unprotect(ctx context.Context, client *gitlabclient.Client, input UnprotectInput) error
Unprotect removes a group-level protected environment.
Types ¶
type AccessLevelOutput ¶
type AccessLevelOutput struct {
ID int64 `json:"id"`
AccessLevel int `json:"access_level"`
AccessLevelDescription string `json:"access_level_description"`
UserID int64 `json:"user_id,omitempty"`
GroupID int64 `json:"group_id,omitempty"`
GroupInheritanceType int64 `json:"group_inheritance_type,omitempty"`
}
AccessLevelOutput represents a deploy access level on a group protected environment.
type ApprovalRuleInput ¶
type ApprovalRuleInput struct {
UserID *int64 `json:"user_id,omitempty" jsonschema:"User ID"`
GroupID *int64 `json:"group_id,omitempty" jsonschema:"Group ID"`
AccessLevel *int `json:"access_level,omitempty" jsonschema:"Access level"`
RequiredApprovalCount *int64 `json:"required_approvals,omitempty" jsonschema:"Required number of approvals"`
GroupInheritanceType *int64 `json:"group_inheritance_type,omitempty" jsonschema:"Group inheritance type (0=direct, 1=inherited)"`
}
ApprovalRuleInput represents an approval rule input.
type ApprovalRuleOutput ¶
type ApprovalRuleOutput struct {
ID int64 `json:"id"`
UserID int64 `json:"user_id,omitempty"`
GroupID int64 `json:"group_id,omitempty"`
AccessLevel int `json:"access_level"`
AccessLevelDescription string `json:"access_level_description"`
RequiredApprovalCount int64 `json:"required_approvals"`
GroupInheritanceType int64 `json:"group_inheritance_type,omitempty"`
}
ApprovalRuleOutput represents an approval rule on a group protected environment.
type DeployAccessLevelInput ¶
type DeployAccessLevelInput struct {
AccessLevel *int `json:"access_level,omitempty" jsonschema:"Access level (0=No access, 30=Developer, 40=Maintainer, 60=Admin)"`
UserID *int64 `json:"user_id,omitempty" jsonschema:"User ID"`
GroupID *int64 `json:"group_id,omitempty" jsonschema:"Group ID"`
GroupInheritanceType *int64 `json:"group_inheritance_type,omitempty" jsonschema:"Group inheritance type (0=direct, 1=inherited)"`
}
DeployAccessLevelInput represents an access level for deployment.
type GetInput ¶
type GetInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
Environment string `json:"environment" jsonschema:"Environment name,required"`
}
GetInput defines parameters for the Get action which retrieves a single group-level protected environment.
type ListInput ¶
type ListInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
toolutil.PaginationInput
}
ListInput defines parameters for the List action which retrieves group-level protected environments.
type ListOutput ¶
type ListOutput struct {
toolutil.HintableOutput
Environments []Output `json:"environments"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListOutput holds a paginated list of group protected environments.
func List ¶
func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
List retrieves all group-level protected environments.
type Output ¶
type Output struct {
toolutil.HintableOutput
Name string `json:"name"`
DeployAccessLevels []AccessLevelOutput `json:"deploy_access_levels"`
RequiredApprovalCount int64 `json:"required_approval_count"`
ApprovalRules []ApprovalRuleOutput `json:"approval_rules"`
}
Output represents a single group-level protected environment.
func Protect ¶
func Protect(ctx context.Context, client *gitlabclient.Client, input ProtectInput) (Output, error)
Protect creates a new group-level protected environment.
func Update ¶
func Update(ctx context.Context, client *gitlabclient.Client, input UpdateInput) (Output, error)
Update modifies a group-level protected environment.
type ProtectInput ¶
type ProtectInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
Name string `json:"name" jsonschema:"Environment name to protect,required"`
DeployAccessLevels []DeployAccessLevelInput `json:"deploy_access_levels,omitempty" jsonschema:"Deploy access levels"`
RequiredApprovalCount *int64 `json:"required_approval_count,omitempty" jsonschema:"Required number of approvals"`
ApprovalRules []ApprovalRuleInput `json:"approval_rules,omitempty" jsonschema:"Approval rules"`
}
ProtectInput defines parameters for the Protect action which creates a group-level protected environment.
type UnprotectInput ¶
type UnprotectInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
Environment string `json:"environment" jsonschema:"Environment name to unprotect,required"`
}
UnprotectInput defines parameters for the Unprotect action which removes a group-level protected environment.
type UpdateApprovalRuleInput ¶
type UpdateApprovalRuleInput struct {
ID *int64 `json:"id,omitempty" jsonschema:"Existing approval rule ID to update"`
UserID *int64 `json:"user_id,omitempty" jsonschema:"User ID"`
GroupID *int64 `json:"group_id,omitempty" jsonschema:"Group ID"`
AccessLevel *int `json:"access_level,omitempty" jsonschema:"Access level"`
RequiredApprovalCount *int64 `json:"required_approvals,omitempty" jsonschema:"Required number of approvals"`
GroupInheritanceType *int64 `json:"group_inheritance_type,omitempty" jsonschema:"Group inheritance type"`
Destroy *bool `json:"_destroy,omitempty" jsonschema:"Set true to remove this rule"`
}
UpdateApprovalRuleInput represents an updated approval rule.
type UpdateDeployAccessLevelInput ¶
type UpdateDeployAccessLevelInput struct {
ID *int64 `json:"id,omitempty" jsonschema:"Existing access level ID to update"`
AccessLevel *int `json:"access_level,omitempty" jsonschema:"Access level"`
UserID *int64 `json:"user_id,omitempty" jsonschema:"User ID"`
GroupID *int64 `json:"group_id,omitempty" jsonschema:"Group ID"`
GroupInheritanceType *int64 `json:"group_inheritance_type,omitempty" jsonschema:"Group inheritance type"`
Destroy *bool `json:"_destroy,omitempty" jsonschema:"Set true to remove this access level"`
}
UpdateDeployAccessLevelInput represents an updated deploy access level.
type UpdateInput ¶
type UpdateInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
Environment string `json:"environment" jsonschema:"Environment name,required"`
Name string `json:"name,omitempty" jsonschema:"New environment name"`
DeployAccessLevels []UpdateDeployAccessLevelInput `json:"deploy_access_levels,omitempty" jsonschema:"Updated deploy access levels"`
RequiredApprovalCount *int64 `json:"required_approval_count,omitempty" jsonschema:"Required number of approvals"`
ApprovalRules []UpdateApprovalRuleInput `json:"approval_rules,omitempty" jsonschema:"Updated approval rules"`
}
UpdateInput defines parameters for the Update action which modifies a group-level protected environment.