---
icon: dot
---

```mermaid
stateDiagram-v2
    direction LR

    A: Create the GitLab Project
    B: Add Members
    B: Configure Repo

    state A {
      direction LR

      A1: Find Group
      A2: Choose Project's Name
      A3: Create Repository
      [*]-->A1
      A1-->A2
      A2-->A3
    }

    state B {
      B1: Add the Chapter's Gitlab Group
      B2: Add Main Developer(s) as Maintainers
      B3: Add Others as Developers
      [*]-->B1
      B1-->B2
      B2-->B3
    }

    [*]-->A
    A-->B
    B-->C
    C-->[*]
```

==- Choose a Gitlab group to create the project in

[View public Gitlab groups](https://git.tapsell.ir/explore/groups). Create the group if needed.

You may not have access to the group beforehand so please ask from the [Infrastructure team](https://infrastructure.pages.tapsell.ir/).

==- Choose a name for the project

- DO NOT use words like "frontend", "backend", "project", "repo".
- DO NOT use the Gitlab group's name.
- If you want to create a project for docs of the Gitlab group, Name the project: {group-name}.pages.tapsell.ir

==- Create the Gitlab project.

[Create new repository](https://git.tapsell.ir/projects/new).

!!! Choose the group! Don't create the group in your user's namespace
!!!

==- Add the chapter group

Go to project's members page and in the "Invite group" tab, add the chapter group (Frontend, Backend, etc.) with the role of "reporter" or "developer".

==- Setup the documentations.

[Setup docs with Retype](https://infrastructure.pages.tapsell.ir/gitlab-ci-templates/docs-retype/).

==- Add members

If there are any other member working on the project, add them in the members page.

==- Setup GitLab CI

[Gitlab CI templates](https://infrastructure.pages.tapsell.ir/gitlab-ci-templates/).

**Also enable shared runners:**

- Inside repo settings > CI/CD > Runners
- Shared runners > Turn on "Enable shared runners for this project"

==- Configure the Repository

- Disable direct push to the **master** branch. [How to](https://docs.gitlab.com/ee/user/project/protected_branches.html#configure-a-protected-branch)
- Enable shared runners. [How to](https://docs.gitlab.com/ee/ci/runners/runners_scope.html#enable-shared-runners-for-a-project)
- Create a CI. [Pipeline Creator](https://infrastructure.pages.tapsell.ir/pipelinecreator/home/)

===
