Issues в Gitlab
Во вкладке Issues содержится список заданий проекта (выполненных и тех, которые еще нужно выполнить); в Pipelines содержатся все сборки для соответствующего им коммита и результат каждого этапа последовательности развертывания; а в Wiki содержится мини-википедия вашего проекта (документация по нему в стиле Википедии).
Отслеживать
ответ дан 8 мая 2018 в 10:47
755 4 4 серебряных знака 10 10 бронзовых знаков
Issues это не задания проекта, это список будущих нововведений, багов, и исправлений для проекта, который в добавок ко всему формируют пользователи а не только разработчики.
Wiki это мини-вики проекта, особенно если он большой в нём сложно сразу разобраться. Поэтому разработчики описывают там как пользоваться продуктом.
Pipelines это инфа о сборке проекта, мерджах и коммитах.
Отслеживать
ответ дан 8 мая 2018 в 10:58
1,506 5 5 серебряных знаков 18 18 бронзовых знаков
- gitlab
- pipelines
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973
GitLab для начинающих: зачем он нужен в мире, где есть GitHub

Статья рассчитана на читателей, которые уже хотя бы немного знакомы с Git. Изучить основы работы с системой контроля версий можно бесплатно в большом курсе Хекслета.
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки

Что такое 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 и для GitHub .
Читайте также: Как правильно составлять описания коммитов и почему это важно
Ключевые особенности GitLab
- Совместимость. Гитлаб поддерживает интеграцию с популярными платформами и сервисами — Docker, Kubernetes, Jira, сервисы от Google, а также имеет инструментарий для совмещения практически с любыми приложениями. Это означает, что GitLab может быть легко интегрирован и в корпоративную среду.
- Метки и документация. Удобная система меток, которая значительно упрощает процесс разработки, позволяя классифицировать ошибки или запросы. Также с ее помощью можно отслеживать изменения, выполняемые по своим или чужим проектам. Система документации на Гитлабе выстроена так, что каждый проект документируется в отдельном репозитории.
- Гибкие настройки доступа. Доступ к репозиториям настраивается в соответствии с группой, в которой находится пользователь. Закрытые ветки создаются с использованием встроенного модуля, который позволяет настраивать права для каждого пользователя. И благодаря собственной системе защиты от киберугроз GitLab предлагает безопасную аутентификацию.
- Удобный импорт и экспорт данных. Сервис позволяет легко импортировать большие объемы данных из разных источников. Это обеспечивается за счет интеграции с популярными решениями, например, Jira. Также пользователям доступны инструменты для синхронизации кода.
- Kubernetes по умолчанию для развертывания. Удобное решение для тех, кто занимается разработкой и тестированием приложений, поскольку Kubernetes — самый популярный оркестратор в среде контейнеризации.
- Выделенное пространство в облаке. GitLab предлагает всем пользователям бесплатное размещение проектов в облаке. Кроме того, в GitLab можно бесплатно создавать частные репозитории для хранения открытого кода.
- Инструменты аналитики и планирования. Аналитические инструменты Гитлаба позволяют отслеживать время, затраченное на каждую задачу, планировать дальнейшую работу, отслеживать активность каждого разработчика. А инструмент Burndown Chart понравится тем, кто использует в разработке метод спринтов.
- Регулярные обновления. Гитлаб обновляется каждый месяц, причем значительное внимание уделяется удобству и безопасности работы.
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.
Читайте также: Как присоединиться к работе над опенсорсом, что такое PS1 и другие вопросы: отвечает разработчик Хекслета Андрей Мошков
Немного практики: первый проект на 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 в меню слева. Узнать больше об установке Git вы можете, изучив наши инструкции .
Дальнейшая работа
Первичная настройка GitLab на этом завершена. Теперь можно приступать к работе с ветками проекта, добавлять новых пользователей и делать многие другие вещи (например, отправлять баг-репорты). Приведем основные полезные функции:
- Для создания новой ветки перейдите в репозиторий, откройте уже знакомое по внешнему виду меню с плюсиком и выберите пункт New Branch . Те, кто пользуется git-клиентами, могут сделать то же самое командой git checkout или с помощью графического интерфейса
- Для объединения веток проекта в одну (этот процесс называется мерджинг или слияние) нажмите на кнопку Create merge request и заполните необходимые поля. Потребуется написать поясняющий комментарий, указать автора запроса, проверяющего и поставить теги, после чего подтвердить слияние
- Добавление новых пользователей осуществляется через левое меню. Выберите там Project information и далее Members . В открывшейся форме, помимо ника и электронной почты, укажите роль пользователя и дату, когда срок действия его прав истечет, и он будет исключен из проекта. Это время всегда можно продлить.
- Для оповещений коллег и пользователей о каких-либо проблемах — чаще всего это баги или ошибки, — выберите в левом меню пункт Issues . Далее по клику на кнопку New Issue , откроется форма, где нужно будет указать название и добавить описание проблемы, а также назначить ответственного — Assignee .
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки
¶ Group overview
Details — подраздел Group overview, куда вы попадаете, как только откроете группу вашего проекта. На этой страничке находится три вкладки:
- subgroups и projects — репозитории с файлами, созданными участниками проекта
- shared projects — репозитории других проектов, куда дали доступ всей вашей команде
- archived projects — архивированные репозитории, которые доступны только для чтения.
Там же находится кнопка New project, с помощью которой можно создать новый репозиторий.
¶ Activity
Activity — это журнал активности участников проекта. В нем отображаются все изменения, внесенные в ваш проект с указанием на их автора.
¶ Issues
Issues — это основная среда для совместной работы над идеями и планирования работы в GitLab. Они позволяют обмениваться предложениями и обсуждать их до и во время их реализации между вами и вашей командой или сторонними авторами. Issues всегда привязаны к одному из ваших репозиториев в проекте, однако в разделе List вы будете видеть все Issues вашего проекта.
Этим разделом участники пользуются нечасто, потому что функцию трекинга исполняют сервисы Trello и Taiga.
¶ List
В этом подразделе вы можете создавать Issues — обсуждение задачи с командой. Чтобы создать обсуждение, нажмите «New issue» и заполните информацию о задаче, которую вы собераетесь совместно решать: опишите ее и добавьте нужные файлы. В боковом меню справа вы можете найти вкладку Labels и добавить метку: выбрать из списка предложенных или создать собственную с помощью кнопки «Create project labels». Теперь ваше обсуждение будет выглядеть вот так:

issue с метками
¶ Labels
Labels — это метки для issue. Они могут отражать статус задачи или использоваться для сортировки обсуждений.
Если вы перейдете в этот подраздел, то увидите, что по умолчанию уже создано две метки: «To do» и «Doing». Вы можете создать собственные метки:
- для этого нажмите на кнопку «New label»
- введите название метки и выберите цвет для нее
- нажмите кнопку «Create label»
Чтобы установить метку на issue вернитесь в редактирование issue в подразделе List. В боковом меню справа вы можете найти вкладку Labels и добавить только что созданную вами метку.
¶ Boards
Здесь расположен Kanban: доска с колонками по умолчанию «Open», «To Do», «Doing» и «Closed». Все новые issues сразу попадают в колонку «Open». Если вы перетащите левой кнопки мыши ваше обсуждение в другую колонку, то в подразделе «List» около обсуждение появится метка, соответствующая названию колонки на доске.
Чтобы добавить новую колонку, создайте новую метку в подразделе «Labels». Затем вернитесь в Boards и нажмите на кнопку «Add list». Поставьте галочку напротив только что созданной метки, и на доске появится одноименная колонка.
¶ Milestones
Milestones позволяют создавать спринты, или циклы, в период которых отслеживаются issues и merge requests.
Чтобы создать новую Milestones, нажмите на кнопку «New milestones» и введите заголовок, добавьте описание и установите приблизительные сроки для исполнения.
¶ Merge Requests
Merge request — это запрос на слияние веток. Необходимость использования этой функции может возникнуть тогда, когда нужно перенести функциональность из одной ветки в другую.
- В разделе Merge Requests» нажмите на New Merge Request» для создания нового запроса на слияния одной ветки с другой.
- Выберите ветку, из которой хотите добавить изменения (в нашем случае development). В качестве «Target branch» выберите нужную вам ветку (у нас это master).
- Затем нажмите на кнопку «Compare branches and continue«.

- Если не возникло конфликтов, на новой странице задайте заголовок, описание и в поле Assignee выберите своего руководителя.

Рекомендуем вам делать при слиянии веток сквош: объединять коммиты. Это помогает избежать путаницы и длинного списка коммитов. Для этого просто поставьте галочку около пункта «Squash commits when merge request is accepted». Далее нажмите на кнопку «Merge».

¶ Members
В этом разделе руководитель проекта может добавить участников в проект.
- Для этого попросите сначала авторизиваться студента на сайте GitLab через корпоративную почту с доменом @miem.hse.ru.
- Затем в графе GitLab member or Email address введите имя пользователя и выберите его из списка.
- Укажите роль участника.
- Developer(рекомендумая) — разработчик, имеет право на создание и редактрирование репозиториев, обсуждений, меток.
- Guest — гость, не имеет право на редактирование, может только просматривать файлы.
- Reporter — ограничены правы редактирования. Например, не может создавать новые ветки и делать merge requests
- Maintainer — имеет расширенные права управления проектом. Может удалять репозитории.
- Нажмите Invate.
¶ Project Overview
После того, как вы откроете один из репозиториев вашего проекта, количество вкладок в боковом меню увеличится. Первой вкладкой будет раздел Project Overview.
¶ Details
В этом подразделе хранятся все файлы выбранного репозитория и основная информация о нем. Здесь же находится кнопка Clone, с помощью которой можно узнать URL репозитория для копирования его на свой компьютер.
Чтобы создать папку, файл, ветку или загрузить новый файл с компьютера, нажмите на плюс в левом верхнем углу.
Если хотите переключиться на другую ветку, нажмите на ее название в левом верхнем углу и выберите нужную.

подраздел Details
¶ Activity
Activity — это журнал активности участников проекта. В нем отображаются все изменения, внесенные в выбранный репозиторий с указанием на их автора.
¶ Repository
¶ Files
Этот подраздел аналогичен подразделу Details: здесь тоже хранятся все файлы выбранного репозитория, находится кнопка Clone, плюс и возможность переключаться между ветками.

подраздел Files
¶ Commits
Здесь хранится история коммитов выбранного репозитория:

подраздел Commits
¶ Branches
В этом подразделе хранится список веток выбранного репозитория. Чтобы перейти на нужную ветку, просто щелкните по ней.
¶ Contributors
Здесь вы можете увидеть общее количество коммитов и количество коммитов каждого участника проекта в выбранном репозитории.
¶ Graph
График репозитория визуально отображает историю изменений в выбранном репозитории:

подраздел Graph
¶ Compare
Если в репозитории несколько веток, то их можно сравнить, чтобы увидеть изменения.
¶ CL / CD
GitLab CI / CD — это встроенный в GitLab инструмент для разработки программного обеспечения с использованием непрерывных методологий :
- continuous integration(CI)
- continuous delivery (CD)
- continuous deployment (CD)
Continuous integration работает путем отправки небольших фрагментов кода в базу кода вашего приложения, размещенную в репозитории Git, и при каждом нажатии запускает конвейер сценариев для создания, тестирования и проверки изменений кода перед их объединением в основную ветвь.
Continuous delivery и deployment состоят из следующего шага CI, направляющего ваше приложение в ветку master репозитория при каждом пуше.
Эти методологии позволяют обнаруживать ошибки на ранних этапах разработки.
¶ Pipelines, Jobs and Schedules
Pipelines — это компонент верхнего уровня continuous integration, delivery и deployment.
Pipelines включают:
- Jobs, которые определяют, что делать. Например, задания по компиляции или тестированию кода.
- Stages, которые определяют, когда запускать задания. Например, этап, на котором выполняются тесты, запускается после этапа компиляции кода.
Как правило, pipeline выполняются автоматически и после создания не требуют вмешательства. Однако бывают случаи, когда вы можете вручную взаимодействовать с pipeline.
¶ Уровень видимости проекта
Каждый проект имеет уровень видимости, который контролирует, кто имеет доступ на чтение страниц проекта или репозитория.
Уровни видимости:
- Приватный (Private) проект — владелец должен явно дать доступ на чтение отдельным пользователям. Редактировать его могут только участники проекта.
- Внутренний (Internal) — проект виден любому вошедшему пользователю GitLab. Редактировать его могут только участники проекта. Наблюдатели могут разветвить этот проект, внести в него изменения и отправить запрос на слияние.
- Публичный (Public) — проект видим всем, редактировать его могут только учатники проекта. Наблюдатели могут разветвить этот проект, внести в него изменения и отправить запрос на слияние.
¶ Как изменить уровень видимости?
Уровень видимости может изменить только создатель проекта.
- Сначала нужно изменить видимость группы.
- Шаг 1. Зайдите на страницу вашего проекта в GitLab;
- Шаг 2. В боковой панеле найдите Settings (Настройки), General (Общие);

- Шаг 3. Измените уровень видимости на тот, который вам нужен.

- Шаг 4. Нажмите Save changes (Сохранить изменения).
- Теперь нужно изменить видимость репозитория.
- Шаг 1. Откройте на странице проекта в GitLab нужный репозиторий;
- Шаг 2. В боковой панеле найдите Settings (Настройки), General (Общие);

- Шаг 3.Permissions (Разрешения). Измените уровень видимости на тот, который вам нужен.

- Шаг 4. Нажмите Save changes (Сохранить изменения).
Пожалуйста, устновите видимость группы и репозитория Public перед защитой проекта!
Краткое руководство по GitHub Issues
Следуйте этому краткому интерактивному руководству, чтобы узнать о GitHub Issues.
В этой статье
Introduction
This guide demonstrates how to use GitHub Issues to plan and track a piece of work. In this guide, you will create a new issue and add a task list to track sub-tasks. You’ll also learn how to add labels, milestones, assignees, and projects to communicate metadata about your issue.
Prerequisites
To create an issue, you need a repository. You can use an existing repository that you have write access to, or you can create a new repository. The repository must have issues enabled. For more information about creating a repository, see «Creating a new repository.» For more information about enabling issues if they are disabled in your repository, see «Disabling issues.»
Opening a blank issue
First, create an issue. There are multiple ways to create an issue; you can choose the most convenient method for your workflow. This example will use the GitHub UI. For more information about other ways to create an issue, see «Creating an issue.»
- On GitHub.com, navigate to the main page of the repository.
- Under your repository name, click

Issues.
Filling in information
Give your issue a descriptive title. The title should convey at a glance what the issue is about.
Add a description that explains the purpose of the issue, including any details that might help resolve the issue. For example, if this is a bug report, describe the steps to reproduce the bug, the expected result, and the actual result.
You can use markdown to add formatting, links, emojis, and more. For more information, see «Writing on GitHub.»

Adding a task list
It can be helpful to break large issues into smaller tasks, or to track multiple related issues in a single larger issue. Add a task list to your issue by prefacing list items with [ ] . Reference existing issues by issue number or URL. You can use plain text to track tasks that don’t have a corresponding issue and convert them to issues later. For more information, see «About task lists.»

Adding labels
Add a label to categorize your issue. For example, you might use a bug label and a good first issue label to indicate that an issue is a bug that a first-time contributor could pick up. Users can filter issues by label to find all issues that have a specific label.
You can use the default labels, or you can create a new label. For more information, see «Managing labels.»

Adding milestones
You can add a milestone to track the issue as part of a date based target. A milestone will show the progress of the issues as the target date approaches. For more information, see «About milestones.»

Assigning the issue
To communicate responsibility, you can assign the issue to a member of your organization. For more information, see «Assigning issues and pull requests to other GitHub users.»

Adding the issue to a project
You can add the issue to an existing project and populate metadata for the project. For more information about projects, see «About Projects.»

Submitting your issue
Click Submit new issue to create your issue. You can edit any of the above fields after creating the issue. Your issue has a unique URL that you can share with team members, or reference in other issues or pull requests.
Communicating
After your issue is created, continue the conversation by adding comments to the issue. You can @mention collaborators or teams to draw their attention to a comment. To link related issues in the same repository, you can type # followed by part of the issue title and then clicking the issue that you want to link. For more information, see «Writing on GitHub.»

Next steps
You can use issues for a wide range of purposes. For example:
- Tracking ideas
- Collecting feedback
- Planning tasks
- Reporting bugs
Here are some helpful resources for taking your next steps with GitHub Issues:
- To learn more about issues, see «About issues.»
- To learn more about how projects can help you with planning and tracking, see «About Projects.»
- To learn more about using issue templates and issue forms to encourage contributors to provide specific information, see «Using templates to encourage useful issues and pull requests.»