Вышел GitLab 9.3: Code Quality и межпроектные графики конвейеров
В GitLab 9.3 мы представляем Code Quality, межпроектные графики конвейеров, индекс совместной разработки, улучшения локализации, описания сниппетов и многое другое!
GitLab представляет собой интегрированный продукт для всего цикла разработки. С выходом каждого ежемесячного релиза мы стремимся добавлять новые аспекты совместного написания кода, непрерывной интеграции, автоматизации релизов и мониторинга. Так, в GitLab 9.3 мы внесли функциональность, позволяющую улучшить качество кода, сократить время цикла разработки, а также упростить управление большими проектами.
В GitLab 9.3 добавлены отчеты Code Quality (качества кода), которые отображаются прямо в виджете мерж-реквеста. Эти отчеты позволяют мгновенно оценить влияние предложенных изменений на состояние вашего кода и проекта в целом. Благодаря этому сокращается время на ревью, а также появляется возможность находить ошибки перед мержем.
Современное production-level ПО, особенно то, что использует архитектуру микро-сервисов, зачастую состоит из множества различных проектов. В таком ПО очень важно понимать взаимодействие проектов. В GitLab 9.3 вы можете увидеть взаимосвязь upstream и downstream конвейеров при помощи межпроектных графиков конвейеров.
Также GitLab 9.3 предоставляет возможность оценить, как вы используете каждый элемент GitLab в сравнении с другими людьми. Для этого используется индекс совместной разработки. С помощью данного индекса можно легко оценить насколько эффективно вы используете систему по сравнению с другими пользователями, а также увидеть, какие элементы вашего рабочего процесса вы могли бы улучшить.
Мы создали небольшое видео, позволяющее оценить возможности GitLab и его новую функциональность, а также убедиться в том, что GitLab позволяет уместить весь процесс разработки на одной платформе.
MVP этого месяца — Huang Tao
Huang внес значительный вклад в локализацию GitLab на несколько новых языков. Спасибо, Huang!
GitLab Code Quality (EES, EEP)
Сложно переоценить важность правильного код-ревью. При обзоре внесенных изменений важно обращать внимание на качество кода, реализацию, форматирование и многое другое. Даже если ревью проводится качественно, достичь постоянства в этом процессе невозможно без какой-либо оценки качества кода.
Мы создали GitLab Code Quality для того, чтобы ускорить процесс код-ревью и предоставить пользователям возможность проводить сравнительную оценку качества кода и создавать соответствующие отчеты прямо в окне мерж-реквеста. Теперь, если качество вашего кода ухудшится, GitLab укажет вам на это, и вы сможете исправить ситуацию еще до мержа.
Больше информации о GitLab Code Quality в нашей документации
Межпроектные графики конвееров (EEP)
В больших проектах, особенно в тех, что используют архитектуру микро-сервисов, конечный продукт зачастую состоит из набора взаимозависимых компонентов. Из-за этого временами нелегко понять, почему произошел запуск определенного конвейера или почему произошла сборка одного проекта после коммита в другом.
В GItLab 9.3 появилась возможность отображения связей upstream и downstream проектов прямо на графиках конвейеров, благодаря чему можно легко увидеть статус всей цепочки в одном окне. Теперь для отображения связей между проектами не нужно использовать переменную $CI_JOB_TOKEN
с триггерами — графики создаются автоматически.
Больше информации о межпроектных графиках конвейеров в нашей документации
Индекс совместной разработки (CE, EES, EEP)
В прошлом сентябре мы анонсировали принципы совместной разработки (Conversational Development — ConvDev). Внедрение этой методологии ускоряет процесс разработки ПО от идеи до внедрения.
В GitLab 9.3 включен индекс совместной разработки, который предоставляет численное отображение использования данной методологии. При помощи этого индекса вы можете оценить вашу производительность по сравнению с другими пользователями GitLab, а также увидеть элементы вашего рабочего процесса, которые вы могли бы улучшить.
В данной версии этот индекс доступен только системным администраторам. Индекс формируется на основе деятельности всех активных пользователей вашего инстанса GitLab.
Больше информации об индексе совместной разработки в нашей документации
Защищенные переменные для повышения безопасности конвейеров (CE, EES, EEP)
Секретные переменные полезны в тех случаях, когда определенную информацию нужно скрыть от внешних пользователей, однако при этом для пользователей с доступом на внесение изменений в проект она открыта. При таком подходе возможны ситуации, когда в среду разработки вносят изменения те пользователи, которые в идеале этого делать не должны; у них даже может не быть доступа на запись в master
.
В GitLab 9.3 с введением защищенных переменных появляется дополнительный уровень безопасности для секретной информации, такой как полномочия развертывания. Теперь в Settings
-> CI/CD Pipelines
можно отметить переменную как «защищенную» (“protected”). Такая переменная будет доступна только для задач, выполняемых на защищенных ветках, благодаря чему доступ к ней будет открыт только для пользователей с соответствующими правами доступа.
Больше информации о защищенных секретных переменных в нашей документации
Централизованный лог пользовательских действий и более подробные ревизии действий пользователей (EEP)
Множество компаний нуждаются в отчетах изменений прав доступа по ходу всего цикла разработки. В GitLab 9.3 у каждого системного администратора появляется доступ к улучшенному централизованному логу пользовательских действий, в котором содержатся все соответствующие события групп, проектов и действий отдельных пользователей.
Кроме того, в данном логе можно проводить фильтрацию событий по типу и названию, благодаря чему можно легко находить события определенных групп, проектов или пользователей.
Больше информации о логах ревизий в нашей документации
Упрощенные настройки репозиториев (CE, EES, EEP)
С течением времени мы добавили много новой функциональности и вариантов конфигурации проектов и групп, и, как следствие, количество настроек GitLab значительно увеличилось.
В GitLab 9.3 мы начинаем работу по упрощению страниц настроек. Первым шагом стало улучшение читаемости страницы настроек репозиториев.
Мы стремимся улучшить группирование настроек и добавить обзор всех настроек для каждой секции.
Другие улучшения
Улучшения настроек JIRA (CE, EES, EEP)
В данном релизе мы улучшили настройки интеграции JIRA, что упрощает установку и тестирование соединения между проектом GitLab и сервером JIRA. Также добавлены отдельные поля Web URL и JIRA API URL. Такое разделение полезно в тех случаях, когда JIRA REST API и задачи JIRA находятся на разных адресах.
Больше информации об интеграции JIRA в нашей документации
Разрешения для ярлыков групп (CE, EES, EEP)
Пользователи с правами Reporter, Developer, Master и Owner вдобавок к ярлыкам проектов теперь могут создавать и редактировать ярлыки групп. Ранее это могли делать только Master and Owner.
Больше информации о модели прав доступа GitLab в нашей документации
Редактирование описания задач без перехода на другую страницу (CE, EES, EEP)
Описание задачи является опорной точкой и главным источником информации при совместной работе нескольких команд. В GitLab 9.3 мы убрали переход на отдельную страницу при редактировании описания задачи. Просто нажмите Edit
, внесите изменения и нажмите Save changes
— все это время вы остаетесь на странице задачи. Поскольку перенаправление на другую страницу теперь отсутствует, во время редактирования вы можете пролистать комментарии к задаче и даже скопировать и вставить в описание текст GFM
Больше информации о задачах GitLab в нашей документации
Улучшения интерфейса доски задач (CE, EES, EEP)
Мы понимаем, что у различных команд свои подходы к использованию досок задач. Для упрощения взаимодействия с ними мы добавили возможность сворачивать столбцы Backlog и Closed. Также мы внесли изменения в процесс добавления новых задач на доску: при нажатии на +
задача автоматически добавляется в начало списка, что серьезно упрощает работу с длинными списками.
Больше информации о досках задач GitLab в нашей документации
Локализация домашней страницы проекта и страницы файлов репозитория (CE, EES, EEP)
В GitLab 9.2 мы начали процесс локализации с перевода страницы аналитики цикла разработки на немецкий и испанский. В GitLab 9.3 мы перевели самые часто используемые страницы: домашнюю страницу проекта и страницу файлов репозитория.
Сообщество GitLab уже начало добавлять другие языки — китайский, болгарский и бразильский португальский. Вы можете наблюдать за изменениями и взглянуть на их гайдлайны, если хотите подключиться.
Узнайте, как построено взаимодействие сообщества по переводу GitLab
Доступ к приватным образам реестра контейнеров (CE, EES, EEP)
Когда вы разворачиваете проект, основанный на Docker, вам нужно подтягивать образ каждый раз, когда окружению нужно его запустить. Поскольку встроенный реестр контейнеров GitLab является очевидным выбором для хранения ваших контейнеров, в GitLab 9.3 вы сможете использовать его и для их распространения.
Создайте токен личного доступа с новой областью read_registry
, и у вас будет постоянный токен развертывания, который смогут использовать внешние сервисы вроде Kubernetes, чтобы при необходимости получить доступ к вашим образам — без ввода всех ваших данных или использования фиктивного пользователя для этой задачи.
Побробнее вы можете узнать в документации о токенах личного доступа
Системная заметка об изменениях в обсуждении устаревшего диффа (CE, EES, EEP)
На протяжении ревью кода мерж-реквеста мы постоянно изменяем код и комментируем эти изменения. Зачастую это сложно отследить. В частности, когда мы начинаем комментировать определенную строчку кода, и кто-то другой одновременно вносит туда изменения. Может закончиться тем, что вы обсуждаете что-то, что уже изменили.
В этом релизе мы добавили системную заметку — индикатор того, что строка уже изменилась. Если вы участвуете в обсуждении конкретной строки, вы узнаете, что ее уже изменили, и сможете посмотреть изменения, нажав на нее.
Автоотмена лишних конвейеров включена для всех проектов (CE, EES, EEP)
Чтобы извлечь максимум пользы из автоматической отмены лишних конвейеров и сэкономить множество часов разработки, GitLab 9.3 распространяет это поведение на все существующие и новые проекты.
Если вам не нужно отменять лишние конвейеры, вы можете настроить соответствующие параметры под свои нужды.
Грядущее обновление Nginx (CE, EES, EEP)
В рамках предстоящего релиза GitLab 9.4 мы обновим версию nginx, входящую в Omnibus, до новой стабильной версии 1.12. В эту версию включается несколько улучшений предыдущей стабильной версии. Например, появилась возможность фильтровать вывод лога.
Для пользователей это обновление должно быть понятным, но если вы изменяли настройки в конфигурации nginx, пожалуйста, после обновления до 1.12 удостоверьтесь, что они работают корректно.
Поддержка Debian 9 (CE, EES, EEP)
Доступна поддержка последнего релиза Debian 9. Вы можете скачать официальные пакеты Omnibus для GitLab 9.3 из раздела установки.
GitLab Mattermost 3.10 (CE, EES, EEP)
GitLab 9.3 включает Mattermost 3.10, альтернативу Slack с открытым исходным кодом. В этой версии появилась поддержка турецкого языка, новые горячие клавиши и многое другое.
Подробнее об изменениях GitLab Mattermost читайте в документации
Улучшения Omnibus (CE, EES, EEP)
Обновились связанные с ним пакеты Git и PostgreSQL. Git обновился до версии 2.13.0, а Postgres до 9.6.3.
Документация об Omnibus GitLab
Описания сниппетов (CE, EES, EEP)
У сниппетов теперь есть описания. Это касается только персональных сниппетов, которые мы добавили в предыдущем релизе. Сниппеты — мощный инструмент для быстрой и непринужденной совместной работы над кодом. В этом релизе совместно работать над ними стало так же просто, как и над мерж-реквестами.
Документация о сниппетах GitLab
Улучшения производительности (CE, EES, EEP)
Мы продолжаем улучшать производительность GitLab с каждым релизом. Это не только сделает каждый инстанс GitLab еще быстрее, но также увеличит производительность инстанса с миллионом пользователей — GitLab.com.
В GitLab 9.3 мы продолжаем ускорять вывод списка проектов, а также в целом улучшаем производительность сервера за счет изменений в том, как мы зеркалируем репозитории. Синтаксическая подсветка файлов теперь кэшируется, это повышает общую производительность и ускоряет отображение коммитов.
В GitLab 9.3 есть еще множество других улучшений производительности, которые не только сделают GitLab быстрее, но и снизят влияние на инфраструктуру сервера в целом.
Редизайн массового редактирования задач (CE, EES, EEP)
Мы сделали массовое редактирование задач проще и понятнее, чем в последнем релизе. Теперь при одновременном обновлении нескольких задач используется такая же боковая панель, как и во многих других элементах GitLab.
Подробнее в нашей документации о задачах в GitLab
Улучшения поиска и фильтрации (CE, EES, EEP)
Мы продолжаем постепенно улучшать поиск и фильтрацию. Теперь вы сможете видеть пользовательские аватарки.
Также клик на фильтр вызывает выпадающее меню, позволяющее быстро менять фильтры.
Подробности вы сможете прочитать в документации о поиске по GitLab
Улучшения подгрупп GitLab (CE, EES, EEP)
В GitLab 9.0 мы добавили подгруппы, сделав управление группами и проектами более гибким. С каждым релизом мы продолжаем улучшать эту функциональность: в этот раз мы сделали более понятную навигацию по подгруппам. На странице групп вы сможете увидеть расширяемое дерево со всеми проектами и подгруппами — вместо того, чтобы искать и загружать по странице за раз.
Документация по подгруппам GitLab
Расширенный просмотр файлов репозитория (CE, EES, EEP)
При просмотре файлов в репозитории теперь на той же странице автоматически отображается дополнительная информация.
Начиная с версии 9.3 вы сможете видеть, действительны ли файлы .gitlab-ci.yml
или .gitlab/route-map.yml
, а также конкретные ошибки парсинга. Также анализируется файл LICENSE
, что упрощает доступ к информации о конкретной лицензии, если вам нужны дополнительные детали. А чтобы понять, на что опираются проекты, можно изучить системы управления зависимостями, которые теперь тоже отображаются автоматически.
Директории, связывающиеся автоматически (CE, EES, EEP)
Ах, пакеты, эти драгоценные кусочки мудрости, собранные и готовые к использованию. GitLab теперь автоматически определяет и связывает директории в файловом обозревателе, сохраняя вам клики каждый день. Изящно, правда?
Эта функциональность будет работать для следующих директорий и языков:
*.gemspec
(Ruby)package.json
(Node.js)composer.json
(PHP)Podfile
(Objective-C)*.podspec
(Objective-C)*.podspec.json
(Objective-C)Cartfile
(Objective-C)Godeps.json
(Go)requirements.txt
(Python)
Поддержка API для конвейеров по расписанию (CE, EES, EEP)
В GitLab 9.2 мы выпустили конвейеры по расписанию, которые можно настраивать с помощью пользовательского интерфейса. В GitLab 9.3 мы также добавили возможность создавать и управлять конвейерами по расписанию через набор API, чтобы сделать интеграцию с другими инструментами проще и эффективнее.
Подробнее в документации об API конвейеров по расписанию
Количественное измерение влияния мерж-реквеста на производительность (CE, EES, EEP)
В прошлой версии GitLab мы добавили возможность видеть влияние мерж-реквеста на память прямо на странице мерж-реквеста. В GitLab 9.3 мы решили пойти дальше: теперь мы замеряем изменения в среднем использовании памяти за 30 минут до мержа и через 30 минут после него.
Разработчикам стало проще чем когда-либо знать о влиянии их действий на производительность за счет прямой обратной связи от инструментов, которые они используют каждый день.
Подробнее в документации о мониторинге приложений с помощью Prometheus
GitLab Runner 9.3 (CE, EES, EEP)
Также с этим релизом мы выпустили GitLab Runner 9.3.
Самые важные изменения:
- Добавили переменную
GIT_CHECKOUT
, которая контролирует выполнение git checkout (мерж-реквест) - Добавили базовую поддержку Volumes в Kubernetes executor (мерж-реквест)
- Добавили поддержку опции
cpus
в Docker executor (мерж-реквест) - Добавили поддержку опции
userns
в Docker executor (мерж-реквест) - Добавили механизм отката реквестов (мерж-реквест)
- Улучшили удаление Docker в Docker executor (мерж-реквест)
Список всех изменений вы найдете в CHANGELOG.
Полная документация о GitLab Runner.
Дополнительные метрики сервиса GitLab (CE, EES, EEP)
В GitLab 9.0 был представлен мониторинг сервиса GitLab с помощью Prometheus, с помощью которого можно оценить производительность Redis, PostgreSQL, а также системы в целом.
В рамках GitLab 9.3 мы добавили экспериментальный сервис мониторинга кодовой базы ruby. Пока в нем отображаются только несколько показателей вроде статуса конвейера и авторизаций пользователей. В последующих релизах мы будем добавлять мониторинг и других частей GitLab.
Подробнее в документации о дополнительных метриках
Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: https://about.gitlab.com/2017/06/22/gitlab-9-3-released/
Перевод с английского выполнен переводческой артелью «Надмозг и партнеры», http://nadmosq.ru. Над переводом работали rishavant и sgnl_05 .