Как работать с Gitlab
В данном разделе мы познакомим Вас с нашими правилами работы в системе контроля версий GitLab.
Git требует какой-то пароль?
Вам необходимо создать ssh ключ для git. Тут описано как это сделать.
Все равно требует пароль? Убедись, что ты клонируешь с помощью ssh, а не https

Как брать задачи
Команда будет назначать Вам задачи и весь список будет находиться у Вас в разделе issues.

Также есть kanban доски. Которые находятся в левой боковой панели по пути Plan/Issue boards. Общая доска задач
У issue есть свой приоритеты:
Оценка- Лейбл устанавливается на задачи, которые требуют оценки времени реализации задачи (Если у вас появилась такая задача, необходимо в комментарий написать время, которое вам потребуется для решения задачи)Ожидает подтверждения руководителя- Лейбл устанавливается на задачи, которые вы оценили по ресурсозатрантостиНа перспективу- приоритет = 1, запланированные задачи на следующие версии проектаНе критично- приоритет = 2, согласованы, но не несут в себе важных решенийПриоритетно- приоритет = 3, задача в рамках рабочего планаСрочно- приоритет = 4, задачу нужно взять сразу как только ты увидел ее в списке
Помимо приоритетов существуют Статусы задач, они так же определяются лейблами
В работеСтавишь, как только ты взял задачу в работуРевьюСтавишь, когда по твоему мнению задача готова к проверкеНа проверке QAВ нашей команде есть QA инженер, после поверхностой проверки твоего кода на грубые ошибки, задача отправляется на детальное тестированиеНа проверке у заказчикаСтавит руководитель, после того как QA ринял задачу и она соответсвует нашим нормамПринятаЗадачу принял заказчик и команда
Так же есть дополнительные лейблы для команды
Вопросы по формулировкеСтавится, когда ты не понимаешь описания задачи и тебе нужно расписать ее подробнее (В комментариях обязательно пиши свой вопрос)Не активнаСтавится, если по какой-то причине заказчик/руководитель решил, что эта задача не нужнаТребует доработки админкиСтавится, если ты не можешь решить поставленную задачу без доработки админ. части системыТребует доработки ядра(для менее опытных сотрудников) Если ты понимаешь, что публичной части не достаточно для решения проблемы и требуется доработка ядра API, ставь этот лейблТребует доработки API(для Frontend разработчиков) Ставится, если ты не можешь решить поставленную задачу без доработки серверной части системыТребует вмешательстваСтавишь, когда понимаешь, что задачу самостоятельно решить ты не в силах, по причине недостатка навыков пппонимания системыСформирована QAЛейбл устанавливает QA инженер, в случае если задача не является результатом проверки конкретной задачи.
Я взял задачу, что дальше?
Сперва необходимо добавить задаче метку В работе, показав таким образом команде, что она в работе, а затем создать свой feature branch - ветку в которой Вы будете работать. Проще всего сделать это в репозитории:

Но никто не запрещает Вам сделать ветку в git локально и пушить ее уже перед созданием merge request
Полный путь задачи
Задача требует оценки:
Открытие задачи
Установке лейбла "Оценка"
Исполнитель переходит в задачу и в комментариях пишет, сколько часов ему нужно на реализацию
Установке лейбла "Ожидает подтверждения Руководителя"
Руководитель подтверждает задачу, устанавливая приоритет
Вы берете задачу
Установке лейбла "В работе"
Вы выполняете задачу
Создаете МР
Установке лейбла "Ревью"
Руководитель проверяет ваш код
Установке лейбла "На проверке QA"
QA проверяет задачу. Если есть баги, пишет их в комментарии и отправляет задачу обратно в лейбл "В работе", в этом случае задача после правок проходит тот же путь до проверки QA
Установке лейбла "На проверке у заказчика"
Проверка заказчиком. Если есть баги, они будут в комментариях, задача отправляется обратно в лейбл "В работе"
Установке лейбла "Принята"
Выгрузка в релиз
Закрытие задачи
Задача не требует оценки:
Открытие задачи
Вы берете задачу
Установке лейбла "В работе"
Вы выполняете задачу
Создаете МР
Установке лейбла "Ревью"
Руководитель проверяет ваш код
Установке лейбла "На проверке QA"
QA проверяет задачу. Если есть баги, пишет их в комментарии и отправляет задачу обратно в лейбл "В работе", в этом случае задача после правок проходит тот же путь до проверки QA
Установке лейбла "На проверке у заказчика"
Проверка заказчиком. Если есть баги, они будут в комментариях, задача отправляется обратно в лейбл "В работе"
Установке лейбла "Принята"
Выгрузка в релиз
Закрытие задачи
Слияние с основной веткой
Для того чтобы Ваш код ушел в основную ветку необходимо создать запрос на слияние merge request. Делается это в левой боковой панели. Раздел Merge requests. Вам нужно создать новый запрос, выбрав из какой ветку в какую будет выполниться слияние. Или перейти по ссылки в терминали после пуша.

Вам необходимо заполнить заголовок и описание merge reqeust

Заголовок заполняется в формате [Краткое описание проделанных работ] #[номер issue]. В описании есть несколько разделов, которые необходимо заполнить. Если Вам кажется что какой-то из них лишний, то не удаляйте его, а просто оставьте незаполненным. В описании есть блоки такого формата: <!-- ТЕКСТ -->. Это комментарии, которых не видно, пока Вы редактируете файл. Удалять их не стоит. Они нужны Вам просто как подсказки
How to issue
Как же создать задачу и когда это можно сделать? Да в целом всегда. У Вас предложение - новое issue. Вам пишет заказчик с просьбой чет починить? Добавь issue. Наткнулись на что-то склизкое, мягкое и неприятное на запах в процессе разработки - ... правильно - заводим issue
При оформлении issue необходимо дать ей адекватный заголовок. Вкратце изложить проблему, а затем в описании дать максимально много информации, которой Вы владеете. Важно, чтобы в описании прослеживалась ЦЕЛЬ - что вообще необходимо сделать. Чем лучше описана issue тем лучше, но стоит учитывать issue, в основном, НЕ ЯВЛЯЕТСЯ ИНСТРУКЦИЕЙ К ДЕЙСТВИЮ. Если в issue описаны требования, то Вы обязаны их выполнить или обсудить, но то как это сделать решать Вам.
Я хочу сослаться на issue, merge request, разработчика
Чтобы вставить ссылку на issue или merge request, достаточно просто скопировать url и вставить в описание/комментарий/заголовок. Есть еще один способ это сделать. Чтобы обратиться к issue того же проекта, в котором вы работаете, достаточно написать #[номер issue] или для merge request ![номер merge request]. Если Вы хотите сослаться на другой проект, то необходимо указать его название перед # или ! (core#123, core!321).
Если нужно тегнуть кого-то, то используйте @. Например: @codedlife
Мой merge/issue зависит от другого в другом проекте
Если так вышло, что Ваша работа зависит от правок другого человека или одно задача завит от другой, то необходимо это указать написав в описании issue Blocked by #[номер issue]
Вот черт! Кто-то уже обновил тот же файл, что и я
Если при слиянии у Вас появились конфликты, то это явный сигнал о том, что необходимо сделать rebase с основной веткой. Делается это следующим образом:
Необходимо обновить локальную main ветку
Выполнить rebase
В процессе могут возникнуть конфликты, которые необходимо будет решать. Читайте вывод в консоль и открывайте файлы, о которых Вам пишет git. Обычно IDE сама предлагает Вам выполнить слияние, когда Вы открываете конфликтный файл.
Когда Вы закончили с файлом Вам необходимо вернуться в консоль, добавить правки и продолжить слияние
Выполняйте последние пару пунктов до тех пор, пока git не перестанет жаловаться
Затем необходимо запушить правки в Вашу ветку выполнив
By codedlife & naweedu