Что такое GitLab?

«Что такое GitLab?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

GitLab — это единая DevOps-платформа с открытым исходным кодом, предоставляющая полный набор инструментов для управления жизненным циклом ПО: от планирования и разработки до развертывания и мониторинга.

Ключевые возможности:

  • Управление исходным кодом: Git-репозитории с веб-интерфейсом, code review (Merge Requests), ветвлением.
  • CI/CD: Встроенный пайплайн для автоматической сборки, тестирования и деплоя. Конфигурация через файл .gitlab-ci.yml в репозитории.
  • Управление проектами: Трекер задач (Issues), доски Канбан, планирование (Milestones).
  • Артефакты: Встроенный Container Registry для Docker-образов, хранение билдов.
  • Безопасность: Статический анализ кода (SAST), динамическое тестирование (DAST), сканирование зависимостей.

Пример базового .gitlab-ci.yml:

stages:
  - build
  - test
  - deploy

build-job:
  stage: build
  script:
    - echo "Building the application..."
    - mvn compile

test-job:
  stage: test
  script:
    - echo "Running tests..."
    - mvn test

deploy-job:
  stage: deploy
  script:
    - echo "Deploying to staging..."
  only:
    - main # Запускать только для ветки main

Почему это важно: GitLab устраняет необходимость в отдельных инструментах (например, Jenkins, Jira, Nexus), обеспечивая сквозную трассируемость и автоматизацию в одном интерфейсе. Доступен как облачный сервис (GitLab.com) и как self-hosted решение для приватного развертывания.