divekit distribute recover-project-checkpoint
Repair one durable project mapping checkpoint after a crash
Create and configure individualized repositories in target systems (e.g. GitLab).
This command reads a distribution configuration and creates personalized repositories for each member. It handles project creation, content individualization, and member assignment automatically.
WHAT HAPPENS:
MEMBERS INPUT: –members-file always wins, even when stdin is piped. Without it, the members configured in the distribution are reused. Only when neither is available are member names read from piped stdin or, on a terminal, from an interactive prompt.
divekit distribute [flags]
# Distribute with interactive distribution selection
divekit distribute
# Distribute a specific distribution
divekit distribute -d ST2M4
# Distribute with members from a file
divekit distribute -d ST2M4 --members-file members.txt
# Create 100 repositories
divekit distribute -d ST2M4 --count 100
# Start fresh (reset remotes.json and individuals.json)
divekit distribute -d ST2M4 --fresh
# Add new members to an existing distribution
divekit distribute -d ST2M4 --add --members-file new-members.txt
# Create repositories after adding members with 'divekit members add'
divekit distribute -d ST2M4 --add
# Replace configured members with a new file
divekit distribute -d ST2M4 --members-file replacement.txt --replace-members
# Control concurrency for large distributions
divekit distribute -d ST2M4 --workers 5 --rate-limit 10
# Dry-run to preview distribution
divekit distribute -d ST2M4 --dry-run
# Force delete existing projects (use with caution!)
divekit distribute -d ST2M4 --dangerously-delete-group-projects
-a, --add Add missing configured members to an existing distribution
--count int Generate this many synthetic groups instead of reading member names (on GitLab, implies --no-member-assignment)
--dangerously-delete-group-projects [DANGEROUS] Force deletion of existing projects in target groups; non-interactive will not prompt
-d, --distribution string Distribution name
-n, --dry-run Preview changes without creating projects (alias for --provider simulated)
-f, --fresh Delete remotes.json/individuals.json before distributing
--languages string Comma-separated language packs (overrides config)
--members-file string Path to a file with member names (one per line)
-m, --message string Commit message
--no-member-assignment Create repositories without assigning members
-p, --provider string Provider to use: gitlab (default), local (filesystem), simulated (dry-run)
--rate-limit float Maximum tasks per second (0 = unlimited)
-r, --remote string Remote repository URL (e.g. GitLab instance)
--replace-members Replace existing configured members instead of merging new input
--task-timeout duration Maximum time per task (0 = use preset)
-t, --token string GitLab token or token file path (file:///...)
--warn-unresolved-tokens string Warn about unresolved tokens: auto|true|false (auto follows the legacy originRepositoryConfig.json warning setting) (default "auto")
-w, --workers int Number of concurrent workers (0 = use preset)
-l, --loglevel string log level (debug, info, warn, error, fatal) (default "info")
--no-index skip project index update
--non-interactive run in non-interactive mode (fails if interactive input is required)
-y, --yes assume yes/default for all prompts (non-interactive with automatic defaults)
Repair one durable project mapping checkpoint after a crash