# Аккаунты и проекты {#accounts-and-projects}

Некоторые возможности Tuist требуют сервера, который обеспечивает сохранение данных и может взаимодействовать с другими сервисами. Для взаимодействия с сервером вам нужен аккаунт и проект, который вы подключите к своему локальному проекту.

## Аккаунты {#accounts}

Чтобы использовать сервер, вам понадобится аккаунт. Существует два типа аккаунтов:

- **Личный аккаунт:** Такие аккаунты создаются автоматически при регистрации и идентифицируются по хендлу, который получается либо от провайдера идентификации (например, GitHub), либо из первой части адреса электронной почты.
- **Организационный аккаунт:** Такие аккаунты создаются вручную и идентифицируются по хендлу, который определяет разработчик. Организации позволяют приглашать других участников для совместной работы над проектами.

Если вы знакомы с [GitHub](https://github.com), концепция похожа: у вас могут быть личные и организационные аккаунты, и они идентифицируются по *хендлу*, который используется при формировании URL-адресов.

> [!NOTE]
> **Сначала CLI**
>
> Большинство операций по управлению аккаунтами и проектами выполняется через CLI. Мы работаем над веб-интерфейсом, который упростит управление аккаунтами и проектами.


Вы можете управлять организацией с помощью подкоманд раздела <.localized_link href="/cli/organization">`tuist organization`</.localized_link>. Чтобы создать новый организационный аккаунт, выполните:
```bash
tuist organization create {account-handle}
```

### Членство в организации {#organization-membership}

Пользователи могут стать членами организации по приглашению, через автоматическую регистрацию по единому входу или через <.localized_link href="/guides/integrations/authentication/scim">предоставление доступа по системе управления идентификацией между доменами (SCIM)</.localized_link>.

Аутентификация через провайдера идентификации организации сама по себе не предоставляет членство. <.localized_link href="/guides/integrations/authentication/sso#choose-an-enrollment-policy">Политика регистрации по единому входу</.localized_link> организации определяет, нужно ли пользователю из доверенного домена приглашение или он может присоединиться автоматически.

Администраторы могут пригласить участника из панели управления или с помощью <.localized_link href="/cli/organization/invite">`tuist organization invite`</.localized_link>. Передайте `--role admin` или `--role viewer`, чтобы назначить приглашаемому роль, отличную от `user`, когда он примет приглашение.

### Роли {#roles}

Каждый участник организации имеет одну из трех ролей:

| Роль | Что она дает |
| --- | --- |
| **Администратор** | Все, что может делать пользователь, плюс управление организацией: участниками и приглашениями, проектами, биллингом, токенами, вебхуками и настройками. |
| **Пользователь** | Чтение и действия с работой организации: запуск сборок и тестов, запись в кэш, создание и удаление превью, а также изменение состояния тест-кейса. |
| **Наблюдатель** | Чтение работы организации без внесения изменений. Панели управления, сборки, прогоны тестов, нестабильные и помещенные в карантин тесты, превью, бандлы и активность раннеров доступны для чтения. Подключение интерактивной оболочки или VNC-сессии к раннеру недоступно, так как это выполняет команды на машине. |

Выберите роль при приглашении пользователя и измените ее позже в разделе **Участники** панели управления. Роль, установленная таким образом, никогда не перезаписывается при последующем входе.

## Проекты {#projects}

Ваши проекты должны быть интегрированы с вашим аккаунтом через удаленный проект. Продолжая сравнение с GitHub, это похоже на наличие локального и удаленного репозитория, куда вы отправляете свои изменения. Вы можете использовать <.localized_link href="/cli/project">`tuist project`</.localized_link> для создания и управления проектами.

Проекты идентифицируются полным хендлом, который является результатом объединения хендла организации и хендла проекта. Например, если у вас есть организация с хендлом `tuist` и проект с хендлом `tuist`, полный хендл будет `tuist/tuist`.

Связь между локальным и удаленным проектом осуществляется через файл конфигурации. Если его нет, создайте его по пути `Tuist.swift` и добавьте следующее содержимое:

```swift
let tuist = Tuist(fullHandle: "{account-handle}/{project-handle}") // e.g. tuist/tuist
```

> [!WARNING]
> **Возможности, доступные только для проектов Tuist**
>
> Обратите внимание, что некоторые возможности, такие как <.localized_link href="/guides/features/cache/module-cache">кэширование модулей</.localized_link>, требуют проекта, управляемого Tuist. Если вы не используете Tuist для управления своим проектом, вы не сможете использовать эти возможности.


URL-адрес вашего проекта формируется с использованием полного хендла. Например, панель управления Tuist, которая является публичной, доступна по адресу [tuist.dev/tuist/tuist](https://tuist.dev/tuist/tuist), где `tuist/tuist` — полный хендл проекта.
