Представлен (https://about.gitlab.com/2015/09/22/gitlab-8-0-released/) релиз платформы для организации совместной работы с Git-репозиториями GitLab 8.0 (http://www.gitlab.com), которая по своим возможностям напоминает GitHub, но не привязана к конкретному сервису, распространяется в исходных текстах под свободной лицензией и позволяет развернуть web-сервис управления проектом на своём подконтрольном сервере. Код проекта написан на языке Ruby с использованием фреймворка Ruby on Rails и распространяется (https://gitlab.com/groups/gitlab-org) под свободной лицензией Expat (вариант лицензии MIT). Для хранения данных в GitLab поддерживается связка Redis с MySQL или PostgreSQL.
GitLab наиболее востребован для организации командной разработки в корпоративных проектах, так как позволяет без привязки к облачному вендору развернуть инструментарий, похожий на Github Enterprise и Gitorious. Web-интерфейс GitLab во многом напоминает (http://demo.gitlabhq.com/) GitHub, но, тем не менее, не копирует его, а лишь повторяет наиболее удачные принципы. GitLab поддерживает (http://blog.gitlab.com/about-the-gitlab-project/) создание отдельных проектов, отслеживание ошибок, обработку запросов на добавление кода (рабочий процесс основан на обработке merge-запросов), навигацию по веткам и тегам, контроль за изменениями, рецензирование кода, многоуровневое управление доступом, Wiki, обмен небольшими кусками кода, наглядный анализ различий между версиями кода, средства визуализации ветвления репозитория и многое другое.
Наиболее важные улучшения GitLab 8.0:
- Полностью переработано оформление web-интерфейса. Кроме нового дизайна, значительной переработке подвергся практически каждый элемент интерфейса, задействованы новые шрифты, оптимизировано размещение текста в формах, приглушены вторичные элементы и выделены наиболее важные;
<center><a href="https://about.gitlab.com/images/8_0/dashboard.png">&... src="https://www.opennet.ru/opennews/pics_base/0_1443121283.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
<center><a href="https://about.gitlab.com/images/8_0/project.png"><... src="https://www.opennet.ru/opennews/pics_base/0_1443123566.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- Выполнено слияние GitLab с сервером непрерывной интеграции GitLab CI (https://gitlab.com/gitlab-org/gitlab-ci), который ранее развивался как отдельный продукт. GitLab CI позволяет автоматизировать процесс тестирования и обеспечить постоянный контроль за качеством кодовой базы, в том числе осуществляя проверку пересборкой для каждого вносимого изменения. Тестирование, развёртывание и пакетирование теперь может производиться непосредственно из GitLab (в панель добавлен раздел "Continuous Integration"), без обращения к дополнительному приложению. Из недостатков интеграции GitLab CI в GitLab отмечается (https://gitlab.com/gitlab-org/gitlab-ce/issues/2164#note_190...) небольшое увеличение потребление памяти и времени выполнения некоторых операций;
<center><a href="https://about.gitlab.com/images/8_0/ci_dash.png"><... src="https://www.opennet.ru/opennews/pics_base/0_1443123199.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- Почти на 50% сокращено потребление дискового пространства за счёт удаления сателлитов (локальных копий репозиториев), используемых для обработки запросов на слияние;
- Значительно ускорено выполнение запросов на слияние и увеличена надёжность выполнения операций. Вместо использования копии репозитория (сателлита), операции производятся напрямую в основном репозитории;
- Возможность отправки комментария к сообщению о проблеме или запрос на слияние путем отправки email в ответ на пришедшее по электронной почте уведомление;
- Возможность отображения ссылок на сообщения о проблемах или запросы на слияние в web-интерфейсе Gmail (для показа кнопок используется One-Click Action (https://developers.google.com/gmail/markup/actions/actions-o...));
<center><a href="https://about.gitlab.com/images/8_0/gmail.png"><img src="https://www.opennet.ru/opennews/pics_base/0_1443124476.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- Добавлена возможность загрузка файлов в репозиторий через интерфейс GitLab;
<center><a href="https://about.gitlab.com/images/8_0/upload.png"><img src="https://www.opennet.ru/opennews/pics_base/0_1443124570.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- Осуществлён переход по умолчанию на новый http-сервер gitlab-git-http-server (https://gitlab.com/gitlab-org/gitlab-git-http-server), позволяющий организовать эффективное выполнение длительных push/pull запросов с использованием протокола HTTPS (до сих пор для занимающих длительное время операций push/pull рекомендовалось использовать в качестве транспорта SSH). Ранее применяемый http-сервер Unicorn (http://unicorn.bogomips.org/) не был рассчитан на обработку большого числа длительно выполняемых параллельных запросов, что приводило к обрывам соединений по таймауту. Новый сервер написан на языке Go (Unicorn был на Ruby) и работает в виде обособленного http-сервера, рассчитанного на эффективную обработку запросов от Git-клиентов;
- Интегрирован бета-выпуск модуля Mattermost (http://www.mattermost.org/), предоставляющего средства для обмена сообщениями между разработчиками. Mattermost позиционируется как открытая альтернатива системе организации командных коммуникаций Slack (https://ru.wikipedia.org/wiki/Slack) и позволяет получать и отправлять сообщения, файлы и изображения, отслеживать их историю и получать уведомления на смартфоне или ПК;
<center><a href="https://about.gitlab.com/images/8_0/mattermost.png">... src="https://www.opennet.ru/opennews/pics_base/0_1443124741.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- Для защиты от MITM-атак (man-in-the-middle) для Web-обработчиков (Web Hooks (http://doc.gitlab.com/ce/web_hooks/web_hooks.html)) по умолчанию включен режим SSL-верификации;
<center><a href="https://about.gitlab.com/images/8_0/webhooks.png">&l... src="https://www.opennet.ru/opennews/pics_base/0_1443124980.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- Профили всех пользователей и групп отныне открыты для публичного просмотра. Для закрытых и внутренних проектов можно запретить показ профиля;
- На основной экран проекта добавлена кнопка для быстрой настройки уведомлений.
<center><a href="https://about.gitlab.com/images/8_0/notifications.png"&... src="https://www.opennet.ru/opennews/pics_base/0_1443125085.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
URL: https://about.gitlab.com/2015/09/22/gitlab-8-0-released/
Новость: https://www.opennet.ru/opennews/art.shtml?num=43035