Change project templates contribution flow
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=384005) </details> <!--IssueSummary end--> ### 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](https://gitlab.com/gitlab-org/project-templates) is not in sync with [a built-in list of templates for new projects](https://gitlab.com/projects/new#create_from_template). ### Proposal Currently, we create vendor archives to distribute the built-in templates. They should match what user sees in [project-template group](https://gitlab.com/gitlab-org/project-templates) 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](https://gitlab.com/gitlab-org/frontend/renovate-gitlab-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.
issue