Documentation
¶
Overview ¶
markdown.go provides Markdown formatting for MR approval settings output.
Package mrapprovalsettings implements MCP tool handlers for GitLab merge request approval settings at project and group level. It wraps the MergeRequestApprovalSettings API.
register.go wires mrapprovalsettings MCP tools to the MCP server.
Index ¶
- func FormatOutputMarkdown(out Output, scope string) string
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type GroupGetInput
- type GroupUpdateInput
- type Output
- func GetGroupSettings(ctx context.Context, client *gitlabclient.Client, input GroupGetInput) (Output, error)
- func GetProjectSettings(ctx context.Context, client *gitlabclient.Client, input ProjectGetInput) (Output, error)
- func UpdateGroupSettings(ctx context.Context, client *gitlabclient.Client, input GroupUpdateInput) (Output, error)
- func UpdateProjectSettings(ctx context.Context, client *gitlabclient.Client, input ProjectUpdateInput) (Output, error)
- type ProjectGetInput
- type ProjectUpdateInput
- type SettingOutput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatOutputMarkdown ¶
FormatOutputMarkdown renders MR approval settings as a Markdown table. scope should be "Group" or "Project".
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers all MR approval settings tools on the given MCP server.
Types ¶
type GroupGetInput ¶
type GroupGetInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
}
GroupGetInput defines parameters for retrieving group-level MR approval settings.
type GroupUpdateInput ¶
type GroupUpdateInput struct {
GroupID toolutil.StringOrInt `json:"group_id" jsonschema:"Group ID or URL-encoded path,required"`
AllowAuthorApproval *bool `json:"allow_author_approval,omitempty" jsonschema:"Allow merge request authors to approve their own MRs"`
AllowCommitterApproval *bool `json:"allow_committer_approval,omitempty" jsonschema:"Allow committers to approve MRs they contributed to"`
AllowOverridesToApproverListPerMergeRequest *bool `json:"allow_overrides_approver_list_per_mr,omitempty" jsonschema:"Allow overriding approver list per merge request"`
RetainApprovalsOnPush *bool `json:"retain_approvals_on_push,omitempty" jsonschema:"Retain approvals when new commits are pushed"`
RequireReauthenticationToApprove *bool `json:"require_reauthentication_to_approve,omitempty" jsonschema:"Require password re-entry to approve"`
}
GroupUpdateInput defines parameters for updating group-level MR approval settings.
type Output ¶
type Output struct {
toolutil.HintableOutput
AllowAuthorApproval SettingOutput `json:"allow_author_approval"`
AllowCommitterApproval SettingOutput `json:"allow_committer_approval"`
AllowOverridesToApproverListPerMergeRequest SettingOutput `json:"allow_overrides_approver_list_per_mr"`
RetainApprovalsOnPush SettingOutput `json:"retain_approvals_on_push"`
SelectiveCodeOwnerRemovals SettingOutput `json:"selective_code_owner_removals"`
RequirePasswordToApprove SettingOutput `json:"require_password_to_approve"`
RequireReauthenticationToApprove SettingOutput `json:"require_reauthentication_to_approve"`
}
Output represents the full set of MR approval settings for a group or project.
func GetGroupSettings ¶
func GetGroupSettings(ctx context.Context, client *gitlabclient.Client, input GroupGetInput) (Output, error)
GetGroupSettings retrieves the MR approval settings for a group.
func GetProjectSettings ¶
func GetProjectSettings(ctx context.Context, client *gitlabclient.Client, input ProjectGetInput) (Output, error)
GetProjectSettings retrieves the MR approval settings for a project.
func UpdateGroupSettings ¶
func UpdateGroupSettings(ctx context.Context, client *gitlabclient.Client, input GroupUpdateInput) (Output, error)
UpdateGroupSettings updates the MR approval settings for a group.
func UpdateProjectSettings ¶
func UpdateProjectSettings(ctx context.Context, client *gitlabclient.Client, input ProjectUpdateInput) (Output, error)
UpdateProjectSettings updates the MR approval settings for a project.
type ProjectGetInput ¶
type ProjectGetInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
}
ProjectGetInput defines parameters for retrieving project-level MR approval settings.
type ProjectUpdateInput ¶
type ProjectUpdateInput struct {
ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
AllowAuthorApproval *bool `json:"allow_author_approval,omitempty" jsonschema:"Allow merge request authors to approve their own MRs"`
AllowCommitterApproval *bool `json:"allow_committer_approval,omitempty" jsonschema:"Allow committers to approve MRs they contributed to"`
AllowOverridesToApproverListPerMergeRequest *bool `json:"allow_overrides_approver_list_per_mr,omitempty" jsonschema:"Allow overriding approver list per merge request"`
RetainApprovalsOnPush *bool `json:"retain_approvals_on_push,omitempty" jsonschema:"Retain approvals when new commits are pushed"`
RequireReauthenticationToApprove *bool `json:"require_reauthentication_to_approve,omitempty" jsonschema:"Require password re-entry to approve"`
SelectiveCodeOwnerRemovals *bool `` /* 134-byte string literal not displayed */
}
ProjectUpdateInput defines parameters for updating project-level MR approval settings.
type SettingOutput ¶
type SettingOutput struct {
Value bool `json:"value"`
Locked bool `json:"locked"`
InheritedFrom string `json:"inherited_from,omitempty"`
}
SettingOutput represents a single approval setting with its value, lock status, and inheritance source.