Skip to content

Latest commit

 

History

History
82 lines (59 loc) · 2.12 KB

File metadata and controls

82 lines (59 loc) · 2.12 KB

Migrations (Bulk Imports)

References

Examples

Note

Like the project/group imports and exports, this is an asynchronous operation and you will need to refresh the state from the server to get an accurate migration status. See :ref:`project_import_export` in the import/export section for more details and examples.

Start a bulk import/migration of a group and wait for completion:

# Create the migration
configuration = {
    "url": "https://gitlab.example.com",
    "access_token": private_token,
}
entity = {
    "source_full_path": "source_group",
    "source_type": "group_entity",
    "destination_slug": "imported-group",
    "destination_namespace": "imported-namespace",
}
migration = gl.bulk_imports.create(
    {
        "configuration": configuration,
        "entities": [entity],
    }
)

# Wait for the 'finished' status
while migration.status != "finished":
    time.sleep(1)
    migration.refresh()

List all migrations:

gl.bulk_imports.list(get_all=True)

List the entities of all migrations:

gl.bulk_import_entities.list(get_all=True)

Get a single migration by ID:

migration = gl.bulk_imports.get(123)

List the entities of a single migration:

entities = migration.entities.list(get_all=True)

Get a single entity of a migration by ID:

entity = migration.entities.get(123)

Refresh the state of a migration or entity from the server:

migration.refresh()
entity.refresh()

print(migration.status)
print(entity.status)