Documentation
¶
Overview ¶
Package bulkimports implements MCP tools for GitLab Bulk Imports API.
markdown.go provides Markdown formatting functions for bulk import migration MCP tool output.
register.go wires bulkimports MCP tools to the MCP server.
Index ¶
- func FormatEntityFailuresMarkdown(out ListEntityFailuresOutput) string
- func FormatGetEntityMarkdown(e EntitySummary) string
- func FormatGetMarkdown(out MigrationSummary) string
- func FormatListEntitiesMarkdown(out ListEntitiesOutput) string
- func FormatListMarkdown(out ListOutput) string
- func FormatStartMigrationMarkdown(out MigrationOutput) string
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type CancelInput
- type EntityFailure
- type EntityInput
- type EntityStats
- type EntitySummary
- type GetEntityInput
- type GetInput
- type ListEntitiesInput
- type ListEntitiesOutput
- type ListEntityFailuresInput
- type ListEntityFailuresOutput
- type ListInput
- type ListOutput
- type MigrationOutput
- type MigrationSummary
- type StartMigrationInput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatEntityFailuresMarkdown ¶ added in v1.3.3
func FormatEntityFailuresMarkdown(out ListEntityFailuresOutput) string
FormatEntityFailuresMarkdown formats migration entity failures as markdown.
func FormatGetEntityMarkdown ¶ added in v1.3.3
func FormatGetEntityMarkdown(e EntitySummary) string
FormatGetEntityMarkdown formats a single bulk import entity as markdown.
func FormatGetMarkdown ¶ added in v1.3.3
func FormatGetMarkdown(out MigrationSummary) string
FormatGetMarkdown formats a single bulk import migration as markdown.
func FormatListEntitiesMarkdown ¶ added in v1.3.3
func FormatListEntitiesMarkdown(out ListEntitiesOutput) string
FormatListEntitiesMarkdown formats a list of bulk import entities as markdown.
func FormatListMarkdown ¶ added in v1.3.3
func FormatListMarkdown(out ListOutput) string
FormatListMarkdown formats a list of bulk import migrations as markdown.
func FormatStartMigrationMarkdown ¶
func FormatStartMigrationMarkdown(out MigrationOutput) string
FormatStartMigrationMarkdown formats a start migration result as markdown.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers all bulk import MCP tools.
Types ¶
type CancelInput ¶ added in v1.3.3
type CancelInput struct {
ID int64 `json:"id" jsonschema:"Bulk import ID,required"`
}
CancelInput defines parameters for canceling a bulk import migration.
type EntityFailure ¶ added in v1.3.3
type EntityFailure struct {
Relation string `json:"relation"`
ExceptionMessage string `json:"exception_message"`
ExceptionClass string `json:"exception_class"`
CorrelationIDValue string `json:"correlation_id_value"`
SourceURL string `json:"source_url"`
SourceTitle string `json:"source_title"`
Step string `json:"step"`
CreatedAt string `json:"created_at"`
PipelineClass string `json:"pipeline_class"`
PipelineStep string `json:"pipeline_step"`
}
EntityFailure describes a single failed import record for a migration entity.
type EntityInput ¶
type EntityInput struct {
SourceType string `json:"source_type" jsonschema:"Source type: group_entity or project_entity"`
SourceFullPath string `json:"source_full_path" jsonschema:"Full path of the source entity"`
DestinationSlug string `json:"destination_slug" jsonschema:"Slug for destination"`
DestinationNamespace string `json:"destination_namespace" jsonschema:"Destination namespace path"`
MigrateProjects *bool `json:"migrate_projects,omitempty" jsonschema:"Whether to migrate projects"`
MigrateMemberships *bool `json:"migrate_memberships,omitempty" jsonschema:"Whether to migrate memberships"`
}
EntityInput represents a single entity to migrate.
type EntityStats ¶ added in v1.3.3
type EntityStats struct {
LabelsSource int `json:"labels_source"`
LabelsFetched int `json:"labels_fetched"`
LabelsImported int `json:"labels_imported"`
MilestonesSource int `json:"milestones_source"`
MilestonesFetched int `json:"milestones_fetched"`
MilestonesImported int `json:"milestones_imported"`
}
EntityStats summarizes per-relation import counts for a migration entity.
type EntitySummary ¶ added in v1.3.3
type EntitySummary struct {
ID int64 `json:"id"`
BulkImportID int64 `json:"bulk_import_id"`
Status string `json:"status"`
EntityType string `json:"entity_type"`
SourceFullPath string `json:"source_full_path"`
DestinationFullPath string `json:"destination_full_path"`
DestinationName string `json:"destination_name"`
DestinationSlug string `json:"destination_slug"`
DestinationNamespace string `json:"destination_namespace"`
ParentID *int64 `json:"parent_id,omitempty"`
NamespaceID *int64 `json:"namespace_id,omitempty"`
ProjectID *int64 `json:"project_id,omitempty"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
MigrateProjects bool `json:"migrate_projects"`
MigrateMemberships bool `json:"migrate_memberships"`
HasFailures bool `json:"has_failures"`
Stats EntityStats `json:"stats"`
}
EntitySummary describes a single bulk import migration entity (group or project).
func GetEntity ¶ added in v1.3.3
func GetEntity(ctx context.Context, client *gitlabclient.Client, input GetEntityInput) (EntitySummary, error)
GetEntity retrieves a single migration entity by ID.
type GetEntityInput ¶ added in v1.3.3
type GetEntityInput struct {
BulkImportID int64 `json:"bulk_import_id" jsonschema:"Bulk import ID,required"`
EntityID int64 `json:"entity_id" jsonschema:"Entity ID within the bulk import,required"`
}
GetEntityInput defines parameters for retrieving a single bulk import entity.
type GetInput ¶ added in v1.3.3
type GetInput struct {
ID int64 `json:"id" jsonschema:"Bulk import ID,required"`
}
GetInput defines parameters for retrieving a single bulk import migration.
type ListEntitiesInput ¶ added in v1.3.3
type ListEntitiesInput struct {
BulkImportID int64 `json:"bulk_import_id,omitempty" jsonschema:"Bulk import ID. If omitted, returns entities across all imports."`
Status string `json:"status,omitempty" jsonschema:"Filter by entity status: created, started, finished, timeout, failed, canceled"`
toolutil.PaginationInput
}
ListEntitiesInput defines parameters for listing bulk import entities. When BulkImportID > 0, entities are scoped to that import; otherwise all entities visible to the caller are returned.
type ListEntitiesOutput ¶ added in v1.3.3
type ListEntitiesOutput struct {
toolutil.HintableOutput
Entities []EntitySummary `json:"entities"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListEntitiesOutput holds the paginated list of bulk import entities.
func ListEntities ¶ added in v1.3.3
func ListEntities(ctx context.Context, client *gitlabclient.Client, input ListEntitiesInput) (ListEntitiesOutput, error)
ListEntities returns bulk import entities, optionally scoped to a single import.
type ListEntityFailuresInput ¶ added in v1.3.3
type ListEntityFailuresInput struct {
BulkImportID int64 `json:"bulk_import_id" jsonschema:"Bulk import ID,required"`
EntityID int64 `json:"entity_id" jsonschema:"Entity ID within the bulk import,required"`
}
ListEntityFailuresInput defines parameters for listing failures of a migration entity.
type ListEntityFailuresOutput ¶ added in v1.3.3
type ListEntityFailuresOutput struct {
toolutil.HintableOutput
BulkImportID int64 `json:"bulk_import_id"`
EntityID int64 `json:"entity_id"`
Failures []EntityFailure `json:"failures"`
}
ListEntityFailuresOutput holds the failure records for a migration entity.
func ListEntityFailures ¶ added in v1.3.3
func ListEntityFailures(ctx context.Context, client *gitlabclient.Client, input ListEntityFailuresInput) (ListEntityFailuresOutput, error)
ListEntityFailures returns failed import records for a single migration entity.
type ListInput ¶ added in v1.3.3
type ListInput struct {
Status string `json:"status,omitempty" jsonschema:"Filter by status: created, started, finished, timeout, failed, canceled"`
toolutil.PaginationInput
}
ListInput defines parameters for listing bulk import migrations.
type ListOutput ¶ added in v1.3.3
type ListOutput struct {
toolutil.HintableOutput
Migrations []MigrationSummary `json:"migrations"`
Pagination toolutil.PaginationOutput `json:"pagination"`
}
ListOutput holds the paginated list of bulk import migrations.
func List ¶ added in v1.3.3
func List(ctx context.Context, client *gitlabclient.Client, input ListInput) (ListOutput, error)
List returns all bulk import migrations visible to the caller.
type MigrationOutput ¶
type MigrationOutput struct {
toolutil.HintableOutput
ID int64 `json:"id"`
Status string `json:"status"`
SourceType string `json:"source_type"`
SourceURL string `json:"source_url"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
HasFailures bool `json:"has_failures"`
}
MigrationOutput is the output for a bulk import migration.
func StartMigration ¶
func StartMigration(ctx context.Context, client *gitlabclient.Client, input StartMigrationInput) (MigrationOutput, error)
StartMigration starts a new bulk import migration.
type MigrationSummary ¶ added in v1.3.3
type MigrationSummary struct {
ID int64 `json:"id"`
Status string `json:"status"`
SourceType string `json:"source_type"`
SourceURL string `json:"source_url"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
HasFailures bool `json:"has_failures"`
}
MigrationSummary is a single bulk import migration entry returned by list/get.
func Cancel ¶ added in v1.3.3
func Cancel(ctx context.Context, client *gitlabclient.Client, input CancelInput) (MigrationSummary, error)
Cancel cancels an in-progress bulk import migration.
func Get ¶ added in v1.3.3
func Get(ctx context.Context, client *gitlabclient.Client, input GetInput) (MigrationSummary, error)
Get retrieves a single bulk import migration by ID.
type StartMigrationInput ¶
type StartMigrationInput struct {
URL string `json:"url" jsonschema:"Source GitLab instance URL,required"`
AccessToken string `json:"access_token" jsonschema:"Personal access token for source instance,required"`
Entities []EntityInput `json:"entities" jsonschema:"List of entities to migrate,required"`
}
StartMigrationInput is the input for starting a bulk import migration.