Вийшов GitLab 8.15

В останньому релізі минулого року ми завершуємо наш Майстер-план і хочемо показати вам дещо цікаве з того, над чим ми працювали.

У GitLab 8.15 з'явилася фіча Auto Deploy – автоматизована налаштування розгортання і додатків для рев'ю (Review Apps). Для проекту на Ruby on Rails така настройка займе менше хвилини. Подивіться, як це працює, у відео на 1:42.
до того Ж, доступ до ваших середовищ (environments) став швидше і простіше: через термінал безпосередньо в GitLab (там же 5:18)
Ми хочемо дати кожному можливість використовувати всю міць контейнерів (containers), безперервної інтеграції і розгортання (continuous integration and deployment, скорочено CD/CI), додатків для рев'ю (review apps) і планувальників контейнерів (container schedulers). У GitLab 8.15 ми взяли на себе всю складну роботу по налаштуванню, і вся вона відбувається абсолютно прозоро. У демонстраційному відео ми налаштовуємо і розгортаємо Ruby-додаток з review apps, кількома середовищами і чатопсом (chatops, управління інфраструктурою через інтеграцію з чатом) на кластер Kubernetes приблизно за 12 хвилин. Без GitLab таке завдання зазвичай займає дні, якщо не тижні.
Для більшості з нас грудень — місяць свят і подарунків. GitLab теж отримав в подарунок багато нових фіч.

Дід Мороз MVP місяця — Michael Munch, який інтегрував в GitLab красиве відображення математичних формул LaTeX). Michael працював над цією функціональністю більше півроку в декількох мерж-реквестах (merge requests) з більш ніж трьома сотнями коментарів.
Ми також хочемо подякувати Warren Postma за його допомогу в нашому трекері завдань і на форумі спільноти і в цілому за популяризацію GitLab.
Ще одна подяка — Elan Ruusamäe і Dirk Hörner за їх внесок у технічний дизайн та реалізацію фіч, які значно посилили git-хуки (git hooks) в GitLab.
Дякуємо вам, Warren, Michael, Elan, і Dirk!
Автоматичне розгортання (Auto Deploy)
Ми хочемо, щоб налаштування повнофункціонального конвеєра CI/CI (CI/CD pipeline) з розгортанням через планувальник контейнерів (container scheduler) була доступна кожному. Вона повинна бути легкою в освоєнні, але при цьому масштабованої і прозорою.
Auto Deploy дає можливість такої установки. У вашому проекті з'явиться нова кнопка, натискання на яку буде створено мерж-реквест (merge request, він же pull request) з шаблоном файлу
.gitlab-ci.yml
, що містить сценарій розгортання в використовуваний вами планувальник контейнерів з допомогою Docker. Також в цьому шаблоні є налаштування Review Apps, тому на роботу нової фічі можна буде подивитися відразу — ще до того, як ви приймете мерж-реквест.
Auto deploy in GitLab 8.15
Це, мабуть, найшвидший шлях до розгортання в одне натискання кнопки, в якому реалізація прозора, всі налаштування зберігаються в git, і з усім цим легко працювати в команді.
Налаштування Auto Deploy в GitLab 8.15 показується відео на 1:42.
Це перша ітерація, і поки що доступний тільки шаблон для розгортання на зовнішній (external) кластер OpenShift. Ми використовуємо Herokuish і Heroku Buildpacks, щоб упакувати ваш додаток в докер-образ (docker image) і розгорнути його в Kubernetes на OpenShift. В майбутньому ми плануємо додати підтримку інших планувальників контейнерів і хмарних платформ (таких як звичайний кластер Kubernetes, Mesos і Docker Swarm). Ми будемо раді вашим вкладом в колекцію шаблонів.
За детальною інформацією звертайтеся до документації Auto deploy.
Веб-термінал
Уявіть собі ситуацію: у вашому GitLab налаштовані і працюють кілька динамічних середовищ, створених за запитом з того чи іншого проекту. Це можуть бути програми для рев'ю, staging або production-середовища. Зазвичай для отримання прямого доступу до них потрібно докладати зайві зусилля. Це прикре обмеження: буває корисно зробити щось своїми руками заради експерименту або для налагодження.
З веб-терміналом (web-terminal) ця задача сильно спрощується. Досить зайти на сторінку середовищ вашого проекту і натиснути на кнопку терміналу. GitLab сам встановить SSH-з'єднання з потрібним хостом і надасть вам повноцінну консоль у вікні браузера.
Web Terminal in GitLab 8.15
У демонстраційному відео робота веб-терміналу показана на 5:18. Ми з нетерпінням чекаємо відгуків про те, як ця фіча допомогла вам прискорити роботу.
Докладна інформація про налаштуванні і використанні веб-терміналу знаходиться в документації для системних адміністраторів і користувальницької документації по робочих середовищ (environments).
Покращений імпорт з Bitbucket
Імпорт з Bitbucket став ще більш гнучким.
У GitLab 8.15 ми додали імпорт пулл-реквестов разом з коментарями в мерж-реквесты GitLab, а також імпорт milestone'ів (мітки великих етапів розробки, якими відзначаються звичайні завдання) та вікі-сторінок.
Разом, виходить наступний список імпортованих об'єктів:
  • Опис репозиторію
  • Сам репозиторій git
  • Завдання та коментарі до них
  • Пулл-реквесты і коментарі до них
  • Milestone's
  • Вікі
При імпорті зберігаються всі посилання на пулл-реквесты і завдання, а також рівні доступу (публічний або приватний)
Докладніше про імпорт з Bitbucket – в документации
Глобальні git-хуки
GitLab надає можливість використання git-хуків для застосування певних правил і тригерів для пушей та їх вмісту. Проте, до цих пір єдиною можливістю стандартизації цих правил між проектами було їх копіювання в кожен новий проект.
З додаванням глобальних хуків стало можливим створювати git-хуки, які будуть застосовуватися для кожного проекту инстансе GitLab. Це повинно спростити застосування єдиних правил для всього нового коду.
Створюйте хуки в теку
hooks/<hook_name>.d/
або вкажіть GitLab Shell шлях до директорій з ними.
Документація по кастомным хукам
Впорядковані кастомні git-хуки
При створенні кастомних git-хуків може мати значення порядок їх застосування: якщо певний хук не виконується, немає ніякого сенсу намагатися виконати наступні. Впорядковані хуки виконуються в лексичному порядку і припиняють виконання при невдачі будь-якого з них.
наприклад, при створенні хуків
1-hook.sh
та
2-hook.sh
,
1
завжди буде виконуватися перед
2
.
Дане нововведення посилює функціональність хуків і додає можливості для кастомізації обробки вхідних комітів.
Більше інформації на цю тему міститься в документації з git-хукам.
Дякую Elan Ruusamäe і Dirk Hörner за допомогу в розробці та імплементації даної функціональності, а також глобальних git-хуків!
Перевизначення рівнів доступу користувачів для LDAP груп (EE)
У GitLab EE існує можливість синхронізації LDAP груп з групами GitLab, таким чином призначаючи всім користувачам групи певний рівень доступу. Наприклад, можна призначити всім користувачам в LDAP групі
developers
рівень доступу
Developer
. Таким чином, при додаванні нових розробників у LDAP групу, їм буде автоматично видаватися відповідний рівень доступу.
GitLab 8.15 розширює можливості цієї функціональності. Тепер, на додачу до автоматичної синхронізації рівнів доступу, з'явилася можливість перевизначення для конкретного користувача. Дане нововведення спрощує керування рівнями доступу між групами та проектами.
Override LDAP permissions in GitLab 8.15 EE
Slack Chatops
У версії 8.14 ми додали Chatops в GitLab через інтеграцію з Mattermost, а тепер робимо те ж саме для Slack! Тобто тепер ви зможете створювати, відображати і шукати завдання прямо з Slack, що дозволяє з легкістю переходити від обговорення завдання до оформлення її в трекері.
До того ж, тепер можна проводити розгортання в/з будь-якого середовища. Наприклад, при введенні
/awesome-website deploy from staging to production

GitLab проведе розгортання останнього коміта з staging в master.
Slack Chatops in GitLab 8.15
Chatops для Slack можна налаштувати у властивостях проекту. Як завжди, ми раді вкладом користувачів у розвиток інтеграції чатів з GitLab.
Налаштування Mattermost одним кліком
Сильно спрощена інтеграція GitLab з Mattermost. Тепер це робиться одним кліком, як показано в це відео на 3:16.
Super easy Mattermost configuration in GitLab 8.15
Інтеграція з Mattermost і Slack дозволяє створювати, відображати і шукати завдання, а також виробляти розгортання в будь-яке середовище.
Документація по інтеграції Chatops з Mattermost
Диффы в листах з нотификациями
Як вам відомо, коли хтось коментує ваш діфф, вам буде надіслано лист з нотифікацією. Тепер в такі листи додається частина цього диффа, щоб у вас відразу був контекст перед очима.
Diffs in Notification emails in GitLab 8.15
Поліпшення інтерфейсу
Ми з вами доклали серйозні зусилля для спрощення роботи користувачів з GitLab. Як наслідок, у даному релізі міститься безліч змін, що роблять роботу з GitLab ще більш приємною.
Оновлення шрифтів
З метою поліпшення читабельності і підтримки різних ОС/браузерів GitLab тепер використовує системні шрифти. Ці шрифти оптимізовані під певні платформи, завдяки чому працювати з GitLab однаково комфортно, незалежно від того, звідки ви це робите.
Для наочності можна ознайомитися з оригінальним мерж-реквестом.
Зменшена піксельна ширина інтерфейсу
Для поліпшення читабельності зменшена максимальна ширина контейнера завдань і мерж-реквестов. Це лише перший крок у процесі зменшення величезної довжини рядка, яку можна спостерігати в усьому GitLab'е. За ходом роботи над цим завданням можна спостерігати в відповідному тикеті.
Унікальний вигляд міток
Змінений зовнішній вигляд міток, тепер вони сильніше візуально відрізняються від кнопок. Ми продовжуємо роботу в цьому напрямку з метою зробити теги і значки статусу ще більш помітними і впізнаваними в майбутніх версіях.
Unique Labels in GitLab 8.15
Покращена прокрутка і завантаження збірок
Прокрутка і завантаження збірок тепер краще працює і виглядає:
Improved Build Scrolling and Loading in GitLab 8.15
Менший розмір сторінки
Зробивши системні шрифти і поліпшивши автодоповнення, ми суттєво зменшили розмір усіх сторінок в GitLab. Даний мерж-реквест в проекті GitLab CE замість 1800 Кбайт тепер займає 718 Кбайт!
Поліпшені підказки для порожніх сторінок
Щоб допомогти новим користувачам освоїти GitLab, ми додали інформативні і цікаві підказки для безлічі порожніх сторінок по всьому додатком.
Загляньте в наш мета тікет, щоб дізнатися, де ми розмістили нові підказки, і не соромтеся пропонувати свої!
Even empty is beautiful in GitLab 8.15
Інші зміни та поправки
  • Покращили доступність: додали стан фокуса в випадають опції
  • Додали дії при наведенні в нашу основну навігацію і таби по всьому сайту
  • Поліпшили дію при наведенні, фокус і активний стан для кнопок !7797
  • Додали дію при наведенні для елементів, поєднаних з меню тікетів або мерж-реквестов !7777
Підтримка математики для Markdown і AsciiDoc з допомогою KaTeX
В коментарях і файлах репозиторію тепер можна акуратно оформляти математичні дані, використовуючи бібліотеку KaTeX від Khan Academy.
Щоб оформити строкові математичні формули, символи долара навколо коду рядка:
$`a^2+b^2=c^2`$

Щоб оформити багаторядкові математичні вирази, використовуйте мову
math
для блоку коду:
``math
a^2+b^2=c^2
``

Це працює не тільки з Markdown, але і з документами AsciiDoc. Прочитати документацію про підтримку математики
Beautifully rendered in math GitLab 8.15
За цю фічу спасибі Michael Munch.
Повідомлення комітів мержей стали чистішими
У попередніх версіях повідомлення комітів мержей складалися з заголовку, опису мерж-реквеста і посилання на мерж-реквест. Це важко читати при використанні
git log
та аналогічних функцій, так як опису мерж-реквестов часто містять запити на рев'ю, скріншоти і інші деталі, несуттєві для зміни коду.
Тепер повідомлення коміта мержа за замовчуванням виглядає так:
Merge branch '$SOURCE_BRANCH' into '$TARGET_BRANCH'

$TITLE

Closes $CLOSING_ISSUE_REFERENCES # only if the present MR closes issues

See merge request $MERGE_REQUEST_REFERENCE

Попереднє дефолтний повідомлення доступно у налаштуваннях повідомлення коміта мержа.
Дякую Gabriel Gizotti!
Короткі крос-проектні посилання в GitLab Flavored Markdown
Раніше посилання на що-небудь в іншому проекті завжди включали простір імен, навіть якщо проект був у тому ж просторі імен.
Тепер доступні короткі посилання. Всередині проекту
gitlab-org/gitlab-ce
ви тепер зможете звернутися до завдання під номером 1 в GitLab Workhorse,
написавши
gitlab-workhorse#1
замість
gitlab-org/gitlab-workhorse#1
,
заощадивши дорогоцінний час на натиснення клавіш!
Більше інформації спеціальній секції про посилання GitLab в нашій документації про Markdown.
Дякую Oswaldo Ferreira!
Створення тікета з невирішеного обговорення в мерж-реквесте
У версії 8.14 ми додали можливість блокувати мерж, коли є невирішені обговорення.
Тепер ми додали можливість створювати новий тікет з невирішеного обговорення в мерж-реквесте, і одночасно дозволяти це обговорення. Це корисно у випадках, коли вам потрібно мержить щось нове, але не хочеться забути про коментарях з рев'ю коду.
Дякую Bob van Landuyt!
Ручні дії зі схеми конвеєра (CI)
Ручні дії дозволяють вам запитувати ручне взаємодія до переходу на конкретну задачу в CI. Весь ваш конвеєр може працювати автоматично, але безпосередньо для розгортання production потрібно зробити клік.
Зробити це можна прямо з схеми конвеєра. Потрібно лише клікнути на кнопку «Play», щоб запустити конкретну задачу.
Manual actions on the pipeline graph
API дій користувача
Щоб ви могли швидко зрозуміти, коли користувач в останній раз використовував GitLab, ми додали до GitLab спеціальне администраторское API. Воно дозволяє отримувати timestamp останньої активності будь-якого користувача в инстансе.
Дізнайтеся більше в документації
Сортування учасників проекту або групи
Тепер вам буде простіше знаходити людей в проектах і групах з допомогою сортування по імені, рівня доступу або дату приєднання.
Easily find people in projects and groups in GitLab 8.15


Докладні release notes і інструкції по оновленню/установці можна прочитати в оригінальному англомовному пості: https://about.gitlab.com/2016/12/22/gitlab-8-15-released/
Переклад з англійської виконаний перекладацької артіллю «Надмозг і партнери», http://nadmosq.ru. Над перекладом працювали nick_volynkin, rishavant і sgnl_05.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.