# GitLab

> Платформа для разработки на базе Git — репозитории, merge requests, CI/CD, реестры и задачи в одном продукте; доступна как облачный сервис и для установки на свои серверы.

Источник: https://llmdocs.ru/wiki/gitlab/ · обновлено 2026-11-09 · лицензия CC BY-SA 4.0

- **Разработчик**: GitLab Inc.
- **Авторы**: Дмитрий Запорожец, Валерий Сизов
- **Первый выпуск**: 2011
- **Язык**: Ruby (Rails), Go, Vue.js
- **Редакции**: Community Edition (MIT), Enterprise Edition (Premium, Ultimate)
- **Варианты**: GitLab.com, Self-Managed, Dedicated
- **Выпуски**: ежемесячно, 3-го четверга
- **Конкуренты**: GitHub, Bitbucket, Gitea/Forgejo
**GitLab** — платформа для совместной разработки программ на основе [Git](https://llmdocs.ru/wiki/git.md). В одном продукте собраны хостинг репозиториев, merge requests и код-ревью, задачи и доски, встроенный [CI/CD](https://llmdocs.ru/wiki/gitlab-ci.md), реестры контейнеров и пакетов, вики, управление окружениями и инструменты безопасности. Главное отличие от [GitHub](https://llmdocs.ru/wiki/github.md) — исторически сильная версия для установки на собственные серверы, благодаря чему GitLab широко распространён в компаниях, которым важно держать код внутри своей инфраструктуры.

## История

Проект начали в 2011 году украинские программисты Дмитрий Запорожец и Валерий Сизов как открытую альтернативу GitHub для установки у себя.[2] В 2014 году была основана компания GitLab Inc. под руководством Сида Сейбрандея. В 2015-м CI-система GitLab CI была встроена в основной продукт — одна из ранних платформ «всё в одном». В 2018 году, после покупки GitHub компанией Microsoft, на GitLab переехали сотни тысяч репозиториев. В 2021 году компания вышла на биржу NASDAQ. GitLab известен полностью удалённой работой и публичным справочником компании (handbook).

## Редакции и варианты

| Вариант | Где работает | Кому |
|---|---|---|
| **GitLab.com** | облако GitLab Inc. | командам без своей инфраструктуры |
| **Self-Managed** | ваши серверы или облако | компаниям с требованиями к размещению данных |
| **Dedicated** | выделенный экземпляр в облаке | крупным организациям |

Код распространяется в двух редакциях: **Community Edition** под лицензией MIT и **Enterprise Edition** с платными уровнями Premium и Ultimate (расширенное ревью, безопасность, портфельное планирование).[6] Бесплатный уровень включает репозитории, merge requests, CI/CD и реестры.

## Основные возможности

- **Группы и проекты** — иерархия групп и подгрупп с наследованием прав и настроек; удобно для большой организации.
- **Merge requests** — аналог pull request на GitHub: обсуждение по строкам, обязательные одобрения, правила защиты веток, слияние после успешного конвейера (см. [Pull request / Merge request](https://llmdocs.ru/wiki/pull-request.md)).[4]
- **Задачи** (issues) — метки, вехи (milestones), доски Kanban, эпики; связь коммитов и MR с задачами по ссылкам `#123`.
- **CI/CD** — конвейеры описываются в `.gitlab-ci.yml`, задачи выполняет GitLab Runner на своих машинах, в Docker или [Kubernetes](https://llmdocs.ru/wiki/kubernetes.md).
- **Реестры** — встроенный [Container registry](https://llmdocs.ru/wiki/container-registry.md) (`registry.gitlab.com`), реестры пакетов (npm, PyPI, Maven, Go), хранилище [Helm](https://llmdocs.ru/wiki/helm.md)-чартов и состояний [Terraform](https://llmdocs.ru/wiki/terraform-opentofu.md).[5]
- **Окружения и деплой** — история выкладок по окружениям, ревью-окружения для каждой ветки, интеграция с Kubernetes через агента.
- **Безопасность** (часть функций — в Ultimate) — SAST, сканирование зависимостей и контейнеров, поиск секретов, отчёты прямо в MR.

## Установка на свой сервер

Самый распространённый способ — пакет **Omnibus**, включающий все компоненты (Rails-приложение, Gitaly, PostgreSQL, Redis, nginx, Prometheus):[3]

```bash
# Ubuntu / Debian
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ee
sudo gitlab-ctl reconfigure
sudo gitlab-ctl status
```

Альтернативы — образ Docker, Helm-чарт или оператор для Kubernetes. Для небольшой команды нужен сервер минимум с 4 ядрами и 8 ГБ памяти; конфигурация хранится в `/etc/gitlab/gitlab.rb`, резервная копия создаётся командой `gitlab-backup create` (секреты из `/etc/gitlab` копируются отдельно). Обновлять стоит регулярно и по рекомендуемому пути версий — GitLab выходит каждый месяц.

## GitLab и GitHub

| | GitLab | GitHub |
|---|---|---|
| Своя установка | CE бесплатно, полноценная | GitHub Enterprise Server, платно |
| CI/CD | встроен с 2015, единый `.gitlab-ci.yml` | GitHub Actions, большой маркетплейс |
| Организация | вложенные группы | организации и команды |
| Сообщество open source | меньше | крупнейшее |
| Терминология | merge request | pull request |

Для лёгкой собственной установки без CI-нагрузки также используют **Gitea** и её форк **Forgejo** — они требуют в десятки раз меньше ресурсов.

## Практика

```bash
git remote add origin git@gitlab.com:group/project.git
git push -u origin main

# создать MR при пуше через push options
git push -o merge_request.create -o merge_request.target=main
```

Командная утилита `glab` позволяет работать с MR, задачами и конвейерами из терминала, аналогично `gh` для GitHub.

## См. также

- [GitLab CI](https://llmdocs.ru/wiki/gitlab-ci.md)
- [GitHub](https://llmdocs.ru/wiki/github.md)
- [Git](https://llmdocs.ru/wiki/git.md)
- [Pull request / Merge request](https://llmdocs.ru/wiki/pull-request.md)

## Источники

1. [GitLab Docs](https://docs.gitlab.com/)
2. [GitLab — History](https://handbook.gitlab.com/handbook/company/history/)
3. [GitLab — Installation methods](https://docs.gitlab.com/install/install_methods/)
4. [GitLab — Merge requests](https://docs.gitlab.com/user/project/merge_requests/)
5. [GitLab — Container registry](https://docs.gitlab.com/user/packages/container_registry/)
6. [GitLab — Feature comparison (pricing)](https://about.gitlab.com/pricing/feature-comparison/)
