.ai/principles/distilled/import-fundamentals.md
BulkImports::FileDownloadService and ImportExport::CommandLineUtil for examples).Import::Clients::HTTP for all HTTP calls to enforce network settings, DNS-rebinding protection, and response size validation.SAFE_MODEL_ATTRIBUTES or denylist them in IMPORT_EXPORT_CONFIG (excluded_attributes section) when AttributeConfigurationSpec flags them.import_export.yml and to ce_models_yml when ModelConfigurationSpec flags them.IMPORT_EXPORT_CONFIG exclusions or to RelationFactory::TOKEN_RESET_MODELS (for generated unique tokens) when ExportFileSpec flags them.bundle exec rake gitlab:import_export:bump_version to fix integration specs after every version bump.github, bitbucket, bitbucket_server) in every log entry.id, iid, object type) and error/status messages in log entries to aid debugging.Gitlab::Import::ImportFailureService where applicable to surface them in the UI.ParallelScheduling class for an example).Gitlab::Import::RefreshImportJidWorker and raise max_retries_after_interruption as needed to avoid termination by StuckProjectImportJobsWorker.worker_resource_boundary :memory to place them on a shard with a two-hour termination grace period.retries: 6 on Import Stage workers (including StageMethods) and Advance Stage workers (including Gitlab::Import::AdvanceStage) for resilience to system interruptions.Importable module, configuring the callback to skip when importing?, and setting the importing value on the object.spec/fixtures/lib/gitlab/import_export (both Project and Group fixtures).project.json or group.json) and the tree NDJSON folder; DO NOT edit files under tree manually unless strictly necessary.legacy-project-json-to-ndjson.sh and the Group NDJSON tree using legacy-group-json-to-ndjson.rb (tools from gitlab-org/cloud-connector-team/team-tools).For the full picture, see: