bulkimports

package
v2.5.2 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package bulkimports implements MCP tools for GitLab bulk import operations.

The package wraps the GitLab Bulk imports 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 bulk import tools.

func FormatEntityFailuresMarkdown

func FormatEntityFailuresMarkdown(out ListEntityFailuresOutput) string

FormatEntityFailuresMarkdown formats migration entity failures as markdown.

func FormatGetEntityMarkdown

func FormatGetEntityMarkdown(e EntitySummary) string

FormatGetEntityMarkdown formats a single bulk import entity as markdown.

func FormatGetMarkdown

func FormatGetMarkdown(out MigrationSummary) string

FormatGetMarkdown formats a single bulk import migration as markdown.

func FormatListEntitiesMarkdown

func FormatListEntitiesMarkdown(out ListEntitiesOutput) string

FormatListEntitiesMarkdown formats a list of bulk import entities as markdown.

func FormatListMarkdown

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.

Types

type CancelInput

type CancelInput struct {
	ID int64 `json:"id" jsonschema:"Bulk import ID,required"`
}

CancelInput defines parameters for canceling a bulk import migration.

type ConfigurationInput added in v2.3.0

type ConfigurationInput struct {
	URL         string `json:"url" jsonschema:"Source GitLab instance URL,required"`
	AccessToken string `json:"access_token" jsonschema:"Personal access token for source instance,required"`
}

ConfigurationInput mirrors gl.BulkImportStartMigrationConfiguration and carries the connection details for the external GitLab source instance.

type EntityFailure

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 mirrors gl.BulkImportStartMigrationEntity: a single entity (group or project) to migrate.

type EntityStatItem added in v2.3.0

type EntityStatItem struct {
	Source   int `json:"source"`
	Fetched  int `json:"fetched"`
	Imported int `json:"imported"`
}

EntityStatItem mirrors gl.BulkImportEntityStatItem: source/fetched/imported counts for a single relation type within a migration entity.

type EntityStats

type EntityStats struct {
	Labels     EntityStatItem `json:"labels"`
	Milestones EntityStatItem `json:"milestones"`
}

EntityStats mirrors gl.BulkImportEntityStats: per-relation import counts for a migration entity.

type EntitySummary

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"`
	Failures             []EntityFailure `json:"failures,omitempty"`
	Stats                EntityStats     `json:"stats"`
}

EntitySummary describes a single bulk import migration entity (group or project).

func GetEntity

func GetEntity(ctx context.Context, client *gitlabclient.Client, input GetEntityInput) (EntitySummary, error)

GetEntity retrieves a single migration entity by ID.

type GetEntityInput

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

type GetInput struct {
	ID int64 `json:"id" jsonschema:"Bulk import ID,required"`
}

GetInput defines parameters for retrieving a single bulk import migration.

type ListEntitiesInput

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"`
	OrderBy      string `json:"order_by,omitempty"        jsonschema:"Column to order results by (e.g. created_at)"`
	Sort         string `json:"sort,omitempty"            jsonschema:"Sort direction (asc, desc)"`
	toolutil.PaginationInput
	toolutil.KeysetPaginationInput
}

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. It mirrors gl.ListBulkImportsEntitiesOptions, including keyset pagination (order_by, sort, pagination, page_token) via the embedded gl.ListOptions.

type ListEntitiesOutput

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

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

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

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

func ListEntityFailures(ctx context.Context, client *gitlabclient.Client, input ListEntityFailuresInput) (ListEntityFailuresOutput, error)

ListEntityFailures returns failed import records for a single migration entity.

type ListInput

type ListInput struct {
	Status  string `json:"status,omitempty"   jsonschema:"Filter by status: created, started, finished, timeout, failed, canceled"`
	OrderBy string `json:"order_by,omitempty" jsonschema:"Column to order results by (e.g. created_at)"`
	Sort    string `json:"sort,omitempty"     jsonschema:"Sort direction (asc, desc)"`
	toolutil.PaginationInput
	toolutil.KeysetPaginationInput
}

ListInput defines parameters for listing bulk import migrations. It mirrors gl.ListBulkImportsOptions, including keyset pagination (order_by, sort, pagination, page_token) via the embedded gl.ListOptions.

type ListOutput

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

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

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

func Cancel(ctx context.Context, client *gitlabclient.Client, input CancelInput) (MigrationSummary, error)

Cancel cancels an in-progress bulk import migration.

func Get

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 {
	Configuration ConfigurationInput `json:"configuration" jsonschema:"Source instance connection details (url, access_token),required"`
	Entities      []EntityInput      `json:"entities" jsonschema:"List of entities to migrate,required"`
}

StartMigrationInput is the input for starting a bulk import migration. It mirrors gl.BulkImportStartMigrationOptions: a nested configuration object describing the source instance plus the list of entities to migrate.

Jump to

Keyboard shortcuts

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