Web ide gitlab что такое

Обновлено: 07.07.2024

Мы с вами уже говорили про Git и GitHub. В этой статье расскажем о том, что такое GitLab, как им пользоваться, какая настройка потребуется.

Возможности GitLab

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

Есть и другие возможности (функционал api, wiki страниц, доски задач и идей, отслеживание изменений, комментарии к проектам и прочие). Подробнее можно узнать из официальной документации.

GitLab и GitHub

Как известно, главный конкурент GitLab — это сервис GitHub. Появился он на три года раньше (в 2008), поэтому более популярен. Да что там говорить, GitHub сегодня — это сайт номер один по размещению open source-проектов. Они почти все на нём и размещаются.))) И у многих людей Git напрямую ассоциируется с сервисом GitHub.

Да, плюсов у GitHub много, но мы не будем сейчас сравнивать оба сервиса. Скажем только, что несмотря на повышенную популярность и огромнейшее комьюнити GitHub (26 млн. человек), наблюдается тенденция перехода крупных команд разработчиков на GitLab. Это происходит благодаря расширенным возможностям второго.

Как использовать GitLab? Настройка сервиса

1. Создание аккаунта

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

1-20219-e167bb.jpg

2-20219-704610.jpg

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

2. Создание репозитория

Для добавления проекта GitLab потребуется кликнуть по значку + , который находится в центре верхней панели. Далее нужно выбрать New Project:

3-20219-09cf9c.jpg

Также можно инициализировать репозиторий файлом README, поставив соответствующую галочку. Однако, если планируете залить файлы из уже существующего Git-репозитория, то не стоит этого делать.

4-20219-4ec324.jpg

Чтобы попасть на страницу репозитория, нажмите кнопку «Create repo». GitLab предложит первоначальный набор действий с целью проинициализировать ваш репозиторий. В итоге вы сможете создать файлы здесь либо загрузить их из своего ПК.

5-20219-645ff5.jpg

3. Загрузка файлов проекта

Теперь перейдём к созданию нового локального репозитория на ПК и загрузим содержимое на GitLab. Сначала создадим папку репозитория, назвав её, к примеру, test-repo. Теперь проинициализириуем в ней новый репозиторий, используя команду git:

Теперь создаём файл test.txt:

И фиксируем изменения:

6-20219-36f1e3.jpg

Сейчас давайте добавим наш удалённый репозиторий с GitLab к нашему локальному, выполнив следующую команду:

Потом отправим изменения в удалённый репозиторий:

7-20219-77dd91.jpg

4. SSH-ключи

При загрузке данных на GitLab требовалось ввести пароль и логин на сервере. Но есть и другой путь — SSH-ключи для авторизации. Для создания ключа выполните:

9-20219-a6403b.jpg

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

Потом возвращаемся GitLab-интерфейсу, кликаем по иконке профиля и выбираем настройки Settings:

10-20219-f288df.jpg

Потом ищем на левой панели пункт SSH Keys. Далее находим Key и вставляем в соответствующее поле скопированный ключ. Всё, осталось лишь сохранить изменения.

11-20219-e52041.jpg

Теперь возвращаемся в репозиторий, находим кнопку Clone (правый верхний угол) и кликаем по ней. Интересует адрес Clone with SSH:

12-20219-33689b.jpg

На этом настройка ssh в GitLab закончена. С этого момента все действия выполняются по SSH, поэтому вводить логин и пароль не потребуется.

5. Ветки репозитория

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

Ветки в GitLab-интерфейсе отображаются слева:

13-20219-832802.jpg

Для создания новой, кликаем по значку + и выбираем New branch. Также, если вы создадите ветку в git, а потом зальёте в репозиторий изменения, ветка появится там автоматически.

14-20219-faae30.jpg

Если ветку по умолчанию нужно изменить, открываем настройки репозитория (Settings -> Repository), где выбираем нужную ветку в разделе Default branch:

15-20219-d78f21.jpg

5. Слияние веток

Иногда возникает необходимость выполнить слияние веток. Для этого используют Merge request gitlab — запросы слияния. Продемонстрируем это на ветке new-feature, где создадим файл new-feature с текстом:

Если мы после этого перейдём в новую ветвь с помощью интерфейса GitLab, мы увидим появившуюся кнопку Create merge request. Естественно, нажимаем:

16-20219-0ae504.jpg

Тут пишем описание Merge Request, выбираем ветку-цель и ветку-источник. Кроме того, можно выбрать пользователя, который получит уведомление о созданном запросе.

Теперь запрос на слияние следует одобрить. Посмотреть изменения можно через терминал или, нажав кнопку Open IDE. Чтобы слить ветки, осталось нажать кнопку Merge.

7. Добавление пользователей

В GitLab можно работать с командой, добавляя неограниченное число разработчиков.

Настройка проста: — открываем Settings ->Members; — в поле Select members to invite вводим никнеймы либо адреса электронной почты тех, кого приглашаем; — в поле Choose a role permission выбираем уровень их доступа; — нажимаем Add to project.

8. Удаление проекта

Настройки для удаления проекта с Gitlab: — открываем Settings -> General -> Advanced; — выбираем и нажимаем Remove Project внизу страницы; — вводим имя проекта, который нужно удалить.

Послесловие

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

Как работать с GitLab

Сегодня поговорим об азах взаимодействия с одной из самых популярных git-систем.

Что такое GitLab

Сейчас почти никто не пишет код в одиночку. Команды инженеров и разработчиков растут, как на дрожжах. Работая в группах, программисты используют системы управления исходным кодом на базе git, специального инструмента, позволяющего хранить данные разрабатываемого проекта в сети и совместно редактировать его с учетом определенных правил и методик взаимодействия. Самый известный подобный сервис – GitHub. А GitLab – это его собрат, выполняющий те же функции, но устроенный несколько иначе.

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

Разница между GitLab и GitHub

Оба сервиса – системы управления репозиториями на базе git. Принципиальных отличий между ними нет. GitHub появился раньше и стал чуть ли не синонимом git, поэтому он популярнее и для многих является единственной системой для управления репозиториями.

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

В связи с растущей популярностью GitLab я и решил познакомить вас с этим сервисом поближе.

Инструкция по использованию GitLab

Перед началом работы с сервисом, нужно создать учетную запись. Процедура эта весьма тривиальна:

Заходим на официальный сайт GitLab.

В верхнем левом углу находим кнопку Login и жмем по ней.

Кнопка регистрации в GitLab

Через пару секунд перед вам откроется форма входа в систему, а под ней будет ссылка на форму регистрации (Register now). Переходим по ней.

Заполняем данные для регистрации (классические данные: адрес электронной почты, пароль, логин и т.п.). Жмем на кнопку Register.

Учетная запись готова. Теперь можно переходить непосредственно к знакомству с GitLab.

Как создать проект

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

Экран создания новой группы

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

После формирования проекта можно переходить непосредственно к созданию репозиториев, загрузке программ в GitLab и т.п.

Как создать репозиторий

Чтобы воспользоваться репозиторием, нужно создать новый проект:

Кнопка создания нового репозитория в GitLab

Кликаем по иконке со значком + в панели управления.

Пункт "Создать новый проект"

Выбираем пункт New project/repository.

Затем кликаем по Create blank project.

Указываем его имя и другие запрашиваемые параметры (можно указать, публичным будет репо или приватным) и нажимаем на кнопку Create Project.

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

Как загрузить файлы сайта/приложения в GitLab

Тут есть 3 пути.

Первый – используем веб-интерфейс GitLab

На главной странице проекта ищем строку The repository for this project is empty, а под ней кнопку Upload File и нажимаем на нее.

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

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

Второй – используем командную строку

Тут все сложнее, но на самом GitLab опубликована короткая и доходчивая инструкция по подключению к сервису через командную строку, используя классический git-клиент.

Инструкция по работе с git

Третий – используем сторонний git-клиент

Существуют приложения в духе Tower и Sublime Merge, позволяющие управлять репозиториями, делать коммиты и пушить изменения в проекты при помощи удобного графического интерфейса. Можно подключиться к GitLab с помощью одной из таких программ.

Как добавить SSH-ключ для подключения к репозиторию

SSH-ключи можно использовать для авторизации в GitLab и для управления репозиториями по протоколу Secure Shell. Чтобы это сделать:

Интерфейс генератор SSH-ключей

Генерируем ключ с помощью команды ssh-keygen (вводим ее в терминал).

Папка для сохранения SSH-ключа

Генератор предложит сохранить получившийся ключ. Менять директорию, куда сохраняется ключ, необязательно.

Запрос на ввод пароля для SSH-ключа

Затем утилита попросит ввести пароль. Его тоже можно не вводить. Просто жмем на Enter.

В указанной на втором этапе папке появится файл с ключом в формате .pub. В нем лежит ключ. Нужно скопировать его.

Интерфейс для ввода SSH-ключей в GitLab

Возвращаемся на сайте GitLab. Открываем раздел SSH-keys, вставляем ключ в специально отведенное для этого поле и нажимаем на кнопку Add key.

Как работать с ветками

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

По умолчанию в GitLab доступна только одна ветка – master. Но ее чаще используют не для разработки, а для публикации готовых сборок проекта, которые нестрашно превратить в релиз для масс.

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

Как создавать ветки

Ветки – не уникальная для GitLab функция. Это часть git, поэтому, как и в случае с репозиториями, тут можно пойти тремя путями:

Кнопка создания дополнительной ветки в GitLab

На сайте GitLab в окне управления репозиторием нажать на кнопку + справа от названия ветки, а потом выбрать пункт New branch в выпадающем меню.

Можно создать новую ветку через git-клиент в терминале с помощью команды git checkout -b [название новой ветки].

Или воспользоваться аналогичной функций в используем графическом git-клиенте (Tower, Sublime Merge, GitFox и т.п.).

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

Мерджинг веток

Мерджинг (или объединение) веток – это механизм слияния двух наборов функций одной программы, позволяющий переносить функции из дополнительных веток в основную ветку разработки, где лежит приложение. Результат увидят еще и пользователи, а не только разработчики.

Запрос на объединение веток будет появляться на сайте GitLab каждый раз, когда вы будете вносить изменения в код одной или нескольких веток.

Выглядит это следующим образом:

Кнопка создания запроса на объединение веток

На сайте появляется большая синяя кнопка Create merge request. Кликаем по ней.

Затем рассказываем о своем запросе (поясняем, для чего он делается).

Указываем автор запроса в поле Assignee.

Указываем человека, который будет проверять запрос в поле Reviewer.

Потом указываем Milestone (если используете их).

И нажимаем на Create merge request.

Если с запросом все ок, то проверяющий нажмет на кнопку Merge, и весь код перекочует в основную ветку проекта (ну или ту, которую указал автор запроса).

Как добавлять пользователей в проект

К разработке своего приложения/сайта всегда можно привлечь людей со стороны:

Для этого кликаем по кнопке Project information в боковой панели GitLab.

Выбираем пункт Members.

В графу GitLab member or Email address вписываем ник GitLab-пользователя или его email-адрес.

Выбираем для него роль (гость, наблюдатель, разработчик).

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

Интерфейс добавления новых пользователей к репозиторию

А потом кликаем на Invite.

Если выбранный человек согласится присоединиться, то ваша команда расширится.

Как создавать баг-репорты

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

Речь идет о разделе Issues. Если возникла проблема, то нужно сообщить о ней тут. Для этого:

Открываем раздел Issues в боковой панели управления.

Кнопка создания нового issue

Затем нажимаем на кнопку New issue.

Даем имя обнаруженной проблеме, а затем подробно описываем ее в разделе Description.

Затем назначаем ответственного в пункте Assignee и срок, в течение которого нужно найти решение найденной проблемы.

Интерфейс создания нового issue

А потом нажимаем на кнопку Create issue.

Как удалить проект

Открываем настройки проекта и переходим во вкладку General.

Листаем ее до пункта Advanced и справа от него ищем кнопку Expand, которая откроет доступ к дополнительным параметрам.

Вновь пролистываем появившееся меню до упора вниз, пока не наткнемся на кнопку Delete project.

Нажимаем на нее и вписываем название проекта, чтобы его удалить.

Вместо заключения

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

GitLab может поддерживать два способа объединения веток:

  1. Локально слейте исходный код ветки с целевой веткой, а затем нажмите на целевую ветку.
  2. Отправьте исходную ветку на удаленный конец, затем инициируйте запрос на слияние в целевой ветке, указанной GitLab, и выполните операцию слияния для пользователя с разрешением Push целевой ветки, чтобы завершить слияние.

Другими словами, использование GitLab для проверки кода - это инициировать запрос на слияние в ссылке слияния ветки, а затем слить код с целевой веткой после завершения проверки кода.

3. Экологическая информация, применимая к этому руководству.

Хотя Code Review не обязательно должен выполняться вместе с IDE, мы должны поблагодарить JetBrains за разработку IDE, охватывающих почти все основные языки программирования.

Во-вторых, конфигурация GitLab Code Review.

1. Рабочий процесс проверки кода

image

  1. После подтверждения требований создайте ветку разработки из мастера.
  2. Разработчики создают свои собственные функциональные ветви из ветви разработки для разработки.
  3. Основная ветвь изменяется, и ее необходимо объединить из основной ветки в ветвь разработки. Вы можете регулярно проводить слияние.
  4. Перед тем, как функциональная ветвь будет объединена с соответствующей ветвью разработки, ее необходимо объединить из ветки разработки в ветвь функции.
  5. После того, как функциональная ветвь объединена с соответствующей веткой разработки, она передается в тестовую среду для тестирования.
  6. После того, как ветвь разработки проходит тест в тестовой среде, она объединяется с ветвью выпуска и передается в среду предварительного выпуска для тестирования.
  7. После того, как ветвь выпуска проверена в среде предварительного выпуска, она объединяется с основной веткой и передается в производственную среду для проверки.

Соглашение об именах филиалов:

Взяв в качестве примера приведенный выше рабочий процесс Git, разработчики разрабатывают в ветви Feature, а после завершения разработки объединяются с ветвью Develop для тестирования.

Тогда наиболее подходящим обзором кода будет ссылка, по которой ветка Feature объединена с веткой Develop.

image

2. Конфигурация репозитория GitLab

image

image

Новая ветка:
release(from master)
develop-test(from master)、
feature-ken-test(from develop-test)

Чтобы гарантировать, что ветвь разработки, ветвь выпуска и основная ветвь должны быть изменены способом слияния, нам необходимо ограничить разрешения на push и слияние

image

Здесь мы ограничиваем ветки. Все разработчики не имеют разрешения Push на ветку разработки, ветку выпуска и главную ветку. Они могут объединяться с соответствующей веткой только с помощью слияния, и только пользователи в группе сопровождающих (мастеров) имеют разрешение на слияние.

Три, пример обзора кода GitLab

Онлайн-модификация feature-ken-test Ветка README.md Документы, служащие основанием для Merge Request

image

Обновите строку контента здесь, затем Commit changes Вот и все.

Меню: запросы на слияние, затем щелкните: New Merge Request

image

Выбор исходной ветки: feature-ken-test
Выбор целевой ветви: develop-test
тогда: Compare branches and continue

image

Описание элемента операции / элемента заполнения:

Элемент действия / элемент заполнения Описание ken.io
Title Название, оставьте значение по умолчанию без особых требований
Description Описание, нужно четко описать изменившиеся требования, лучше всего приложить точки проверки кода
Assignee Назначенное лицо, назначенное лицо получит уведомление по электронной почте, которое не обязательно связано с разрешением на слияние. Это по-прежнему роль Сопровождающих (Мастеров) проекта, имеющая разрешение на слияние.
Milestone Веха, не выбирайте, если нет
Label Отметьте, если нет, оставьте это в покое
Approvers user Утверждающий / утверждающий должен быть членом группы проекта. Если утверждающий выбран, слияние должно быть одобрено утверждающим.
Approvers group Группа утверждающих, удобная для выбора нескольких утверждающих одновременно
Approvals required Минимальное количество утверждений. Если выбрано 3 утверждающих, а для параметра Требуются утверждения установлено значение 1, то требуется только 1 утверждающий.
Source branch Исходная ветвь, соответствующая выбору на предыдущем шаге, здесь в основном используется для подтверждения.
Target branch Целевая ветка, соответствующая выбору на предыдущем шаге, в основном используется здесь для подтверждения.

image

После создания запроса на слияние он перейдет на эту страницу, и назначенное лицо (исполнитель) получит электронное письмо с напоминанием. Если для проведения проверки кода требуется несколько человек, просто отправьте ссылку на страницу другим участникам проекта. Члены проекта могут просматривать изменения и комментировать, но в соответствии с предыдущей конфигурацией только члены роли Maintainers (Masters) имеют разрешение на слияние.

image

На вкладке «Изменения» мы можем увидеть все изменения. Переместите курсор на номер строки, и появится кнопка комментария. Мы можем нажать кнопку комментария, чтобы начать комментарий. Этот комментарий виден участникам проекта, и каждый может обсудить его в области обсуждения. Инициатор финального обсуждения имеет право пометить обсуждение как решенное.

image

Когда все проблемы решены (если утверждающий выбран, требуется также утверждение), члены Сопровождающих (Мастера) нажимают «Объединить», чтобы завершить объединение.

image

После завершения слияния вы можете выбрать «Удалить исходную ветвь» и другие операции.

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

В-четвертых, введение в использование плагина IDE Merge Request.

Я представил создание запроса на слияние через веб-страницу GitLab и начало проверки кода, но как разработчику удобнее использовать его в сочетании с IDE. GitLab предоставляет соответствующие API. Пока мы создаем соответствующий токен, плагин IDE можно использовать для доступа к GitLab. , Чтобы использовать IDE вместо работы на веб-странице.

1、GitLab Access Token

Меню: Настройки пользователя->
Токены доступа Войдите на страницу добавления токена доступа

image

вещь Описание
Name Имя, вы можете прийти по своему вкусу
Expires at Срок годности, вы можете выбрать самый дальний - 10 лет спустя, вы можете заполнить в соответствии с вашими потребностями
Scopes Сфера, выбора api здесь достаточно

После создания временно сохраните токен. Поскольку после обновления или повторного открытия страницы токен больше не отображается.

2. Использование плагина JetBrains IDE GitLab

JetBrains предоставляет множество IDE: IntelliJ IDEA, PyCharm, PhpStorm, WebStorm, RubyMide, AppCode, CLion, GoLand, DataGrip, Rider, Android Studio и т. Д. Плагины GitLab применимы, если нет аварии.

Настройки-> Плагины войдите на страницу управления плагинами

image

Нажмите на Browse repositories И ищем gitlab

image

Установите Gitlab Projects и Gitlab Integration, затем перезапустите IDE, чтобы вступили в силу.

Искать в интерфейсе настроек GitLab Settings

image

Введите URL-адрес сервера GitLab, токен доступа и нажмите Add New One Завершить добавление
Если это приватизированное развертывание GitLab, просто измените имя домена или IP + порт на противоположное.

Клонируйте ветки проекта feature-ken-test в локальную папку и отправляйте в исходную точку после изменения.
Затем выберите в меню: VCS-> Git-> Git Lab-> Create Merge Request.

image

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

Если есть конфликт, пожалуйста, сначала слейте код целевой ветки с текущей веткой

Члены проекта выбирают из меню: VCS-> Git-> Git Lab-> List Merge Request.

image

Здесь вы можете увидеть ожидающий запрос на слияние, выберите его и нажмите Code Review Вы можете вызвать панель управления Merge Request

image

Описание интерфейса Diff:

image

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

image

image

В интерфейсе комментариев вы можете просмотреть указанную информацию о комментарии Merge Reuqest или добавить комментарии, дважды щелкнув по нему, чтобы просмотреть все содержимое комментария.
Однако не поддерживается инициировать обсуждение в строке кода, отмечать обсуждение как решенное и т. Д.

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

Что такое GitLab, как и для чего он используется

GitLab — это инструмент для хранения и управления репозиториями Git. Он дает возможность выполнять совместную разработку силами нескольких команд, применять обновления кода и откатывать изменения, если это необходимо.

Решение может работать на собственном сервере или в облаке. Для обоих случаев существуют полностью бесплатная версия и платные тарифы, стоимость которых зависит от функционала (подробнее о тарифах GitLab ниже).

В этой статье мы рассмотрим установку бесплатной версии GitLab Community Edition (GitLab CE) на сервер с Ubuntu 20.04 LTS x86_64, сравним GitLab с GitHub, разберемся с возможностями платных и бесплатных версий GitLab и расскажем как пользоваться GitLab. Но для начала подготовим выделенный сервер для разворачивания демо-стенда.


В нашем примере для GitLab используется выделенный сервер фиксированной конфигурации EL09-SSD с процессором Intel Xeon E-2236, 16 Гб оперативной памяти, двух SSD-дисков по 480 Гб и операционной системой Ubuntu 20.04 LTS 64-bit.


После выбора сервера нажимаем кнопку Оплатить сейчас и ожидаем готовности сервера.


Примерно через 2 минуты физический сервер будет готов, а мы пока расскажем о возможностях Gitlab.

Возможности GitLab

Возможности GitLab делятся на следующие категории:

  • управление (Manage),
  • планирование (Plan),
  • создание (Create),
  • проверка (Verify),
  • упаковка (Package),
  • безопасность (Secure),
  • релизы (Release),
  • конфигурирование (Configure),
  • мониторинг (Monitoring),
  • защита (Defend).

Мы расскажем про основные в каждой категории.

Управление

  • Аутентификация и авторизация. Двухфакторная аутентификация, интеграция с пользовательскими каталогами (AD/LDAP), гранулярный доступ к объектам в GitLab, поддержка токенов и SSO.
  • Аналитика. Аналитика продуктивности разработчиков, трекинг выполнения задач группами пользователей.

Планирование

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

Создание

  • Управление исходным кодом. График коммитов, запросы на слияния веток разработки, интеграция с Jira.
  • Веб-консоль для редактирования кода. Веб-представление кода в интерфейсе, редактирование кода, синхронизация файлов с исходным кодом.

Проверка

  • Поддержка процесса Continuous Integration (CI). Встроенные инструменты CI/CD, интеграция с Github, просмотр пайплайнов разработки, онлайн-визуализация HTML-артефактов.
  • Проверка качества кода и тестирование. Отчеты по качеству кода, юнит-тестам, нагрузочное тестирование, тесты на доступность и юзабилити.

Упаковка

Безопасность

  • Поддержка SAST и DAST. Работа с Static Application Security Testing и Dynamic Application Security Testing включая возможности отчетности.
  • Сканирование зависимостей и управление уязвимостями. Gitlab поддерживает автоматизированное выявление зависимостей в коде и позволяет строить отчеты по возможным уязвимостям.

Релизы

  • Поддержка процесса Continuous Delivery (CD). Возможность запуска CI/CD в различных окружениях (Windows, Mac, Linux), поддержка канареечных релизов, обеспечение безопасности пайплайнов.
  • Оркестрация релизов. Отслеживание релизов, ассоциация релизов с этапами, управление доступом к защищенным окружениям.

Конфигурирование

  • Управление Kubernetes. Поддержка работы с несколькими кластерами Kubernetes, разворачивание в кластере Kubernetes, управление переменными в зависимости от окружения.
  • ChatOps и бессерверные вычисления. Разворачивание и другие операции из чата и поддержка выполнения функций через Knative.

Мониторинг

  • Метрики. Мониторинг производительности приложений, кластеров kubernetes и самого Gitlab с возможностью отправки уведомлений.
  • Управление инцидентами и логирование. Автоматическое создание инцидентов в случае превышения порогов и отправка логов во внешние системы.

Защита

  • Web Application Firewall и безопасность контейнеров. Блокировка атак на веб-интерфейс и отслеживание жизненного цикла контейнеров.
  • Сетевая безопасность. Поддержка микросегментации контейнеров для изоляции потенциально опасных контейнеров и применение политик безопасности.

Полный список возможностей приведен на сайте GitLab. Там же можно узнать подробнее о каждой.

Как установить и настроить GitLab на Ubuntu

Пока вы узнавали о возможностях GitLab, сервер успешно установлен и готов к работе. Подключаемся по SSH к серверу, переходим в директорию /tmp и загружаем установочный скрипт репозиториев GitLab:

После загрузки скрипта, он необходимо добавить права на его исполнение:

Теперь скрипт готов к исполнению и можно его запускать:

После установки репозитория, можно запускать менеджер пакетов apt и начинать установку GitLab:


Для доступа к GitLab через веб-интерфейс, его необходимо настроить. Для этого откроем для редактирования конфигурации в файле /etc/gitlab/gitlab.rb и укажем переменной external_url в качестве значения URL-адрес сервера.

В нашем демо вместо имени используется IP-адрес.


Теперь, чтобы новая конфигурация вступила в силу, необходимо выполнить реконфигурацию GitLab:

После окончания процесса конфигурации, откроется интерфейс GitLab и запрос на изменения пароля администратора.


После изменения пароля необходимо выполнить вход в GitLab:


GitLab полностью готов к работе и даже имеет тестовый проект.


После внесения изменений в конфигурацию, выполним реконфигурацию GitLab:

Иногда, при попытке доступа через веб-интерфейс, GitLab возвращает ошибку 502. Причины могут быть разные, но основные это: нехватка оперативной памяти, остановка службы gitlab-workhorse и изменение прав доступа к файлу /var/opt/gitlab/gitlab-workhorse/socket. В первом случае проблему решит добавление оперативной памяти, во втором перезагрузка сервисов GitLab, а в третьем предоставление сервису nginx доступа к файлу.

Как работать с GitLab

Чтобы упростить работу с репозиториями из командной строки, необходимо добавить собственные ssh-ключи в GitLab. Генерируем пару ssh-ключей:

Следующий шаг — вывод содержимого публичного ключа и его копирование в буфер обмена:

В интерфейсе GitLab перейдем в раздел Settings:


Далее в раздел SSH Keys, где нужно вставить скопированный ключ. После этого можно нажать Add key.


Появится следующий экран:


На этом настройка к репозиториям через SSH-ключ завершена и пришло время создать новый проект. Для этого достаточно нажать на + в центральной части экрана и далее на New project.


Проекту нужно присвоить имя, а также выбрать тип проекта:

  • приватный (Private),
  • внутренний (Internal),
  • публичный (Public).

В первом случае проект будет доступен только вам, во втором всем пользователям данной инсталляции GitLab, в третьем случаем всем подряд и без авторизации.

Нажимаем на кнопку Create project:


После создания проекта можно перейти к его настройке. Например, на представлении Members в проект можно пригласить новых пользователей с различными ролями: Guest, Reporter, Developer, Maintainer:


Основы GitLab — это работа с репозиториями. Теперь загрузим в этот проект имеющийся на рабочей станции git-репозиторий. Для начала добавим ссылку на удаленный репозиторий:

Теперь загрузим репозиторий в GitLab:

Теперь через веб-интерфейс GitLab можно просмотреть исходный код локального репозитория:


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

Другой вариант загрузки — через веб-интерфейс. Для этого на странице проекта необходимо нажать кнопку ↓ и выбрать формат загружаемого архива:


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

Чтобы создать новую ветку, достаточно в выпадающем меню рядом с символом + нажать на пункт меню New branch:


Новую ветку также можно создать в локальном репозитории Git и затем загрузить её в GitLab. В веб-интерфейсе появится соответствующая запись о новой ветке.

Мы создали в проекте новую ветку development. В меню Settings — Repository можно выбрать ветку, используемую по умолчанию. После выбора нужно нажать на кнопку Save changes.


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

Создадим новый файл в репозитории и запишем туда произвольный текст:

Добавим этот файл к репозиторию:

Выполним коммит с комментарием:

И, наконец, загрузим новую ветку в GitLab:

Теперь можно проверить наличие новой ветки staging в интерфейсе GitLab. Перейдем в раздел Repository — Branches и обнаружим созданную ветку. Если перейти в нее, там будет созданный на предыдущих шагах файл new-staging.txt.


Перейдем в эту ветку и нажмем кнопку Create merge request:


Здесь нужно указать название слияния, его описание и, при необходимости, выбрать опцию уведомления заинтересованных пользователей. В нижней части этого экрана нужно нажать кнопку Submit merge request:


На следующем экране можно опционально нажать Approve, а затем нажать Merge:



Слияние веток репозитория выполнено.

Чем отличаются GitLab и GitHub

На специальной странице GitLab есть целая таблица сравнения в разрезе тех возможностей, о которых мы рассказывали в начале статьи. Ко всему этому можно добавить, что GitHub появился на 3 года раньше GitLab и является неким стандартом хранения репозиториев решений с открытым исходным кодом. А еще GitHub — полностью облачное решение, GitLab же может работать на локальном сервере или в облаке.


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

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

Какие существуют версии и тарифы GitLab

GitLab имеет две версии — Community Edition (CE) и Enterprise Edition (EE). У первой (именно ее мы устанавливали в этой статье) полностью открытый исходный код, а вторая построена на базе первой, но имеет дополнительные функции, код которых, увы, не открыт для всех желающих. Версия EE также бесплатная в базовой комплектации и производитель рекомендует использовать именно её, если планируется дальнейший переход на платные тарифы.

Линейка тарифов представлена на скриншоте ниже. Цена за пользователя зависит от тех функций, которые включены в подписку.


Ключевой особенностью подписок уровня Premium и Ultimate является поддержка производителя в режиме 24/7. По этой ссылке можно получить полное представление о возможностях каждой из подписок.

Заключение

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

Читайте также: