Change project templates contribution flow

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Problems

  1. The current process of adding/updating of project templates is complicated. It requires user to have a GDK installed and then to manually execute a list of commands. It's complicated and inefficient, which makes it difficult for the community to contribute.

  2. The list of project templates is not in sync with a built-in list of templates for new projects.

Proposal

Currently, we create vendor archives to distribute the built-in templates. They should match what user sees in project-template group but it's often not the case.

To fix that we can reverse the contribution flow. The SSOT will be the project-templates group. Projects listed there will be automatically archived and distributed with the GitLab package.

For automation, we can build a bot similar to renovate-bot. The bot will:

  1. Get a list of projects from the project-template group.
  2. Detect changes between the template from project-template group and the vendored archive.
  3. Open a MR to gitlab-org/gitlab with new changes.

The new flow

User wants to create a new template

  1. The user creates a public template and requests a review from a GitLab team member
  2. The GitLab team member approves it and forks the project into project-templates group
  3. The bot automatically detect the new project and opens a merge request to gitlab-org/gitlab.
  4. The GitLab team member verifies the merge request and merges it.

User wants to update the existing template

  1. The user opens a merge request for project from project-templates group
  2. The GitLab team member reviews, approves and merges it.
  3. The bot automatically detect that the project was changed and opens a merge request to gitlab-org/gitlab.
  4. The GitLab team member verifies the merge request and merges it.
Edited by 🤖 GitLab Bot 🤖