Заявка на услуги DST
Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.
Рассказываем про сервис GitLab: для чего он нужен, как им пользоваться, какие команды у него есть и как быстро создать свой проект. И, конечно же, подробно сравниваем с главным конкурентом — GitHub.
Что такое GitLab и зачем он нужен
GitLab — сервис для хранения и управления Git-репозиториями. Как и его более известный конкурент, GitHub, он значительно облегчает коллективный труд разработчиков, позволяя им писать и редактировать код, а также его тестировать и развертывать без лишних проблем.
Работать с GitLab можно по-разному: как через командную строку, Web IDE (встроенный IDE для работы в браузере), так и через сторонние Git-клиенты. Скажем сразу, правильного способа нет: каждый работает, как ему удобно, в зависимости от задач и доступных устройств.
GitLab vs GitHub
Существенных различий между GitLab и GitHub на самом деле практически нет. Разве что:
GitLab — проект с открытым исходным кодом, поэтому сообщество может улучшать платформу. На GitHub эта возможность доступна только разработчикам.
С 2018 года владельцем GitHub является компания Microsoft, что, учитывая репутацию этого гиганта, было воспринято сообществом неоднозначно. Тем не менее популярность GitHub выше, чем у GitLab: у платформы не было конкурентов с 2008 года. О GitLab тогда еще мало кто знал — он появился только в 2011 году, а активно развиваться начал далеко не сразу.
Что выбрать начинающему разработчику?
Оба сервиса хорошо справляются с большинством задач разработки, однако:
GitLab лучше приспособлен для хранения приватного контента, так как это опенсорсный проект, позволяющий поднять собственный сервер. Поэтому он подойдет командам разработчиков и компаниям с ограниченным бюджетом, которые не хотят открывать свой код общественности. Также GitLab удобен для создания частного репозитория, в котором независимый разработчик может хранить свой контент.
GitHub идеален для тех программистов, которые хотят делиться своим кодом с сообществом при работе над различными опенсорсными проектами. Также GitHub выбирают те, кто желает собрать авторитетное портфолио, так как он поощряет персональные странички (есть даже соответствующие ачивки).
А вот для веб-разработки подойдут оба проекта: для этих целей у обоих есть свои Pages.
Ключевые особенности GitLab
Совместимость. Гитлаб поддерживает интеграцию с популярными платформами и сервисами — Docker, Kubernetes, Jira, сервисы от Google, а также имеет инструментарий для совмещения практически с любыми приложениями. Это означает, что GitLab может быть легко интегрирован и в корпоративную среду.
Метки и документация. Удобная система меток, которая значительно упрощает процесс разработки, позволяя классифицировать ошибки или запросы. Также с ее помощью можно отслеживать изменения, выполняемые по своим или чужим проектам. Система документации на Гитлабе выстроена так, что каждый проект документируется в отдельном репозитории.
Гибкие настройки доступа. Доступ к репозиториям настраивается в соответствии с группой, в которой находится пользователь. Закрытые ветки создаются с использованием встроенного модуля, который позволяет настраивать права для каждого пользователя. И благодаря собственной системе защиты от киберугроз GitLab предлагает безопасную аутентификацию.
Удобный импорт и экспорт данных. Сервис позволяет легко импортировать большие объемы данных из разных источников. Это обеспечивается за счет интеграции с популярными решениями, например, Jira. Также пользователям доступны инструменты для синхронизации кода.
Kubernetes по умолчанию для развертывания. Удобное решение для тех, кто занимается разработкой и тестированием приложений, поскольку Kubernetes — самый популярный оркестратор в среде контейнеризации.
Выделенное пространство в облаке. GitLab предлагает всем пользователям бесплатное размещение проектов в облаке. Кроме того, в GitLab можно бесплатно создавать частные репозитории для хранения открытого кода.
Инструменты аналитики и планирования.
Регулярные обновления. Гитлаб обновляется каждый месяц, причем значительное внимание уделяется удобству и безопасности работы.
GitLab Runner
GitLab Runner — полезный веб-инструмент для выполнения инструкций файлов репозиториев. Устанавливать GitLab Runner необходимо тем, кто собирается выполнять настройку CI/CD собственного проекта. Но в первую очередь нужно установить Docker — платформу контейнеризации, с помощью которой выполняется создание образов и развертывание контейнеров.
GitLab CI/CD
CI/CD — технология непрерывной интеграции и доставки. CI/CD помогает автоматизировать и масштабировать проекты, что значительно сокращает время разработки. GitLab CI/CD — инструмент, который позволяет превратить Гитлаб в полноценную платформу для DevOps со всеми необходимыми функциями.
GitLab CI/CD обеспечивает управление конфигурациями через yaml-файлы, стабильный запуск в различных средах, сборку и выполнение в разных операционных системах. Кроме того, с помощью этого инструмента можно выполнять интеграцию с кластерами Kubernetes и работать с задачами в окружениях Docker.
Дальше мы предсказуемо сравним GitLab CI/CD со схожим по функциям инструментом Гитхаба — GitHub Actions.
GitLab CI/CD vs GitHub Actions
Чтобы при переходе с GitHub Actions на GitLab CI/CD у новичка не возникло трудностей, рассмотрим основные различия между этими инструментами.
В CI/CD скрипты в заданиях выполняются с помощью ключа script, а в Actions для этого используется ключ run.
Задания на разных платформах в CI/CD выполняются с помощью ключа tags, а в Actions — с помощью runs-on.
Оба инструмента могут работать с заданиями в образах Docker, а также указывать дополнительные контейнеры, для чего в CI/CD используется ключ image, а Actions — container.
При выполнении заданий с условиями CI/CD использует ключ rules, а Actions — if.
Для выполнения заданий с зависимостями в CI/CD есть ключ stages, а в Actions используется needs.
Посмотреть примеры кода для каждого сервиса, а также узнать о некоторых менее существенных расхождениях можно в официальной документации GitHub по этой теме. И, хотя инструкция называется «Миграция с GitLab CI/CD на GitHub Actions», она подойдет и при переходе с Actions на CI/CD.
Немного практики: первый проект на GitLab
Чтобы создать проект на GitLab, нужно выполнить несколько несложных шагов:
Создать учетную запись и рабочую группу
Создать репозиторий
Загрузить файлы
Добавить ключи авторизации.
Теперь о каждом из этих шагов подробнее.
Создание учетной записи и рабочей группы на GitLab
После нажатия на кнопку Login на сайте проекта появится кнопка регистрации. Кликнув на нее, вы перейдете в форму, где нужно будет заполнить ряд стандартных полей, а затем подтвердить регистрацию из письма, которое сервис отправит на указанный email.
После успешного создания учетной записи приступаем к настройке GitLab. Для этого переходим в свой профиль и заполняем нужные поля, включая имя группы. Также вас попросят указать, будете ли вы работать в одиночку или в составе команды.
Создание репозитория в GitLab
После создания группы в верхней панели появится иконка с плюсиком: кликните на выпадающее меню рядом и выберите пункт New project или New project/repository. Далее выбираем уровень приватности. Если не хотите, чтобы ваш код был виден другим пользователям и вообще никому, кроме вас, выберите из выпадающего меню уровень Private. Теперь можно приступать к загрузке файлов в репозиторий Git, который будет сформирован вместе с проектом.
Загрузка файлов в GitLab
Файлы загружаются одним из трех способов:
Через веб-интерфейс нажатием на кнопку Upload File
Через командную строку при помощи программы git
Через сторонний Git-клиент, например, Sublime Merge или Tower.
Можно также использовать и Web IDE, предназначенный для работы в браузере.
Добавление ключей авторизации
Для генерации ключа понадобится ввести в терминале команду ssh-keygen, при этом директорию, где будут храниться ключи, можно оставить по умолчанию. Далее сервис предложит ввести пароль, а затем скопировать ключ из папки (его можно узнать по расширению .pub) и вставить его на сайте GitLab: нажмите на пункт SSH-keys в меню слева.
Дальнейшая работа
Первичная настройка GitLab на этом завершена. Теперь можно приступать к работе с ветками проекта, добавлять новых пользователей и делать многие другие вещи (например, отправлять баг-репорты). Приведем основные полезные функции:
Для создания новой ветки перейдите в репозиторий, откройте уже знакомое по внешнему виду меню с плюсиком и выберите пункт New Branch. Те, кто пользуется git-клиентами, могут сделать то же самое командой git checkout или с помощью графического интерфейса
Для объединения веток проекта в одну (этот процесс называется мерджинг или слияние) нажмите на кнопку Create merge request и заполните необходимые поля. Потребуется написать поясняющий комментарий, указать автора запроса, проверяющего и поставить теги, после чего подтвердить слияние
Добавление новых пользователей осуществляется через левое меню. Выберите там Project information и далее Members. В открывшейся форме, помимо ника и электронной почты, укажите роль пользователя и дату, когда срок действия его прав истечет, и он будет исключен из проекта. Это время всегда можно продлить.
Для оповещений коллег и пользователей о каких-либо проблемах — чаще всего это баги или ошибки, — выберите в левом меню пункт Issues. Далее по клику на кнопку New Issue, откроется форма, где нужно будет указать название и добавить описание проблемы, а также назначить ответственного — Assignee.
Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.
Ижевск, ул. Воткинское шоссе, д. 170 Е, Технопарк Нобель, офис 1117
Задать вопрос по почте
А ещё не стоит путать GitHub и Git. GitHub — лишь одна из реализаций системы контроля версий Git (только взгляните на полный список Git-клиентов с графическим интерфейсом), в которую добавлено много удобных инструментов и возможностей (те же комментарии, issues, гиперссылки, форматированный текст и тому подобное). Помните, GitHub можно использовать и без знания Git (обратное тоже верно).
1. Регистрация и создание репозитория
Создайте аккаунт. Перейдите на GitLab.com и зарегистрируйтесь, указав адрес электронной почты, имя пользователя и пароль. Подтвердите свою почту.
Создание нового проекта:
— После входа в GitLab нажмите на кнопку «New Project».
— Выберите «Create Blank Project» или «Import Project», если у вас уже есть готовый репозиторий.
— Дайте проекту имя, настройте уровень приватности (Private, Internal, Public) и создайте проект.
2. Установка Git и настройка SSH-ключей
Установка Git: На macOS: brew install git
На Ubuntu/Debian: sudo apt update && sudo apt install git
На Windows: скачайте Git for Windows и установите.
Создание SSH-ключа:
В терминале выполните команду:ssh-keygen -t rsa -b 4096 -C «your_email@example.com»
Скопируйте публичный ключ:cat ~/.ssh/id_rsa.pub
Добавление SSH-ключа в GitLab: Войдите в GitLab и откройте Settings > SSH Keys.
Вставьте ключ в поле Key и нажмите Add Key.
3. Настройка репозитория
Теперь, когда SSH-ключ добавлен, клонируйте репозиторий на свой компьютер.
Клонирование репозитория: На странице вашего проекта скопируйте SSH URL репозитория.
В терминале выполните:git clone git@gitlab.com:username/repo-name.git
Переходите в директорию репозитория:cd repo-name
4. Работа с Git: Основные команды
Создание новой ветки:git checkout -b new-feature
Создание коммита:
Добавьте файлы в индекс:git add.
Зафиксируйте изменения:git commit -m «Добавлен новый функционал»
Отправка изменений на сервер:git push origin new-feature
Создание Merge Request: На странице проекта в GitLab выберите свою ветку и создайте Merge Request.
Опишите изменения и отправьте на ревью.
5. Настройка CI/CD
GitLab предоставляет встроенные инструменты для CI/CD, позволяющие автоматически тестировать и разворачивать код. Начнем с простого конвейера.
Создание .gitlab-ci.yml: В корне проекта создайте файл .gitlab-ci.yml, который будет описывать ваш конвейер.
Пример простого файла:stages:
— build
— test
build_job:
stage: build
script:
— echo «Building the project»
test_job:
stage: test
script:
— echo «Running tests»
Добавление CI/CD в проект:
GitLab автоматически обнаружит .gitlab-ci.yml и запустит описанные процессы после каждого коммита.
6. Полезные советы
Ветки: Создавайте отдельные ветки для каждой фичи или бага. Это упрощает ревью и уменьшает вероятность конфликтов.
Защита веток: В настройках проекта можно настроить Protected Branches, чтобы разрешить коммиты только после ревью.
Pipeline и Jobs: Используйте Pipeline для автоматизации задач, таких как тестирование и деплой.
GitLab — это больше, чем хранилище кода. Это целая платформа, которая объединяет управление проектами, автоматизацию и безопасность в одном месте. Начать работу просто, а возможности GitLab позволяют глубоко интегрировать его в процессы разработки и деплоя. Удачи в работе с GitLab!
— Встроенная непрерывная интеграция — GitLab известен своей бесплатной встроенной непрерывной интеграцией, которую GitHub не предлагает. Вместо этого GitHub предлагает сторонние интеграции, которые обеспечивают непрерывную интеграцию.
— Аутентификация — В GitLab разрешение предоставляется на основе ролей людей, в то время как в GitHub разработчики могут предоставлять доступ на чтение или запись к определенным репозиториям.
— Импорт/экспорт данных — GitLab предлагает гораздо более подробную документацию о том, как импортировать/экспортировать данные от внешних поставщиков, в то время как документация GitHub не такая подробная. GitLab способен импортировать проекты и проблемы из большего количества источников, чем GitHub. При этом GitHub предлагает инструмент под названием GitHub Importer для ввода данных. Что касается экспорта, GitLab предлагает комплексное решение для экспорта вики, репозиториев проектов, загрузки проектов, веб-хуков и сервисов, а также проблем. С другой стороны, GitHub немного более ограничен с точки зрения возможностей экспорта.
— Платформа развертывания — GitHub не поставляется со встроенной платформой развертывания и требует сторонней интеграции с внешним приложением для развертывания приложений. С другой стороны, GitLab использует Kubernetes для беспроблемного развертывания.
— Частные репозитории — GitLab предлагает бесплатные частные репозитории для проектов с открытым исходным кодом, а GitHub — нет.
— Отслеживание комментариев — GitHub способен предоставить полную историю обновлений комментариев — GitLab не поддерживает это.
— Экспорт файла CSV — GitLab способен экспортировать файлы CSV с проблемами на адреса электронной почты уведомлений по умолчанию в виде вложений.
— Конфиденциальные вопросы — Модуль GitLab Confidential Issues создает конфиденциальные проблемы, которые видны только участникам проекта с уровнем доступа Reporter или выше.
— Графики выгрузки — В отличие от GitHub, GitLab предлагает Burndown Charts как часть этапов, которые позволяют разработчикам отслеживать прогресс во время спринтов или при работе над новыми версиями программного обеспечения.
— Циклическая аналитика — GitLab предоставляет панель мониторинга для анализа времени, планирования и мониторинга.
— Ежемесячные новые функции — GitLab известен своими ежемесячными обновлениями новых функций и улучшений, которые неукоснительно делаются 22-го числа каждого месяца.
Это были все основные различия.
Что касается схожести, то они оба предлагают систему меток или можно сделать документацию.
Вывод: Как видите, различий много, но из-за возможности сделать возможности сделать свой частный репозиторий и ежемесячных новых функции, я выбираю GitLab, но из-за того, что GitHub более популярен, приходится пользоваться им.