criteo / command-launcher

A command launcher 🚀 made with ❤️
https://criteo.github.io/command-launcher
MIT License
36 stars 8 forks source link

Support multiple remote registries #105

Closed bhou closed 1 year ago

bhou commented 1 year ago

Today we only have one remote registry defined in command_repository_base_url configuration. The command launcher will synchronize the local repositories with the remote registry. We should allow multiple remote registries to support the following scenarios:

  1. Packages and commands should be visible only to a specific audience. For example, team A provides some commands of its own.
  2. Experimental and internal commands. This will remove the current experimental and internal toggle configuration items.

Each remote repository should have its local repository, and be synchronized with their sync policy.

This feature must properly handle the command name conflicts as well. There are two kinds of conflicts:

  1. two group commands with the same name in the same remote repository
  2. two group commands with the same name in the different remote repository

These group commands should be renamed with suffix numbers, ex. group1, group2 ...

Another alias command should be developed to rename the group command to a different name.

Related to #71 #102

bhou commented 1 year ago

A new command is introduced in v1.8.0 to add additional remote registries:

cola remote add [registry name] [registry base URL]

Each registry name must be unique, default is reserved for the registry defined in config command_repository_base_url.

Another command cola remote list can list all remote registries.

command launcher with check updates for each remote at the end of each command