pages

package
v2.0.5 Latest Latest
Warning

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

Go to latest
Published: May 22, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package pages implements MCP tools for GitLab Pages operations.

The package wraps the GitLab Pages 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 project Pages actions.

func DeleteDomain

func DeleteDomain(ctx context.Context, client *gitlabclient.Client, input DeleteDomainInput) error

DeleteDomain deletes a Pages domain.

func FormatAllDomainsMarkdown

func FormatAllDomainsMarkdown(out ListAllDomainsOutput) string

FormatAllDomainsMarkdown formats a list of all Pages domains.

func FormatDeleteMarkdown

func FormatDeleteMarkdown(domain string) string

FormatDeleteMarkdown returns a confirmation for domain deletion.

func FormatDomainListMarkdown

func FormatDomainListMarkdown(out ListDomainsOutput) string

FormatDomainListMarkdown formats a list of Pages domains.

func FormatDomainMarkdown

func FormatDomainMarkdown(out DomainOutput) string

FormatDomainMarkdown formats a single Pages domain for display.

func FormatPagesMarkdown

func FormatPagesMarkdown(out Output) string

FormatPagesMarkdown formats Pages settings for display.

func FormatUnpublishMarkdown

func FormatUnpublishMarkdown() string

FormatUnpublishMarkdown returns a confirmation for pages unpublish.

func UnpublishPages

func UnpublishPages(ctx context.Context, client *gitlabclient.Client, input UnpublishPagesInput) error

UnpublishPages unpublishes Pages for a project.

Types

type CertificateOutput

type CertificateOutput struct {
	Subject         string `json:"subject"`
	Expired         bool   `json:"expired"`
	Expiration      string `json:"expiration,omitempty"`
	Certificate     string `json:"certificate,omitempty"`
	CertificateText string `json:"certificate_text,omitempty"`
}

CertificateOutput represents a Pages domain certificate.

type CreateDomainInput

type CreateDomainInput struct {
	ProjectID      toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	Domain         string               `json:"domain" jsonschema:"Custom domain name (e.g. example.com),required"`
	AutoSslEnabled *bool                `json:"auto_ssl_enabled,omitempty" jsonschema:"Enable automatic SSL certificate provisioning"`
	Certificate    string               `json:"certificate,omitempty" jsonschema:"PEM-encoded SSL certificate"`
	Key            string               `json:"key,omitempty" jsonschema:"PEM-encoded private key for the certificate"`
}

CreateDomainInput defines parameters for creating a Pages domain.

type DeleteDomainInput

type DeleteDomainInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	Domain    string               `json:"domain" jsonschema:"The Pages domain name to delete,required"`
}

DeleteDomainInput defines parameters for deleting a Pages domain.

type DeploymentOutput

type DeploymentOutput struct {
	CreatedAt     string `json:"created_at"`
	URL           string `json:"url"`
	PathPrefix    string `json:"path_prefix"`
	RootDirectory string `json:"root_directory"`
}

DeploymentOutput represents a Pages deployment.

type DomainOutput

type DomainOutput struct {
	toolutil.HintableOutput
	Domain           string            `json:"domain"`
	AutoSslEnabled   bool              `json:"auto_ssl_enabled"`
	URL              string            `json:"url"`
	ProjectID        int64             `json:"project_id"`
	ProjectPath      string            `json:"project_path,omitempty"`
	Verified         bool              `json:"verified"`
	VerificationCode string            `json:"verification_code"`
	EnabledUntil     string            `json:"enabled_until,omitempty"`
	Certificate      CertificateOutput `json:"certificate"`
}

DomainOutput represents a Pages domain.

func CreateDomain

func CreateDomain(ctx context.Context, client *gitlabclient.Client, input CreateDomainInput) (DomainOutput, error)

CreateDomain creates a new Pages domain for a project.

func GetDomain

func GetDomain(ctx context.Context, client *gitlabclient.Client, input GetDomainInput) (DomainOutput, error)

GetDomain retrieves a single Pages domain.

func UpdateDomain

func UpdateDomain(ctx context.Context, client *gitlabclient.Client, input UpdateDomainInput) (DomainOutput, error)

UpdateDomain updates an existing Pages domain.

type GetDomainInput

type GetDomainInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	Domain    string               `json:"domain" jsonschema:"The Pages domain name,required"`
}

GetDomainInput defines parameters for getting a single Pages domain.

type GetPagesInput

type GetPagesInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
}

GetPagesInput defines parameters for getting Pages settings.

type ListAllDomainsInput

type ListAllDomainsInput struct{}

ListAllDomainsInput defines parameters for listing all Pages domains globally.

type ListAllDomainsOutput

type ListAllDomainsOutput struct {
	toolutil.HintableOutput
	Domains []DomainOutput `json:"domains"`
}

ListAllDomainsOutput wraps a list of all Pages domains.

func ListAllDomains

ListAllDomains returns all Pages domains across all projects.

type ListDomainsInput

type ListDomainsInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	toolutil.PaginationInput
}

ListDomainsInput defines parameters for listing Pages domains for a project.

type ListDomainsOutput

type ListDomainsOutput struct {
	toolutil.HintableOutput
	Domains    []DomainOutput            `json:"domains"`
	Pagination toolutil.PaginationOutput `json:"pagination"`
}

ListDomainsOutput wraps a list of Pages domains with pagination.

func ListDomains

func ListDomains(ctx context.Context, client *gitlabclient.Client, input ListDomainsInput) (ListDomainsOutput, error)

ListDomains returns Pages domains for a specific project.

type Output

type Output struct {
	toolutil.HintableOutput
	URL                   string             `json:"url"`
	IsUniqueDomainEnabled bool               `json:"is_unique_domain_enabled"`
	ForceHTTPS            bool               `json:"force_https"`
	Deployments           []DeploymentOutput `json:"deployments,omitempty"`
	PrimaryDomain         string             `json:"primary_domain"`
}

Output represents Pages settings for a project.

func GetPages

func GetPages(ctx context.Context, client *gitlabclient.Client, input GetPagesInput) (Output, error)

GetPages retrieves Pages settings for a project.

func UpdatePages

func UpdatePages(ctx context.Context, client *gitlabclient.Client, input UpdatePagesInput) (Output, error)

UpdatePages updates Pages settings for a project.

type UnpublishPagesInput

type UnpublishPagesInput struct {
	ProjectID toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
}

UnpublishPagesInput defines parameters for unpublishing Pages.

type UpdateDomainInput

type UpdateDomainInput struct {
	ProjectID      toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	Domain         string               `json:"domain" jsonschema:"The Pages domain name to update,required"`
	AutoSslEnabled *bool                `json:"auto_ssl_enabled,omitempty" jsonschema:"Enable automatic SSL certificate provisioning"`
	Certificate    string               `json:"certificate,omitempty" jsonschema:"PEM-encoded SSL certificate"`
	Key            string               `json:"key,omitempty" jsonschema:"PEM-encoded private key for the certificate"`
}

UpdateDomainInput defines parameters for updating a Pages domain.

type UpdatePagesInput

type UpdatePagesInput struct {
	ProjectID                toolutil.StringOrInt `json:"project_id" jsonschema:"Project ID or URL-encoded path,required"`
	PagesUniqueDomainEnabled *bool                `json:"pages_unique_domain_enabled,omitempty" jsonschema:"Enable unique domain for Pages"`
	PagesHTTPSOnly           *bool                `json:"pages_https_only,omitempty" jsonschema:"Enforce HTTPS for Pages"`
	PagesPrimaryDomain       string               `json:"pages_primary_domain,omitempty" jsonschema:"Primary domain for Pages"`
}

UpdatePagesInput defines parameters for updating Pages settings.

Jump to

Keyboard shortcuts

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