Repository Groups¶
The dm CLI supports organizing repositories into groups for easier management.
This allows you to clone and configure multiple related repositories with a single command.
Available Groups¶
To see all available repository groups:
dm repo clone --list-groups
Example output:
Available repository groups:
django: django, django-mongodb-backend, django-mongodb-extensions, libmongocrypt, mongo-python-driver
langchain: langchain-mongodb, pymongo-search-utils
mongo-arrow: mongo-arrow
Cloning Repository Groups¶
To clone all repositories in a group:
dm repo clone --group django
To clone and install packages:
dm repo clone --group django --install
Setting Up Remotes¶
After cloning, you can setup git remotes for all repositories in a group:
dm repo remote setup --group django
This will:
Add configured remotes (origin and upstream) for each repository
Fetch from all remotes
To list available groups:
dm repo remote setup --list-groups
Setting Default Branches¶
To set the default branch for all repositories in a group:
dm repo set-default --group django
Using with Just¶
The justfile has been simplified to use these dm group commands. You can now run:
just git-clone django
just git-remote django
Which internally calls:
dm repo clone --group django --install
dm repo remote setup --group django
dm repo set-default --group django
Configuring Groups¶
Repository groups are configured in pyproject.toml under:
[tool.django-mongodb-cli.groups]
django = [
"django",
"django-mongodb-backend",
"django-mongodb-extensions",
"libmongocrypt",
"mongo-python-driver",
]
Remote configurations are defined under:
[tool.django-mongodb-cli.remotes.django.django-mongodb-backend]
origin = "git+ssh://git@github.com/aclark4life/django-mongodb-backend"
upstream = "git+ssh://git@github.com/mongodb/django-mongodb-backend"
Benefits¶
Simplified workflow: Clone and configure multiple related repositories with one command
Consistent setup: Ensures all team members have the same remote configurations
Less error-prone: Reduces manual commands and potential mistakes
Better organization: Logically groups related repositories together