Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fork a Collaboration Manager model #1346

Open
MoritzWeber0 opened this issue Feb 16, 2024 · 0 comments
Open

Fork a Collaboration Manager model #1346

MoritzWeber0 opened this issue Feb 16, 2024 · 0 comments

Comments

@MoritzWeber0
Copy link
Member

MoritzWeber0 commented Feb 16, 2024

On the model card in the Collaboration, a new button "Fork model" should be added. The "Fork model" feature shall be available to project admins only.

With the current implementation, all of these steps are already possible and documented in our documentation for Capella models, but could be automated:

  1. Import a Capella Model from a TeamForCapella Server into your Persistent Workspace: https://dsd-dbs.github.io/capella-collab-manager/user/tools/capella/teamforcapella/import/import-from-t4c/
  2. Full Setup & Integration of a TeamForCapella Project: https://dsd-dbs.github.io/capella-collab-manager/admin/teamforcapella/full-setup/full-setup/ (skip the step "Create new project, reuse the existing project and export the previously imported model instead of a new model)

The fork consists of different steps and the user should be guided through it. It is comparable to the model creation process and components should be reused where possible:

  1. Choose a new name for the model. Tool, tool version and tool nature are derived from the original model. The new model is created with the provided name.
  2. If the original model has a Git source:
    1. The user has to link a new repository to the new forked model. As a quick alternative, the user can choose a different branch from the original Git repository.
    2. The Collaboration Manager will start a job to clone the existing repository and push the content to the new repository. The user will see the logs and has to wait until it is finished.
  3. If the original model has a TeamForCapella source:
    1. The user has to create a new TeamForCapella repository, which will be linked to the new forked model.
    2. The Collaboration Manager will spawn a new job. It will export the model from the original TeamForCapella repository to a temporary location. The user will see the logs and has to wait until it is finished.
    3. The Collaboration Manager will spawn another new job. It will export the model from the temporary location to the TeamForCapella repository.
  4. If the original model has a Git AND TeamForCapella source:
    1. Set up a new backup pipeline for the new model.

Most of the feature can be implemented in the frontend with our current set of APIs. However, since there are some individual jobs (import model from TeamForCapella, export back to TeamForCapella), this depends on #722, which will enable general CI support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

1 participant