- PVSM.RU - https://www.pvsm.ru -

Вышел GitLab 10.6: CI-CD для GitHub и углубленная интеграция с Kubernetes

Картинка для привлечения внимания

Непрерывная интеграция, поставка и развертывание являются основополагающими принципами DevOps. В GitLab включена функциональность CI/CD, которая пришлась по душе как разработчикам [1] и аналитикам [2], так и компаниям [3] в целом.

Однако, было одно упущение — ранее вы не могли использовать GitLab CI/CD с GitHub. В данном релизе мы это исправили.

Представляем GitLab CI/CD для GitHub

Несмотря на то, что GitLab лучше всего себя показывает в качестве единого приложения для всего цикла разработки [4], мы стремимся к продуктивному взаимодействию с другими приложениями [5]. Поэтому, начиная с данного релиза, мы добавляем интеграцию CI/CD с GitHub [6], а также возможность интеграции CI/CD с любыми другими внешними репозиториями [7], например BitBucket. Это нововведение нацелено на четыре основные группы пользователей.

Проекты с открытым исходным кодом

Теперь, если у вас есть публичный проект с открытым исходным кодом на GitHub, вы можете пользоваться бесплатным CI/CD на GitLab.com. Мы предоставляем публичным проектам возможности GitLab CI/CD наивысшего плана (Gold) бесплатно, как часть нашей поддержки open source. В то время как другие поставщики CI/CD разрешают выполнять лишь небольшое количество одновременных работ, GitLab.com [8] позволяет проектам с открытым исходным кодом запускать сотни одновременных работ с 50 000 бесплатных минут для конвейеров CI в месяц.

Крупные компании

Из общения с нашими крупнейшими клиентами мы знаем, что в больших бизнесах множество команд зачастую использует множество различных инструментов. Наши клиенты хотят стандартизировать CI/CD на GitLab, однако код может храниться одновременно в GitLab, GitHub и других репозиториях. Начиная с данного релиза, компании смогут использовать общие конвейеры CI/CD для всех репозиториев. Это ключевая группа пользователей для нас, поэтому мы сделали CI/CD для GitHub частью нашего плана Premium.

Кто угодно на GitHub.com

Хотя GitLab спроектирован для использования SCM и CI/CD в одном приложении, мы понимаем, почему некоторые пользователи хотят использовать GitLab CI/CD с контролем версий GitHub. Поэтому в течение года GitLab CI/CD для GitHub будет частью плана Free GitLab.com [8]. Это значит, что все пользователи GitHub, от персональных проектов и стартапов до малых и средних бизнесов, смогут пользоваться GitLab CI/CD бесплатно. В таком варианте изначально доступны 2000 бесплатных минут конвейеров CI с возможностью добавления собственных Runner’ов [9] и апгрейда плана.

Пользователи Gemnasium

Как вы, возможно, помните, недавно мы приобрели Gemnasium [10]. Мы очень рады такому пополнению наших рядов, однако также не забываем о пользователях, которые использовали Gemnasium и раньше: мы хотим предоставить им простой и безболезненный способ перехода на новую платформу. Мы уже поставляем функциональность Gemnasium [11] как часть нашей встроенной системы безопасности, а теперь пользователи Gemnasium, которые используют его в связке с GitHub, смогут использовать GitLab CI/CD для проверок безопасности без необходимости переноса кода.

Улучшения Kubernetes для GitLab

Мы продолжаем интегрировать контейнеризацию (containerization) в GitLab. В версии 10.4 мы вывели в общий доступ интеграцию с кластерами Kubernetes и GKE [12]. В версии 10.6 мы еще больше упрощаем использование Kubernetes с GitLab. Теперь вы в один клик можете провести развертывание GitLab Runner в подключенный кластер Kubernetes [13]. Также вы можете мониторить ваш кластер Kubernetes [14] и узнать IP адрес контроллера Ingress, подключенного к нему [15], не выходя из GitLab.

Приглашаем на наши встречи! [16]

GitLab MVP badge

(MVP [17]) этого месяца — Takuya Noguchi [18]

Takuya провел редизайн страницы branches [19] и добавил разделение веток на активные и неактивные, благодаря чему искать нужные, особенно в больших проектах, стало проще.

Спасибо, Takuya! В знак благодарности мы отправили Takuya фирменные кофту, носки и тануки ручной работы с символикой GitLab.

GitLab CI/CD для внешних репозиториев (PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

В 2011 году GitLab стартовал исключительно как репозиторий кода. С тех пор он превратился в приложение для полноценного управления жизненным циклом DevOps, которое предоставляет возможности по тестированию, безопасности, пакетированию, развертыванию и мониторингу. При этом весь код вашего приложения по-прежнему хранится на внешнем репозитории.

Для использования GitLab CI/CD с репозиторием GitHub [6] создайте новый проект GitLab и выберите GitHub на вкладке CI/CD for external repo. После того, как вы добавите файл .gitlab-ci.yml в ваш репозиторий (или подключите Auto DevOps), GitLab будет автоматически запускать конвейеры и обновлять статусы коммитов в GitHub.

Также вы можете подключиться к любому Git-репозиторию по URL и настроить вебхуки статуса вручную. Например, если вы используете Bitbucket, здесь [20] вы можете почитать, как вручную настроить для него GitLab CI/CD.

В честь запуска этой функциональности мы предоставляем ее бесплатно, как часть плана GitLab.com Free, в течение года — до марта 2019.

GitLab CI/CD for external repos

Документация по CI/CD для внешних репозиториев [21]

Быстрое развертывание GitLab Runner на кластер Kubernetes (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

С помощью GitLab вы можете взаимодействовать с кластерами Kubernetes, а также с легкостью устанавливать приложения, которые ваш проект сможет использовать.

В GitLab 10.6 мы добавляем возможность развертывания GitLab Runner в один клик напрямую в ваш кластер, после чего он сможет автоматически запускать работы вашего проекта без какой-либо дополнительной настройки.

Документация по установке Runner для Kubernetes [22]

Quick deploy of GitLab Runner to Kubernetes cluster

Мониторинг кластеров Kubernetes (ULTIMATE, GOLD)

Kubernetes предоставляет разработчикам возможность с легкостью проводить развертывание и управление приложениями, не отвлекаясь на вопросы о том, как и откуда запускается их код. Однако, при этом необходимо отслеживать общую вместимость кластеров и балансировать между эффективным использованием памяти и оставлением пространства для роста.

GitLab 10.6 упрощает эту задачу: как используемые на текущий момент, так и все доступные вычислительные ресурсы подключенного кластера теперь отображаются напрямую. Например, если на досках развертывания [23] отображается под, который не может запуститься, пользователи теперь смогут проверить метрики кластера и понять, были ли израсходованы все его ресурсы.

Документация по мониторингу кластеров Kubernetes [24]

Kubernetes cluster monitoring

IP адрес Ingress на странице кластера Kubernetes (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

В GitLab 10.2 мы добавили возможность установки Ingress [25] на кластер Kubernetes. После установки Ingress предоставляет публичный IP адрес, который можно использовать для внешнего доступа к развернутым приложениям.

В GitLab 10.6 этот адрес отображается напрямую на странице Kubernetes, так что вы можете использовать его при настройке домена для доступа к вашим приложениям из интернета.

Документация по IP адресу Ingress для кластеров Kubernetes [26]

Ingress IP address on Kubernetes cluster page

Сопровождающие исходного проекта могут пушить в форк (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Распределение рабочего процесса по форкам — частое явление в проектах с открытым исходным кодом, таких как GitLab; при этом мерж-реквесты отправляются из форка в исходный проект.

Теперь сопровождающие (maintainers) исходного проекта могут напрямую вносить небольшие фиксы и делать перебазирование перед мержем, не тратя время на ненужные запросы-подтверждения, как раньше. Само собой, никто не ограничивает размер фиксов, и большие коммиты добавлять тоже можно.

Ранее это было невозможно, поскольку сопровождающие исходного проекта не получали автоматических разрешений на запись в форки. Теперь же, если у автора мерж-реквеста есть доступ на запись в исходную ветку, он может выдать сопровождающим право на запись в ветку мерж-реквеста, выбрав Allow edits from maintainers на его странице. После подключения этой опции пользователи с разрешением на мерж ветки исходного проекта смогут проводить пуш в ветку мерж-реквеста. По умолчанию эта опция отключена.

Документация по правам доступа для сопровождающих [27]

Maintainers can push to MR from fork

Единая доска задач для группы в Libre и Free (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Групповые доски задач GitLab предоставляют единый интерфейс для управления задачами всех проектов одной группы. Все задачи всех проектов группы отображаются в одном месте, и вы можете перемещать их между этапами рабочего процесса.

Ранее эта функциональность была доступна только для планов Premium и Ultimate, и пользователи с такими подписками высоко оценили ее возможности. Пользователи Libre также выразили интерес к единой доске задач, так что в данном релизе мы добавляем ее и для них. В инстансах Libre и Starter теперь есть единая доска задач для каждой группы, тогда как единые доски задач для множества групп остаются привилегией Premium и Ultimate. Мы думаем, что это нововведение повысит привлекательность планов Libre и GitLab.com Free и надеемся получить обратную связь по данной функциональности от еще большего количества пользователей.

Документация по доскам задач [28]

Single Group Issue Board in Libre and Free

Другие улучшения GitLab 10.6

Отчеты безопасности SAST на страницах конвейеров (ULTIMATE, GOLD)

Несколько месяцев назад мы добавили статическое тестирование безопасности приложений (SAST) [29]. Эта система автоматически ищет уязвимости во всех изменениях кода в мерж-реквесте, благодаря чему вы можете их исправить перед мержем и предотвратить их попадание в master и итоговый релиз.

Начиная с данного релиза полноценный отчет работы SAST отображается на странице CI/CD > Pipelines, что еще больше облегчает отслеживание рисков безопасности в конвейерах для разработчиков, инженеров и других заинтересованных лиц.

SAST security report on pipelines view

Документация по отчетам безопасности SAST на страницах конвейеров [30]

SAST для приложений Java-Maven (ULTIMATE, GOLD)

Ранее в GitLab уже была добавлена поддержка популярных языков программирования, таких как Ruby, Python и JavaScript, как часть системы статического тестирования безопасности приложений (SAST).

В GitLab 10.6 мы добавляем поддержку Maven — довольно известного инструмента автоматизации для Java. Если вы уже пользуетесь SAST, вам не нужно ничего менять и перенастраивать — новые проверки появятся автоматически.

Полный лист поддерживаемых языков и фреймворков можно посмотреть здесь [31].

SAST for Java-Maven apps

Документация по SAST [29]

Внешний контроль авторизации (PREMIUM, ULTIMATE, SILVER, GOLD)

В некоторых управляемых окружениях системы классификации проектов используются для контроля доступа к ним. Теперь их можно использовать и в GitLab.

При включении этой функции администраторы смогут настраивать каждый проект так, что, дополнительно к контролю доступа самого GitLab, для доступа в проект потребуется дополнительное подтверждение от внешнего сервиса со своей авторизацией.

Документация о внешнем контроле авторизации [32]

Поддержка идентификации в DAST (ULTIMATE, GOLD)

Несколько релизов назад мы выпустили динамическое тестирование безопасности приложений Dynamic Application Security Testing (DAST) [33]. DAST позволяет динамически и автоматически проверять приложения на уязвимости безопасности в процессе разработки при помощи Review App [34] — до мержа кода в master и релиза.

Раньше эта функциональность была доступна только для публичных страниц. В этом релизе вы можете определить учетные данные, которые DAST будет использовать для идентификации в вашем веб-приложении для симуляции злоумышленника, у которого есть доступ к разделам, доступным только авторизованным пользователям.

Authentication support for DAST

Документация о поддержке идентификации в DAST [33]

Внешние настройки CI/CD в Starter и Bronze (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)

В GitLab 10.5 мы ввели возможность добавления внешних файлов конфигурации CI/CD [35] в основной .gitlab-ci.yml вашего проекта. Эта возможность была доступна только для пользователей плана Premium в Gitlab на собственном сервере и для пользователей Silver на GitLab.com.

Мы получили много обратной связи от пользователей: очень многие просили добавить такую возможность в остальные подписки. Мы пошли навстречу и рады сообщить, что эта функциональность теперь доступна пользователям Starter на собственном сервере и Bronze — на GitLab.com. Возможность централизованно контролировать настройку конвейера и переиспользовать одно и то же определение в нескольких проектах очень ценна как для больших корпораций, так и для бизнесов меньшего размера.

Заметим, что согласно нашей политике об открытом исходном коде публичные проекты на Free GitLab.com имеют возможности, эквивалентные Gold подписке. Поэтому данная функциональность также будет доступна и для этих проектов.

Документация о включении дополнительных файлов конфигурации CI/CD [36]

Обзор веток (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Проекты и команды растут, появляется все больше веток. С новой функциональностью обзора веток и фильтрацией списков веток стало гораздо проще найти нужную. Если за последние 3 месяца в ветку кто-то коммитил, она будет считаться активной.

Спасибо, Takuya Noguchi [18], за твой вклад [37]!

Branches overview

Документация по веткам [38]

Переход к внешнему трекеру задач (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Некоторые команды используют GitLab вместе с внешним трекером задач. Например, интеграция задач Jira с мерж-реквестами GitLab — очень популярная тема для многих команд. В этом случае задачи в GitLab по-прежнему функционируют нормально, и команды могут использовать их, если им в определенный момент потребуется сделать что-то полностью в GitLab.

Чтобы упростить эту интеграцию, мы добавили в навигацию по проекту новую ссылку. Если у вас уже есть настроенный внешний трекер (Redmine, Jira, Bugzilla или Собственный Настроенный Трекер), в навигации по проекту будет отдельная ссылка, по которой вы сможете быстро перейти в эту внешнюю систему. Ссылка на задачу в GitLab остается там же, где и была, так что при желании вы сможете использовать оба трекера одновременно.

Navigate to external issue tracker

Документация о внешнем трекере задач [39]

API импорта/экспорта проектов (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Проекты — очень важная часть GitLab, так как в них хранится вся ценная работа (включа репозиторий Git) и данные по организации работы команды (включая задачи и мерж-реквесты). С помощью существующего экспорта и импорта проектов GitLab можно легко переносить проекты между инстансами и внутри них.

До сих пор это приходилось делать вручную. В данном релизе экспорт и импорт проектов стали частью API GitLab: когда вам понадобится перемещать проекты внутри или между инстансами, вы сможете создавать более гибкие рабочие процессы и автоматизировать их.

За эту фичу [40] спасибо Travis Miller [41]!

Документация по API экспорта и импорта проектов [42]

GitLab ChatOps (альфа) (ULTIMATE, GOLD)

Во многих организациях большая часть общения, включая рабочие процессы и обсуждения аварийных ситуаций, перемещается в чаты. Также в командах часто имеется определенный набор команд для проверки состояния окружения или для выполнения рутинных действий.

В GitLab 10.6 мы хотели упростить автоматизацию этих рутинных действий, а также добавить их прямо в Slack. Для начала нужно добавить работу в YML GitLab CI и подключить интеграцию со слэш-командами Slack. Пользователи затем смогут писать слэш-команды, название работы CI и необходимые аргументы — работа запустится на runner, а результат вернется в Slack.

Документация по GitLab ChatOps [43]

Метки в эпиках (ULTIMATE, GOLD)

В этом релизе мы добавили новую эффективную интерфейсную возможность: задачи и мерж-реквесты GitLab теперь поддерживают метки. За счет этого управлять ими становится легче: вы можете настроить управление точно под нужды своего проекта.

Вы можете назначать групповые метки в боковом меню эпика — так же, как для задач и мерж-реквестов. Кроме того, вы можете сортировать список эпиков группы по меткам (снова по аналогии с задачами и мерж-реквестами — опытные пользователи GitLab быстро узнают эту функциональность). Это позволит легко смешивать и сопоставлять эпики с разными категориями, предлагаемыми в меню поиска и фильтрации.

Labels in Epics

Документация об эпиках [44]

API эпиков (ULTIMATE, GOLD)

Вместе с поддержкой меток, упомянутой выше [45], мы добавили поддержку API для эпиков. Вы можете получить список эпиков по определенным параметрам поиска и фильтрации в поисковой строке на странице эпиков в веб-интерфейсе. Сюда входит поиск эпика по названию или описанию, фильтр по автору и меткам, а также по дате создания или дате обновления.

Документация об API эпиков [46]

API утверждения мерж-реквестов (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)

До этого релиза возможности API утверждения мерж-реквестов ограничивались утверждением или не-утверждением мерж-реквеста. В этом релизе появилась возможность полностью настраивать утверждение на уровне проекта или на уровне мерж-реквеста. Функционально получилось то же самое, что и в веб-интерфейсе GitLab.

С помощью API утверждений команды смогут проводить более детальное ревью кода и настраивать процессы утверждения исходя из своих потребностей. Вы можете использовать API для определения того, какие процессы будут происходить в веб-интерфейсе GitLab, а какие — вне его.

Документация об API утверждений мерж-реквестов [47]

API обсуждений (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

В этом релизе мы добавили поддержку API в обсуждения задач, сниппетов и эпиков. Это значит, что все комментарии и обсуждения задач теперь доступны через API. Команды могут использовать API для получения более гибких, настраиваемых и специфических рабочих процессов, которые обычно не используются в основном веб-интерфейсе GitLab.

Поддержка API для комментариев и обсуждений мерж-реквестов выйдет в следующем релизе [48].

Документация об API обсуждений [49]

Поддержка филиппинского, индонезийского и турецкого языков (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Мы продолжаем работать над локализацией GitLab: в этом релизе мы добавили поддержку филиппинского, индонезийского и турецкого языков.

Также мы экстернализировали строки в заблокированные файлы репозитория (Repository Locked Files) для версии Premium и выше: теперь наши переводчики смогут добавлять больше языков в большее количество строк в GitLab.

Если вы тоже хотите поучаствовать в переводе GitLab, присоединяйтесь к нашему сообществу переводчиков [50].

Документация о локализации GitLab [50]


Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 10.6 released with CI/CD for GitHub and deeper Kubernetes integration [51].

Над переводом с английского работали rishavant [52] и sgnl_05 [53].

Автор: aionin

Источник [54]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/276798

Ссылки в тексте:

[1] разработчикам: http://blog.thehumangeo.com/gitlab-autoscale-runners.html

[2] аналитикам: https://about.gitlab.com/2017/09/27/gitlab-leader-continuous-integration-forrester-wave/

[3] компаниям: https://about.gitlab.com/2017/06/07/continous-integration-ticketmaster/

[4] единого приложения для всего цикла разработки: https://about.gitlab.com/handbook/product/single-application/

[5] взаимодействию с другими приложениями: https://about.gitlab.com/direction/#plays-well-with-others

[6] интеграцию CI/CD с GitHub: https://about.gitlab.com/features/github

[7] интеграции CI/CD с любыми другими внешними репозиториями: #gitlab-cicd-dlya-vneshnih-repozitoriev-premium-ultimate-free-bronze-silver-gold

[8] GitLab.com: https://GitLab.com

[9] добавления собственных Runner’ов: https://docs.gitlab.com/ee/ci/runners/README.html#registering-a-specific-runner

[10] приобрели Gemnasium: https://about.gitlab.com/press/releases/2018-01-30-gemnasium-acquisition.html

[11] поставляем функциональность Gemnasium: https://about.gitlab.com/2018/02/22/gitlab-10-5-released/#gemnasium-dependency-checks

[12] интеграцию с кластерами Kubernetes и GKE: https://about.gitlab.com/2018/01/22/gitlab-10-4-released/#gitlab-clusters-now-generally-available

[13] развертывание GitLab Runner в подключенный кластер Kubernetes: #bystroe-razvertyvanie-gitlab-runner-na-klaster-kubernetes-libre-starter-premium-ultimate-free-bronze-silver-gold

[14] мониторить ваш кластер Kubernetes: #monitoring-klasterov-kubernetes-ultimate-gold

[15] узнать IP адрес контроллера Ingress, подключенного к нему: #ip-adres-ingress-na-stranice-klastera-kubernetes-libre-starter-premium-ultimate-free-bronze-silver-gold

[16] Приглашаем на наши встречи!: https://about.gitlab.com/events/

[17] MVP: https://about.gitlab.com/mvp/

[18] Takuya Noguchi: https://gitlab.com/tnir

[19] провел редизайн страницы branches: #obzor-vetok-libre-starter-premium-ultimate-free-bronze-silver-gold

[20] здесь: https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/bitbucket_integration.html

[21] Документация по CI/CD для внешних репозиториев: https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos

[22] Документация по установке Runner для Kubernetes: https://docs.gitlab.com/ee/user/project/clusters/#installing-applications

[23] досках развертывания: https://gitlab.com/gitlab-org/gitlab-ee/issues/5029

[24] Документация по мониторингу кластеров Kubernetes: https://docs.gitlab.com/ee/user/project/clusters/#monitoring-your-kubernetes-cluster

[25] установки Ingress: https://about.gitlab.com/2017/11/22/gitlab-10-2-released/#one-click-install-for-helm-and-ingress-on-kubernetes

[26] Документация по IP адресу Ingress для кластеров Kubernetes: https://docs.gitlab.com/ee/user/project/clusters/#getting-the-external-ip-address

[27] Документация по правам доступа для сопровождающих: https://docs.gitlab.com/ee/user/project/merge_requests/maintainer_access.html

[28] Документация по доскам задач: https://docs.gitlab.com/ee/user/project/issue_board.html

[29] статическое тестирование безопасности приложений (SAST): https://docs.gitlab.com/ee/topics/autodevops/#auto-sast

[30] Документация по отчетам безопасности SAST на страницах конвейеров: https://docs.gitlab.com/ee/user/project/merge_requests/sast.html#security-report-under-pipelines

[31] здесь: https://docs.gitlab.com/ee/user/project/merge_requests/sast.html#supported-languages-and-frameworks

[32] Документация о внешнем контроле авторизации: https://docs.gitlab.com/ee/user/admin_area/settings/external_authorization.html

[33] Dynamic Application Security Testing (DAST): https://docs.gitlab.com/ee/ci/examples/dast.html

[34] Review App: https://docs.gitlab.com/ee/ci/review_apps/index.html

[35] добавления внешних файлов конфигурации CI/CD: https://about.gitlab.com/2018/02/22/gitlab-10-5-released/#include-external-files-in-cicd-pipeline-definition

[36] Документация о включении дополнительных файлов конфигурации CI/CD: https://docs.gitlab.com/ee/ci/yaml/#include

[37] вклад: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15402

[38] Документация по веткам: https://docs.gitlab.com/ee/user/project/repository/branches/index.html

[39] Документация о внешнем трекере задач: https://docs.gitlab.com/ee/integration/external-issue-tracker.html

[40] фичу: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15860

[41] Travis Miller: https://gitlab.com/travismiller

[42] Документация по API экспорта и импорта проектов: https://docs.gitlab.com/ee/api/project_import_export.html

[43] Документация по GitLab ChatOps: https://docs.gitlab.com/ee/ci/chatops/

[44] Документация об эпиках: https://docs.gitlab.com/ee/user/group/epics/

[45] выше: #metki-v-epikah-ultimate-gold

[46] Документация об API эпиков: https://docs.gitlab.com/ee/api/epics.html

[47] Документация об API утверждений мерж-реквестов: https://docs.gitlab.com/ee/api/merge_request_approvals.html

[48] следующем релизе: https://gitlab.com/gitlab-org/gitlab-ce/issues/20901

[49] Документация об API обсуждений: https://docs.gitlab.com/ee/api/discussions.html

[50] сообществу переводчиков: https://docs.gitlab.com/ee/development/i18n/index.html

[51] GitLab 10.6 released with CI/CD for GitHub and deeper Kubernetes integration: https://about.gitlab.com/2018/03/22/gitlab-10-6-released/

[52] rishavant: https://habrahabr.ru/users/rishavant/

[53] sgnl_05: https://habrahabr.ru/users/sgnl_05/

[54] Источник: https://habrahabr.ru/post/352644/?utm_campaign=352644