Skip to content

GitLab

Назначение

GitLab в организации используется как центральная платформа для управления исходным кодом, взаимодействия команд а так же хранения общих зависимостей (в т.ч. npm-пакетов). Система объединяет проекты из разных направлений: frontend и backend

Структура проектов

Все репозитории сгруппированы по namespace в соответствии с направлением разработки. Это обеспечивает логичную навигацию и разграничение доступа:

Основные namespaces:

  • frontend/common/utils — вспомогательные утилиты и общие зависимости Nuxt-приложений

    • nuxt-shared - модуль с общими утилитами для фронтендов на Nuxt 3
  • frontend/common/layers — переиспользуемые layout/слои

    • layer-common - слой с общими компонентами для фронтендов на Nuxt 3
  • frontend — фронтенды приложений

    • nuxt-admin-dashboard - админ-панель
    • nuxt-base - основной сайт компании (интернет-магазин)
    • nuxt-partners - кабинет партнёров
    • nuxt-users - кабинет пользователей
  • backend — серверная часть

    • fastapi-backend - серверное API на FastAPI
    • octopus
    • 1c - сервер 1С
  • shared-packages — NPM-репозиторий с общими npm-пакетами для переиспользования между фронтендами

Каждая группа включает в себя только те проекты, которые относятся к соответствующей функциональности, что упрощает навигацию и контроль доступа

Управление пользователями и доступами

Роли

Для каждого проекта используется гибкая система ролей:

РольВозможности
GuestЧтение публичной информации
ReporterДоступ к коду и пайплайнам, без коммитов
DeveloperРабота с кодом, ветками, CI/CD
MaintainerПолный доступ к проекту, настройкам, пайплайну
OwnerТолько в пределах личных namespace или root

Принципы

  • Управление доступами централизовано через суперадмина
  • Доступ к проектам ограничен строго необходимыми ролями
  • Все внешние участники подключаются как Reporter или Developer, без права администрирования

Внутренний ресурс компании