Представлен релиз платформы для организации совместной работы с Git-репозиториями GitLab 8.0, которая по своим возможностям напоминает GitHub, но не привязана к конкретному сервису, распространяется в исходных текстах под свободной лицензией и позволяет развернуть web-сервис управления проектом на своём подконтрольном сервере. Код проекта написан на языке Ruby с использованием фреймворка Ruby on Rails и распространяется под свободной лицензией Expat (вариант лицензии MIT). Для хранения данных в GitLab поддерживается связка Redis с MySQL или PostgreSQL.
GitLab наиболее востребован для организации командной разработки в корпоративных проектах, так как позволяет без привязки к облачному вендору развернуть инструментарий, похожий на Github Enterprise и Gitorious. Web-интерфейс GitLab во многом напоминает GitHub, но, тем не менее, не копирует его, а лишь повторяет наиболее удачные принципы. GitLab поддерживает создание отдельных проектов, отслеживание ошибок, обработку запросов на добавление кода (рабочий процесс основан на обработке merge-запросов), навигацию по веткам и тегам, контроль за изменениями, рецензирование кода, многоуровневое управление доступом, Wiki, обмен небольшими кусками кода, наглядный анализ различий между версиями кода, средства визуализации ветвления репозитория и многое другое.
Наиболее важные улучшения GitLab 8.0:
- Полностью переработано оформление web-интерфейса. Кроме нового дизайна, значительной переработке подвергся практически каждый элемент интерфейса, задействованы новые шрифты, оптимизировано размещение текста в формах, приглушены вторичные элементы и выделены наиболее важные;
- Выполнено слияние GitLab с сервером непрерывной интеграции GitLab CI, который ранее развивался как отдельный продукт. GitLab CI позволяет автоматизировать процесс тестирования и обеспечить постоянный контроль за качеством кодовой базы, в том числе осуществляя проверку пересборкой для каждого вносимого изменения. Тестирование, развёртывание и пакетирование теперь может производиться непосредственно из GitLab (в панель добавлен раздел "Continuous Integration"), без обращения к дополнительному приложению. Из недостатков интеграции GitLab CI в GitLab отмечается небольшое увеличение потребление памяти и времени выполнения некоторых операций;
- Почти на 50% сокращено потребление дискового пространства за счёт удаления сателлитов (локальных копий репозиториев), используемых для обработки запросов на слияние;
- Значительно ускорено выполнение запросов на слияние и увеличена надёжность выполнения операций. Вместо использования копии репозитория (сателлита), операции теперь производятся напрямую в основном репозитории;
- Возможность отправки комментария к сообщению о проблеме или запрос на слияние путем отправки email в ответ на пришедшее по электронной почте уведомление;
- Возможность отображения ссылок на сообщения о проблемах или запросы на слияние в web-интерфейсе Gmail (для показа кнопок используется One-Click Action);
- Добавлена возможность загрузки файлов в репозиторий через интерфейс GitLab;
- Осуществлён переход по умолчанию на новый http-сервер gitlab-git-http-server, позволяющий организовать эффективное выполнение длительных push/pull запросов с использованием протокола HTTPS (до сих пор для занимающих длительное время операций push/pull рекомендовалось использовать в качестве транспорта SSH). Ранее применяемый http-сервер Unicorn не был рассчитан на обработку большого числа длительно выполняемых параллельных запросов, что приводило к обрывам соединений по таймауту. Новый сервер написан на языке Go (Unicorn был на Ruby) и работает в виде обособленного http-сервера, рассчитанного на эффективную обработку запросов от Git-клиентов;
- Интегрирован бета-выпуск модуля Mattermost, предоставляющего средства для обмена сообщениями между разработчиками. Mattermost позиционируется как открытая альтернатива системе организации командных коммуникаций Slack и позволяет получать и отправлять сообщения, файлы и изображения, отслеживать их историю и получать уведомления на смартфоне или ПК;
- Для защиты от MITM-атак (man-in-the-middle) для Web-обработчиков (Web Hooks) по умолчанию включен режим SSL-верификации;
- Профили всех пользователей и групп отныне открыты для публичного просмотра. Для закрытых и внутренних проектов можно запретить показ профиля;
- В основной экран проекта добавлена кнопка для быстрой настройки уведомлений.
|