---
icon: dot
---

```mermaid
stateDiagram-v2
    direction LR

    A: Create the GitLab Project
    B: Add Members

    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-->[*]
```

==- 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
!!!

### Choosing visibility

- Choose "Internal" if the group is private. Anyone in the group, will be able to see the repository and request access.
- Choose "Private" only if no one should be able to view the code (Not recommended).
- Don't choose public if the group is public (Like user)

==- 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"

===
