Связь кода и задач
Info
Объедините задачи и разработку. Прикрепите ветки и запросы на слияние к задаче как вручную или автоматически.
Ручное прикрепление веток и запросов на слияние к задачам
-
Создайте новую задачу, в рамках которой будет разработана фича.
-
Перейдите в раздел репозитория Код, создайте новую ветку для разработки фичи, внесите в нее изменения. Далее создайте из данной ветки запрос на слияние.
-
Связать уже существующую задачу и запрос на слияние можно двумя способами:
- на странице Задачи в блоке Разработка выберите созданный ранее запрос(-ы) на слияние и привяжите его к задаче. При этом автоматически привяжется и соответствующая ветка;
- на странице Запроса на слияние в блоке Задачи выберите созданную ранее задачу(-и) и привяжите ее к запросу. Привязать задачу к запросу можно в процессе создания запроса или после создания.
Note
После прикрепления задачи к запросу на слияние эта связь отображается как на странице Задачи, так и на странице Запроса.
Автоматическое прикрепление веток и запросов на слияние к задачам
Автоприкрепление работает как в одном репозитории, где вместе хранятся задачи и код, так и между репозиториями, где код и задачи хранятся порознь.
В настройках репозитория, в котором хранятся задачи, в разделе настроек Задачи включите одну или несколько функциональностей:
- автоприкрепление по названию ветки;
- автоприкрепление по названию запроса на слияние;
- автоприкрепление по сообщению коммита (см. раздел ниже).
Все функциональности выключены по умолчанию, чекбоксы можно проставлять одновременно. Включать и отключать их могут владелец репозитория и администраторы.
Правила автоприкрепления
- номер задачи указывается с обязательной решеткой (
#) и ищется в любой части имени ветки, имени запроса на слияние или сообщения/описания коммита; - если задачи и код хранятся в одном репозитории, номер задачи указывается в формате
#42— однозначная попытка установить связь с задачей в этом же репозитории; - чтобы установить связь с задачей, хранящейся в другом репозитории, используйте формат
username/reponame#42, гдеusernameиreponame— пользователь и репозиторий, в котором хранятся задачи. Примеры имен веток:feature_#42-some_desc,bugfix_orgName/repoName#42-some-words; - если в имени или сообщении указано несколько номеров задач, объект прикрепляется к каждой из них, если такая задача существует;
- если задача не существует, привязка не выполняется. Если сразу после номера задачи идут дополнительные цифры, система проверяет номер с учетом этих цифр: например, если номер задачи #123, а в имени ветки указан
#1232, система проверит номер #1232 и, если такой задачи не существует, ветка не будет привязана к задаче #123; - ветки, запросы на слияние и коммиты, созданные локально, прикрепляются только после отправки изменений в удаленный репозиторий (пуша);
- если создается задача, номер которой совпадает с частью имени ранее созданной ветки (или частью сообщения/описания ранее созданного коммита), ветка автоматически прикрепляется к задаче при следующем пуше в ветку;
- при переименовании ветки или запроса на слияние, а также при изменении сообщения/описания коммита добавляется привязка к новой задаче, при этом привязка к предыдущей задаче не снимается.
Прикрепление веток и запросов на слияние
- ветка автоматически прикрепляется к задаче при создании и при переименовании, если в ее имени указан номер задачи;
- запрос на слияние автоматически прикрепляется к задаче при создании и при переименовании, если в его имени или описании указан номер задачи;
- запрос на слияние, созданный из ветки, уже прикрепленной к задаче, автоматически прикрепляется к этой задаче, даже если в его имени нет номера задачи;
- запрос на слияние, созданный для слияния в ветку, прикрепленную к задаче, автоматически прикрепляется к этой задаче;
- если запрос на слияние создан из ветки А, прикрепленной к задаче А, для слияния в ветку Б, прикрепленную к задаче Б, запрос прикрепляется к обеим задачам;
- при прикреплении запроса на слияние к задаче автоматически прикрепляется и ветка, которую мержит запрос (source), а также, при наличии, связанные с ней запросы на слияние.
Прикрепление коммитов
Сам коммит к задаче не прикрепляется: если в сообщении или описании коммита указан номер задачи, к задаче прикрепляется ветка, связанная с коммитом, и, при наличии, связанные с ней запросы на слияние.
При переписывании истории (git push --force) привязка к предыдущим задачам не снимается, привязка к новым задачам выполняется.
Note
О событии автоприкрепления ветки и/или запроса на слияние отображается в истории задачи (вкладки Все и История), а о событии автоприкрепления задачи — в ленте активности запроса на слияние.
Пример
-
Создайте еще одну задачу. Запомните номер созданной задачи.
Создайте в разделе «Код» еще одну ветку и укажите в ее имени номер задачи. Например,
feature_#42. Создайте запрос на слияние данной ветки с веткойmaster. При создании запроса обратите внимание, что имя запроса на слияние по умолчанию содержит в себе имена сливаемых веток, и, как следствие в данном случае, — номер задачи. Не меняйте имя запроса на слияние.После успешного создания запроса на слияние перейдите к созданной ранее задаче. Обратите внимание, что в блоке Разработка автоматически прикреплены созданная ветка и запрос на слияние.
Использование регулярных выражений в коммитах для автоматического прикрепления
-
Перейдите в настройки репозитория, в разделе настроек Задачи включите функциональность Автоприкрепление по сообщению коммита. Обратите внимание, что появилось поле Регулярное выражение для автоприкрепления. При нажатии на него открывается окно Выберите регулярное выражение для автоприкрепления с предустановленными вариантами:
Регулярное выражение Пример задач (f|bug)/{issue_number}f/1,bug/232/{issue_number}/2345,/232\w+/{issue_number}f/1,feature/232Выберите подходящий вариант кнопкой Применить. Автоприкрепление осуществляется только к той задаче, номер которой указан в формате регулярного выражения. По умолчанию выбрано регулярное выражение, которое можно отредактировать на свое усмотрение.
-
Создайте новую задачу в данном репозитории, запомните ее номер.
-
Перейдите в раздел Код, создайте новую ветку для разработки фичи, произведите в ней нужные наработки. Название ветки не имеет значения. При фиксации изменений укажите в качестве сообщения коммита следующую строку
Refactoring feature/#10, где#10— номер задачи, взятой из предыдущего шага, аfeature— любое имя, соответствующее выбранному регулярному выражению. Зафиксируйте изменения. -
Вернитесь на страницу задачи #10, обратите внимание, что ветка привязалась автоматически. Создайте запрос на слияние данной ветки и ветки
master. Название запроса на слияние не имеет значения. Вернитесь в задачу, обратите внимание, что вновь созданный запрос на слияние также прикреплен к задаче.