bulkimports

package
v1.3.3 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package bulkimports implements MCP tools for GitLab Bulk Imports API.

Index

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.

Jump to

Keyboard shortcuts

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