Введение
GitLab — это полнофункциональный Git-сервер с открытым исходным кодом, предоставляющий веб-интерфейс для управления репозиториями, пользователями, группами и совместной работой. По сравнению с GitWeb, GitLab сложнее в установке и обслуживании, но предлагает богатый функционал. Эта статья описывает установку GitLab и основы его использования.
Установка GitLab
GitLab — это веб-приложение на основе базы данных, что делает его установку сложнее, чем у GitWeb. Рекомендуемый способ — использование пакета Omnibus GitLab. Другие варианты включают:
- GitLab Helm chart для Kubernetes.
- Официальные Docker-образы.
- Установка из исходных файлов.
- Облачные провайдеры (AWS, Google Cloud, Azure, OpenShift, DigitalOcean).
Для установки Omnibus GitLab на Linux-сервере следуйте официальной документации. Например, для Ubuntu:
$ sudo apt-get update
$ sudo apt-get install -y curl openssh-server ca-certificates
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
$ sudo EXTERNAL_URL="http://gitserver" apt-get install gitlab-ee
После установки настройте внешний URL и запустите GitLab:
$ sudo gitlab-ctl reconfigure
Подробности установки доступны в документации GitLab Community Edition (CE).
Администрирование
Администрирование GitLab осуществляется через веб-интерфейс. После установки откройте браузер по адресу сервера (например, http://gitserver) и войдите как администратор. По умолчанию:
- Имя пользователя:
admin@local.host - Пароль:
5iveL!fe(смените при первом входе)
В веб-интерфейсе выберите «Административная зона» в меню справа для управления пользователями, группами и настройками.
Пользователи
Пользователи в GitLab — это учётные записи, связанные с людьми. Каждый пользователь имеет пространство имён, группирующее его проекты. Например, для пользователя Roman проект project будет доступен по адресу http://gitserver/roman/project.
Управление пользователями включает:
- Блокирование: Запрещает вход, сохраняя данные и коммиты.
- Удаление: Полностью удаляет пользователя, его проекты и группы.
Группы
Группы в GitLab объединяют проекты и определяют доступ пользователей. Каждая группа имеет пространство имён, например, http://gitserver/training/materials для проекта materials в группе training. Уровни доступа варьируются от «Гость» (только просмотр задач и чатов) до «Владелец» (полный контроль).
Проекты
Проект в GitLab соответствует одному Git-репозиторию и принадлежит пространству имён пользователя или группы. Уровень видимости проекта определяет доступ:
- Приватный: Доступ только для явно добавленных пользователей.
- Внутренний: Доступ для всех вошедших пользователей GitLab.
- Публичный: Доступ для всех, включая неаутентифицированных пользователей.
Для создания проекта нажмите «+» на панели инструментов, укажите имя, пространство имён и уровень видимости, затем нажмите «Создать проект».
Подключение репозитория
После создания проекта подключите его к локальному репозиторию. Например, для существующего репозитория:
$ git remote add gitlab https://gitserver/namespace/project.git
$ git push gitlab master
Для клонирования нового репозитория:
$ git clone https://gitserver/namespace/project.git
Проекты также доступны через SSH, например, git@gitserver:namespace/project.git.
Совместная работа
GitLab поддерживает несколько способов совместной работы:
- Прямой доступ: Добавьте пользователя в проект через раздел «Участники» с уровнем «Разработчик» или выше для прямой отправки коммитов.
- Запросы на слияние (Merge Requests): Пользователи с доступом создают ветку и открывают запрос на слияние. Пользователи без доступа могут форкнуть проект, внести изменения и отправить запрос на слияние из форка.
Запросы на слияние поддерживают построчное рецензирование кода и обсуждение изменений.
Хуки
GitLab поддерживает хуки на уровне проектов и системы. При событиях (например, push) GitLab отправляет HTTP POST-запросы с JSON-данными, что позволяет интегрировать его с CI/CD-серверами, чатами или инструментами деплоя.
Дополнительные возможности
GitLab включает вики-страницы, управление задачами, вехи и другие инструменты для совместной работы. Большинство операций выполняются через веб-интерфейс, минимизируя необходимость SSH-доступа.
Заключение
GitLab — мощный инструмент для управления Git-репозиториями с веб-интерфейсом, поддерживающий пользователей, группы, проекты и совместную работу. Установка через Omnibus GitLab упрощает процесс, а веб-интерфейс позволяет легко управлять настройками. Это идеальное решение для команд, ищущих полнофункциональный Git-сервер.
Отзывы