Мы с радостью представляем вам новую версию GitLab со множеством нововведений и улучшений! В данном релизе мы улучшили автоматизацию релизов, вывели в общий доступ ранее платную функциональность, ускорили исправление уязвимостей безопасности и многое другое.
Больше уверенности при развертывании
Выпуск новой функциональности всегда сопряжен с волнением, ведь даже при самом строгом тестировании присутствует риск непредвиденных осложнений. Наша новая фича инкрементного развертывания (Incremental Rollouts) позволяет проводить развертывание кода только для определенного подмножества пользователей. Теперь вместо того, чтобы выкатывать обновления сразу для всех пользователей, вы можете постепенно увеличивать количество подов Kubernetes, на которые проводится развертывание. В случае каких-либо осложнений, вы можете откатить изменения до того, как они затронут всю пользовательскую базу целиком. Это нововведение предоставляет дополнительный уровень защиты пользователей от непредвиденных ошибок, что в идеале позволит вам чаще проводить развертывание.
Зеркалирование пушей теперь в открытом доступе
Изначально зеркалирование пушей было доступно только по платной подписке, однако, с момента ее выхода, эта функциональность была одной из самых востребованных пользователями — многие просили перевести ее в общий доступ. Мы серьезно относимся к таким вопросам и считаем, что поиск идеального баланса между платной и общедоступной функциональностью является одним из ключевых направлений политики управления проектами. Поэтому, начиная с данного релиза, зеркалирование пушей выходит в открытый доступ.
Благодаря этому у пользователей GitLab Core появляются новые возможности, связанные среди прочего с фриланс разработкой и миграцией. Фрилансеры теперь смогут проводить зеркалирование любого клиентского репозитория, а пользователи, переходящие на GitLab из других git-репозиториев, смогут воспользоваться возможностями зеркалирования для упрощения процесса миграции.
По возможности мы стремимся к выводу функциональности в открытый доступ, как для того, чтобы привлекать новых пользователей GitLab, так и для того, чтобы увеличивать количество людей, участвующих в разработке ПО с открытым исходным кодом.
Ускорение работы с уязвимостями
Практически невозможно отслеживать уязвимости в коде без какой-либо автоматизации, поэтому в GitLab включено несколько встроенных систем безопасности, таких как SAST, DAST, а также сканирование контейнеров и зависимостей. В данном релизе мы продолжаем работу в этом направлении.
При обнаружении уязвимости нужно либо исправить ее, либо проигнорировать в случае ложноположительного срабатывания. Наши новые интерактивные отчеты безопасности позволят вам выполнять соответствующее действие прямо из отчета: вы сможете либо отклонить уязвимость, либо создать задачу по ее устранению. Данная функциональность упрощает процесс работы с уязвимостями и, как следствие, ускоряет выпуск безопасного кода.
Ждем вашего ответа!
Мы с нетерпением ждем вашей реакции на нововведения этого релиза — что вам понравилось? Что нам следует улучшить? Мы с интересом прочитаем ваши комментарии к оригиналу статьи и продолжим работу над улучшением GitLab.
Спасибо за ваше участие!
MVP этого месяца — Alexis Reigel
Alexis добавил очень полезную возможность создания общих CI Runner’ов для групп. Эту функциональность пользователи просили более года, и вклад Alexis наконец позволил претворить ее в жизнь. Теперь управлять Runner’ами проектов определенной группы стало намного проще.
Спасибо, Alexis! В знак благодарности мы отправили ему фирменные кофту, носки и тануки ручной работы с символикой GitLab.
Инкрементное развертывание (PREMIUM, ULTIMATE, SILVER, GOLD)
При внесении масштабных изменений в ваше приложение разумно развертывать версию на небольшую подгруппу пользователей с целью получения фидбека и обнаружения возможных проблем. После этого можно последовательно увеличивать процент пользователей, для которых проводится развертывание, пока новая версия полностью не заменит предыдущую. Таким образом, если на каком-то этапе обнаруживаются проблемы, откат продукта затронет меньшее количество пользователей.
В GitLab 10.8 мы добавляем возможность инкрементного развертывания кода на 10, 25, 50 и 100 процентов ваших подов. Вы также можете применять этот подход в Auto DevOps с помощью переменной окружения INCREMENTAL_ROLLOUT_ENABLED
.
Документация по инкрементному развертыванию
Зеркалирование пушей теперь в открытом доступе (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Зеркалирование репозиториев позволяет копировать репозитории Git из одной локации в другую. Это упрощает работу с несколькими инстансами GitLab: например, вы можете зеркалировать результаты работы вашей команды в личный инстанс GitLab ваших клиентов. Также зеркалирование пушей упрощает перемещение проекта в GitLab из других репозиториев, причем оригинальный репозиторий, из которого производится перемещение, остается актуальным.
Ранее зеркалирование пушей было доступно в GitLab Starter, а теперь еще и в Core.
Документация по зеркалированию пушей
Интерактивная обратная связь в отчетах безопасности (альфа-версия) (ULTIMATE, GOLD)
Отчеты безопасности помогают находить потенциальные уязвимости вашего ПО, после чего вы можете предпринять действия по их устранению.
Начиная с GitLab 10.8 вы можете создавать задачи по исправлению уязвимостей прямо из окна отчета безопасности. Также вы можете отклонить определенную уязвимость в случае ложноположительного срабатывания. Ваша обратная связь отображается напрямую в отчете.
Документация по работе с отчетами безопасности
Нечеткий поиск файлов для Web IDE (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Мы добавили нечеткий (fuzzy) поиск файлов в Web IDE с целью упрощения навигации для крупных проектов. Нечеткий поиск доступен по комбинации клавиш Cmd + p
/Ctrl + p
.
Ранее вам нужно было напрямую просматривать дерево файлов проекта для того, чтобы найти определенный файл.
Коммит отдельных файлов в Web IDE (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Мы добавили возможность добавления (stage) отдельных файлов в коммит в Web IDE, что позволяет совершать коммиты небольшого масштаба. Внесенные изменения добавляются в соответствующий список unstaged changes, после чего из этого списка вы можете выбрать нужные файлы и добавить их в список staged changes — эти файлы станут частью следующего коммита.
Графики выполнения задач для групп (PREMIUM, ULTIMATE, SILVER, GOLD)
Графики выполнения задач используются во многих проектах для отслеживания прогресса определенного майлстоуна. Поскольку все больше команд используют разделение на группы и подгруппы, мы получили множество запросов на добавление таких графиков на уровне групп.
В данном релизе мы добавляем графики выполнения задач для групповых майлстоунов. Эти графики функционируют абсолютно так же, как и проектные: в них отображается прогресс выполнения всех задач, связанных с майлстоуном, что предоставляет наглядную демонстрацию рабочего процесса. С помощью этих графиков вы можете оценить вероятность выполнения работ в срок и внести необходимые изменения в работу.
По аналогии с проектными графиками выполнения задач, графики для групп учитывают как количество задач, так и их вес. Кроме того, групповые графики учитывают задачи, связанные с майлстоуном, для всех подгрупп соответствующей группы.
Документация по графикам выполнения задач
Метрики Prometheus выходят в общий доступ, включены по умолчанию (CORE, STARTER, PREMIUM, ULTIMATE)
GitLab часто является ключевым элементом цикла поставки ПО, поэтому важно быть уверенным в его стабильной и корректной работе. В предыдущих релизах мы добавили метрики Prometheus для зависимостей Redis и Postgres, а также несколько экспериментальных метрик в версии 9.3. С тех пор мы покрыли метриками ещё некоторые части нашей кодовой базы, а также уменьшили негативное влияние сбора метрик на производительность. Теперь мы используем эти метрики для мониторинга сервиса GitLab.com.
Как следствие прошедших нововведений, мы выводим мониторинг Prometheus в общий доступ (GA, general availability) начиная с версии 10.8. Для всех новых установок GitLab мониторинг будет включен по умолчанию. Также мы выпустили пробную версию приборной панели Grafana для наглядной визуализации метрик.
Документация по мониторингу Prometheus в GitLab
Другие улучшения GitLab 10.8
Подтверждение обновлений политики использования (CORE, STARTER, PREMIUM, ULTIMATE)
GitLab готовится к внедрению GDPR и, как часть этого процесса, мы попросили наших пользователей просмотреть и подтвердить обновленные Условия Использования. Вместо того, чтобы использовать эту функциональность один раз и забыть про нее, мы решили добавить ее в GitLab, чтобы пользователи могли использовать эту фичу и в дальнейшем.
При включении этой фичи админом инстанса, пользователи будут обязаны просмотреть Условия Использования и согласиться с ними перед продолжением работы с GitLab. До тех пор, пока пользователь не подтвердит это сообщение, его доступ к GitLab через веб, API и Git будет заблокирован.
Сообщение с Условиями Использования может быть полностью изменено в настройках админа. Также, поскольку это сообщение создается на основе GitLab-flavored Markdown, в нем могут даже содержаться ссылки на другие страницы.
Все подтверждения от пользователей хранятся в базе данных, так что вы можете использовать эту информацию в дальнейшем.
Документация по подтверждению обновлений политики использования
Меню поиска и фильтрации по эпикам дорожной карты (ULTIMATE, GOLD)
Меню поиска и фильтрации — очень полезная часть интерфейса, хорошо знакомая пользователям и используемая по всему GitLab. Мы решили использовать эту функциональность для поиска и фильтрации эпиков дорожной карты (roadmap) при ее просмотре.
В этом релизе вы сможете фильтровать эпики по автору и метке в режиме просмотра дорожной карты. Кроме того, вы сможете искать эпики по названию и описанию. Это позволит пользователям находить релевантные им и их командам эпики и добавлять в закладки ссылки, чтобы сохранить настройки поиска.
Документация по дорожным картам
Обсуждения в API (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Обсуждения (ветки комментариев) появляются во многих частях веб-интерфейса GitLab: в задачах, мерж-реквестах, эпиках, сниппетах и коммитах. В этом релизе мы расширили возможности API, благодаря чему вы сможете получать доступ к обсуждениям и управлять ими прямо через API GitLab, что сделает ваши рабочие процессы еще более гибкими.
Документация об обсуждениях в API
SAST для PHP и Java Gradle (ULTIMATE, GOLD)
Статическое тестирование безопасности приложений (SAST) эффективно только в тех случаях, когда ваш проект использует язык программирования, поддерживаемый одним из инструментов GitLab. Именно поэтому мы увеличиваем количество этих языков с каждым релизом, добавляя наиболее популярные из них.
В GitLab 10.8 проекты, написанные на PHP и Java с Gradle могут автоматически проверяться на уязвимости безопасности. Для этого даже не нужно определять язык — он определяется в рантайме автоматически.
Определение переменных для ручных конвейеров (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Нередко возникает необходимость выполнить единичный запуск CI с одноразовыми значениями настроек, чтобы протестировать конкретный сценарий использования. Например, мы можем временно применить определенную стратегию развертывания или исключить конкретный шаг из процесса сборки приложения.
GitLab 10.8 предлагает возможность определять специальные одноразовые переменные при запуске конвейера вручную. Вам не нужно будет изменять переменные для всего проекта, чтобы выполнить один-единственный специфический запуск, благодаря чему выполнять нестандартные тесты с собственными настройками станет гораздо проще.
Документация о запуске конвейеров
Мерж-коммиты в виджете мерж-реквеста (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Мы продолжаем работать над маленькими фичами GitLab, которые имеют большое значение при его использовании. Это изменение — хороший тому пример. Если вы используете мерж-коммиты в вашем проекте, ссылка на мерж-коммит будет появляться в виджете мерж-реквеста сразу после мержа. По этой ссылке вы сможете перейти непосредственно к мерж-коммиту.
Для многих рабочих процессов будет полезно иметь возможность переходить прямо к мерж-коммиту. Например, некоторые команды переносят эти мерж-коммиты в релизные ветки или отмечают их тегами для тестирования или развертывания на продакшн. С этим изменением вам будет легче узнать, является ли мерж-реквест частью ветки, которую вы собираетесь разворачивать.
Системные заметки для добавления веса задачи (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)
Вес задачи позволяет сопоставить задаче GitLab определенное численное значение, указывающее на ее объем. В частности, команды используют веса задач для планирования разработки при работе по Agile или по другим методологиям, основанным на гибкой разработке. В этом релизе мы добавили системные заметки, появляющиеся каждый раз, когда вы добавляете или изменяете вес задачи. Это поможет членам команды отслеживать изменения для оценки работ, а также просто узнавать, когда была произведена первая оценка.
Вес задачи и статус блокировки в экспорте CSV (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)
В этом релизе мы добавили в экспорт CSV вес задачи и статус ее блокировки. Это дает вам еще больше информации о задачах, чтобы вы могли провести любой тип анализа и рабочих процессов вне GitLab.
Мерж-реквесты GitLab в Jira Development Panel (PREMIUM, ULTIMATE, SILVER, GOLD)
В этом релизе мы улучшили интеграцию с Jira Development Panel: теперь она включает мерж-реквесты GitLab. Это значит, что, если вы используете специальную интеграцию, в боковой панели связанной задачи Jira вдобавок к коммитам и веткам Gitlab будут отображаться еще и мерж-реквесты.
Обратите внимание, что в интерфейсе Jira мерж-реквесты называются «pull requests».
Документация по интеграции с GitLab Jira Development Panel
Уведомления на email для комментариев по эпикам (ULTIMATE, GOLD)
В предыдущем релизе мы представили треды комментариев для эпиков. В этом релизе мы сделали совместную работу над эпиками еще более похожей на остальные части GitLab — за счет добавления email уведомлений. Как и ранее в задачах и мерж-реквестах, вы будете получать уведомления на email (указанный вами в настройках GitLab) после соответствующей активности в эпике. Например, когда член команды упоминает вас в описании эпика или комментарии к нему, вы получите уведомление, если вы настроили свои уведомления для группы этого эпика на уровень Participate или выше.
Улучшенное отображение длинных описаний коммитов (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Хорошее описание коммита, которое объясняет, почему было нужно изменение, помогает делать небольшие атомарные коммиты и упрощает чтение логов коммитов для остальных членов команды. Мы улучшили отображение длинных описаний, так что читать их стало еще проще!
Поддержка встроенных сниппетов (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Сниппеты полезны для обсуждения части кода. Теперь вы можете встраивать публичные сниппеты в ваш веб-сайт. Это очень помогает в документировании, дополнении поста в блоге примерами кода или на личном сайте. За эту возможность спасибо Haseeb.
Документация о поддержке встроенных сниппетов
API для языков проекта (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
С помощью нового API для языков вы сможете собирать статистику по языкам проекта. Это может быть полезно для отчетов или исследований — например, понять, какие языки программирования чаще всего используются в вашей организации или в проекте с открытым исходным кодом на GitLab.com. Спасибо, Roger, за твой вклад!
Документация по API для языков проекта
GitLab Runner для групп (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
У GitLab Runner-ов есть два типа настройки: для целого инстанса (shared) или на уровне проекта (specific). Однако, иногда существует необходимость предоставить набор Runner-ов целой группе проектов, не предоставляя доступ к ним кому-либо извне. На GitLab.com, например, это хорошо работает за счет прямой связи между группами и организациями.
Начиная с GitLab 10.8 вы сможете соединять ваши GitLab Runner с конкретной группой — и каждый проект этой группы получит возможности CI/CD без каких-либо дополнительных настроек. А новые проекты будут получать все преимущества групповых Runner-ов сразу после создания. За эту фичу спасибо Alexis.
Документация по настройке GitLab Runners
Поддержка политики тестового окружения для Auto DevOps (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
До этого релиза Auto DevOps по умолчанию использовал модель непрерывного развертывания: пуш в production
происходил автоматически каждый раз после запуска конвейера в ветке master
. Это очень полезно, но иногда для завершенности приложения или доступности продакшн-окружения нужно использовать дополнительное тестовое окружение. Только после прохождения всех проверок на нем можно вручную запускать развертывание в продакшн.
В шаблоне Auto DevOps раньше уже поддерживалась такая возможность, но она не была включена по умолчанию. Если кто-то хотел воспользоваться прогоном через тестовое окружение, нужно было отдельно создать файл .gitlab-ci.yml
.
Начиная с GitLab 10.8, шаблоны Auto DevOps позволят пользователям включать staging
с помощью переменной окружения. Вы можете указать STAGING_ENABLED
для целой группы, для одного проекта или даже для конкретного запуска. Развертывание в production
нужно будет запускать вручную — и можно будет сделать это в нужное время.
Документация о политике развертывания Auto DevOps
Шаблоны проектов теперь работают с Auto DevOps (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
В GitLab вы можете легко начать работу над проектом с определенным языком: просто используйте шаблоны. Это позволит вам быстро запустить новое приложение и затем настроить его под свои нужды.
GitLab 10.8 включает усовершенствованные версии шаблонов Rails, Spring и Express, так что при создании новых проектов вы можете использовать все возможности Auto DevOps. Используя эти улучшенные шаблоны, вы сможете пройти путь от идеи до производства за считанные минуты.
Документация о создании шаблонов, основанных на проектах
Улучшения Geo (PREMIUM, ULTIMATE, SILVER, GOLD)
- Geo поставляется с Git 2.16.3, что значительно уменьшит время синхронизации репозиториев с большим количеством ссылок.
- После первоначального клонирования репозитория вторичный нод Geo будет выполнять переупаковку (
git pack-objects
), чтобы освободить место на диске. Также он будет регулярно выполнять сборку мусора (git gc
). - При включенных проверках репозитория Geo будет периодически запускать
git fsck
на каждом репозитории вторичного нода. - Улучшены метрики Geo Prometheus: стало проще находить репозитории с несовместимыми контрольными суммами.
Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 10.8 released with incremental rollouts, plus open source push mirroring.
Комментарии (13)
aionin Автор
07.06.2018 10:48Добрый день.
Да, проблема известна. В службу поддержки GitLab мы также сообщили об этих проблемах. Увы, действия по ограничению доступа к известному мессенджеру коснулись и пользователей GitLab в России. Соответсвенно, GitLab готовит альтернативную площадку с обновлениями.
Пока страница с обновлениями доступна через VPN.
Есть инструкция, как настроить wget через прокси по ссылкеflx0
07.06.2018 12:07+1О том чтобы подать в суд на роскомпозор и возместить упущенную из-за их незаконных действий прибыль, речи, конечно, не идет?
onegreyonewhite
07.06.2018 12:21Каждый раз открываю новости о новом релизе Gitlab, всё надеюсь увидеть кастомные шаблоны проектов. А вообще отдельное большое спасибо вам за продукт, особенно Free реализацию.
Merifri
07.06.2018 14:09Вряд ли скоро мы увидим кастомные шаблоны. Эта фича запланирована к релизу 11.3, кажется.
EvgenT
07.06.2018 15:39-1Вот у меня вопрос.
А почему IP адрес gitlab принадлежит микрософту?
$ ping gitlab.com
PING gitlab.com (52.167.219.168) 56(84) bytes of data.
$ whois 52.167.219.168
…
…
OrgName: Microsoft Corporation
OrgId: MSFT
Address: One Microsoft Way
City: Redmond
StateProv: WA
PostalCode: 98052
Country: US
RegDate: 1998-07-09
Updated: 2017-01-28
…
…
Перенёс свои проекты на gitlab, а только потом выяснил.
Установить себе на сервер невозможно. IP заблокирован (как уже выше писали).Zhandos
07.06.2018 15:41+1потому что Microsoft Azure
EvgenT
07.06.2018 16:02-2Как-то это не серьёзно. Сбежал с микрософт github к микрософт gitlab. Весело :)
aionin Автор
07.06.2018 16:07Глобализация, однако. В мире не так много международного уровня дата-центров. Если по цене и качеству GitLab устраивает сервис, а, сервис GitLab устраивает клиентов, то, в сущности, все равно Azure это или AWS.
c0f04
07.06.2018 23:13Другой IP Gitlab'а (54.153.54.194) принадлежит Amazon. И он тоже заблокирован. Если РКН хотел саботировать разработку ПО в стране, то им это удалось. Заблокированы также llvm.org, try.gogs.io и try.gitea.io. Хорошо хоть Docker снова заработал. А то 3 дня на переделку инфраструктуры из РКН — это перебор, на мой взгляд.
Valsha
08.06.2018 00:05О, класс. А я для этого (зеркал) держал GoGs. Спасибо что добавили эту возможность в Core.
Nivalis
Может быть тут помогут, как обновиться из России? К сожалению package.gitlab.com по ip-адресу 54.194.25.183 — заблокирован РКН.
RouR
Nivalis
Вчерашний подвиг от РКН и разблокировка 7 млн. адресов помогла — теперь обновления приходят.