Представлен релиз платформы для организации совместной работы с Git-репозиториями GitLab 7.14, которая по своим возможностям напоминает GitHub, но не привязана к конкретному сервису, распространяется в исходных текстах под свободной лицензией и позволяет развернуть web-сервис управления проектом на своём подконтрольном сервере. Одновременно доступен релиз развиваемого проектом сервера непрерывной интеграции GitLab CI 7.14, который можно использовать совместно с GitLab для автоматизации тестирования и постоянного контроля за качеством кодовой базы, в том числе обеспечивая проверку пересборкой для каждого вносимого изменения.

Код проекта написан на языке Ruby с использованием фреймворка Ruby on Rails и распространяется под свободной лицензией Expat (вариант лицензии MIT). Начиная с выпуска GitLab 6 кроме бесплатной Community-версии распространяется коммерческий продукт GitLab Enterprise Edition, который включает дополнительные возможности, полезные при развёртывания в крупных организациях. Изначально, GitLab Enterprise Edition развивался как проприетарный продукт с открытым для просмотра кодом, но c закрытым процессом разработки и отслеживания ошибок. В начале августа анонсированы намерения перейти к полностью открытой модели разработки, при которой любой желающий сможет участвовать в обсуждениях, обработке ошибок и работе над новыми выпусками.

Для хранения данных в GitLab поддерживается связка Redis с MySQL или PostgreSQL. GitLab наиболее востребован для организации командной разработки в корпоративных проектах, так как позволяет без привязки к облачному вендору развернуть инструментарий, похожий на Github Enterprise и Gitorious. Web-интерфейс GitLab во многом напоминает GitHub, но, тем не менее, не копирует его, а лишь повторяет наиболее удачные принципы. GitLab поддерживает создание отдельных проектов, отслеживание ошибок, обработку запросов на добавление кода (рабочий процесс основан на обработке merge-запросов), навигацию по веткам и тегам, контроль за изменениями, рецензирование кода, многоуровневое управление доступом, Wiki, обмен небольшими кусками кода, наглядный анализ различий между версиями кода, средства визуализации ветвления репозитория и многое другое.

Наиболее важные улучшения GitLab 7.14:

  • В состав включён новый экспериментальный http-сервер gitlab-git-http-server, позволяющий организовать эффективное выполнение длительных push/pull запросов с использованием протокола HTTPS (ранее, для занимающих длительное время операций push/pull рекомендовалось использовать в качестве транспорта SSH). Ранее применяемый http-сервер Unicorn не был рассчитан на обработку большого числа длительно выполняемых параллельных запросов, что приводило к обрывам соединений по таймауту. Новый сервер написан на языке Go (Unicorn был на Ruby) и работает в виде обособленного http-сервера, рассчитанного на эффективную обработку запросов от Git-клиентов. В выпуске GitLab 7.14 новый сервер пока отключен по умолчанию (для включения можно указать gitlab_git_http_server['enable'] = true) и запланирован для замены старого сервера в GitLab 8.0;
  • Улучшение системы подсветки синтаксиса с возможностью подключения в качестве движка для подсветки библиотеки Rouge, в которой реализована поддержка 72 языков программирования и разметки;
  • Обеспечен показ имени участника, отредактировавшего комментарий (например, при правке администратором проекта);
  • В GitLab EE улучшены средства управления группами в LDAP;
  • В GitLab CI обеспечена возможность определения переменных в файле .gitlab-ci.yml, которые будут переданы в систему сборки;
  • В GitLab CI представлен Build Triggers API, позволяющий инициировать пересборку определённой ветки или тега через обращение к API;
  • В web-интерфейсе GitLab CI добавлена возможность изменения настроек;
  • В GitLab CI улучшена поддержка пропуска сборок через привязку к коммиту тега "[ci skip]".
  • В экспериментальном режиме в пакет Omnibus интегрирован модуль Mattermost, предоставляющий средства для обмена сообщениями между разработчиками. Mattermost позиционируется как открытая альтернатива системе организации командных коммуникаций Slack и позволяет получать и отправлять сообщения/файлы, отслеживать их историю и получать уведомления на смартфоне или ПК.


Источник: http://www.opennet.ru/opennews/art.shtml?num=42840