Работа с предложениями изменений в SourceCraft

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

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

Создать новую итерацию

После того как предложение изменений было создано, каждая отправка изменений в удаленную ветку репозитория создает новую итерацию. Итерация включает в себя все коммиты, которые были сделаны перед выполнением команды git push.

Чтобы создать новую итерацию:

  1. В той же ветке, из которой было создано предложение изменений, внесите новые изменения в файлы репозитория.

  2. Внесите измененные файлы в индекс git, сделайте коммит и отправьте изменения в удаленный репозиторий:

    git add .
    git commit -m "<комментарий_к_коммиту>"
    git push origin <название_ветки>
    

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

    Примечание

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

  3. После создания новой итерации предложение изменений переводится в статус черновика. Повторно опубликуйте его.

Вы можете внести изменения в ветку и создать новую итерацию непосредственно в интерфейсе SourceCraft.

Посмотреть изменения, вносимые в целевую ветку

  1. Откройте главную страницу SourceCraft.
  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.
  3. Выберите репозиторий.
  4. На странице репозитория в разделе Код перейдите в секцию Предложения изменений.
  5. Выберите предложение изменений.
  6. Посмотрите содержимое предложения изменений:
    • На вкладке Обзор отображается история итераций предложения изменений. Чтобы посмотреть изменения из конкретной итерации, напротив этой итерации нажмите Показать изменения.

    • На вкладке Изменённые файлы отображаются измененные файлы репозитория.

      • Чтобы сравнить изменения между итерациями, выберите их в выпадающих списках в поле Сравнить.

      • Чтобы вывести структуру файлов, нажмите кнопку рядом с выпадающими списками сравнения веток и итераций.

        Подробнее на странице Навигация и поиск по коду в SourceCraft.

    • На вкладке Изменения отображаются все коммиты за все итерации предложения изменений.

Оставить комментарий и запросить изменения

  1. Откройте главную страницу SourceCraft.

  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.

  3. Выберите репозиторий.

  4. На странице репозитория в разделе Код перейдите в секцию Предложения изменений.

  5. Выберите предложение изменений.

  6. Оставьте комментарий:

    На вкладке Обзор в блоке Активность введите свой комментарий.

    1. На вкладке Изменённые файлы напротив строки, к которой хотите оставить комментарий, нажмите .

      Совет

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

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

    2. В открывшемся окне введите свой комментарий.

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

    • !<номер_предложения_изменений> — предложение изменений в текущем репозитории.
    • <слаг_репозитория>!<номер_предложения_изменений> — предложение изменений в другом репозитории текущей организации.
    • <слаг_организации>/<слаг_репозитория>!<номер_предложения_изменений> — предложение изменений в указанных организации и репозитории.
    • #<номер_задачи> — задача в текущем репозитории.
    • <слаг_репозитория>#<номер_задачи> — задача в другом репозитории текущей организации.
    • <слаг_организации>/<слаг_репозитория>#<номер_задачи> — задача в указанных организации и репозитории.
  7. (опционально) Чтобы запросить правки в предложении изменений, выберите опцию Запрос изменений.

  8. Нажмите Комментировать.

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

Совет

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

Предложить код и принять предложение

Предложить код в комментарии

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

  1. Откройте главную страницу SourceCraft.

  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.

  3. Выберите репозиторий.

  4. На странице репозитория в разделе Код перейдите в секцию Предложения изменений.

  5. Выберите предложение изменений.

  6. На вкладке Изменённые файлы напротив строки, для которой хотите предложить код, нажмите .

    Совет

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

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

  7. В открывшемся окне нажмите Предложение кода.

  8. Введите код, который вы хотите предложить.

    Важно

    Предложение кода отличается от обычного комментария наличием разметки suggestion:

    ```suggestion
    Предлагаемые изменения
    ```
    

    Не удаляйте и не изменяйте эту разметку.

  9. (опционально) Чтобы запросить правки в предложении изменений, выберите опцию Запрос изменений.

  10. Нажмите Комментировать.

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

Принять код, предложенный в комментарии

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

  1. В правом верхнем углу комментария с предложенным кодом нажмите .
  2. Введите сообщение к коммиту и нажмите Применить.

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

  1. В правом верхнем углу всех комментариев, которые вы хотите принять, нажмите .

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

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

    В нижней части страницы нажмите Применить.

  3. Введите сообщение к коммиту и нажмите Применить.

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

Вынести резолюцию

  1. Откройте главную страницу SourceCraft.
  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.
  3. Выберите репозиторий.
  4. На странице репозитория в разделе Код перейдите в секцию Предложения изменений.
  5. Выберите предложение изменений.
  6. В правом верхнем углу напротив кнопки Одобрить нажмите .
  7. Выберите резолюцию:
    • Одобрить — одобрить текущую итерацию предложения изменений. После внесения правок в предложение изменений резолюцию надо будет получить повторно.
    • Доверять — одобрить текущую и все последующие итерации предложения изменений.
    • Заблокировать — запретить слияние правок из предложения изменений в целевую ветку.

Обновить ветку-источник

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

  1. Откройте главную страницу SourceCraft.

  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.

  3. Выберите репозиторий.

  4. На странице репозитория в разделе Код перейдите в секцию Предложения изменений.

  5. Выберите предложение изменений.

  6. В правом верхнем углу нажмите и выберите Обновить ветку.

  7. Выберите способ обновления:

    • Обновить слиянием — в ветке-источнике создается отдельный коммит слияния, который сохраняет историю изменений обеих веток.
    • Обновить через squash и rebase — коммиты ветки-источника переносятся поверх последнего коммита целевой ветки, сохраняя линейную историю изменений.
  8. В открывшемся окне подтверждения нажмите Да, конечно.

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

Выполнить слияние с целевой веткой

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

  1. Откройте главную страницу SourceCraft.
  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.
  3. Выберите репозиторий.
  4. На странице репозитория в разделе Код перейдите в секцию Предложения изменений.
  5. Выберите предложение изменений.
  6. В правом верхнем углу напротив кнопки Принять нажмите .
  7. Выберите способ слияния с целевой веткой:
    • Создать изменение для объединения — в целевой ветке создается отдельный коммит слияния, который сохраняет историю изменений обеих веток. Этот подход наглядно показывает, когда и как происходило слияние, сохраняя всю историю разработки без изменений.
    • Объединить одним изменением — перед слиянием с целевой веткой коммиты из ветки с изменениями объединяются в один коммит. Это помогает сохранить более чистую и упрощенную историю изменений, сводя серию мелких коммитов к одному.
    • Перебазировать и объединить — коммиты из ветки с изменениями присоединяются к основной ветке без создания специального коммита слияния. Это перемещает коммиты из ветки с изменениями в конец целевой ветки, сохраняя линейную историю изменений.
  8. В правом верхнем углу нажмите кнопку с выбранным способом слияния.

Совет

Чтобы ветка-источник предложения изменений автоматически удалялась после слияния с целевой веткой, в блоке Настройки слияния включите опцию Удалять ветку-источник после слияния. Эта опция переопределяет поведение по умолчанию, заданное для репозитория в файле .sourcecraft/branches.yaml.

Примечание

Также вы можете принудительно выполнить слияние с целевой веткой, минуя рецензирование и автоматические проверки.

Отклонить предложение изменений

  1. Откройте главную страницу SourceCraft.
  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.
  3. Выберите репозиторий.
  4. На странице репозитория в разделе Код перейдите в секцию Предложения изменений.
  5. Выберите предложение изменений.
  6. В правом верхнем углу нажмите кнопку и выберите Отклонить предложение изменений.

Описать предложение изменений

  1. Откройте главную страницу SourceCraft.

  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.

  3. Выберите репозиторий.

  4. На странице репозитория в разделе Код перейдите в секцию Предложения изменений.

  5. Выберите предложение изменений.

  6. В разделе Описание добавьте или измените описание.

    Вы можете использовать Code Assistant для генерации описания, для этого нажмите Создать с помощью ИИ.

    Генерация описания может занять некоторое время.

    Совет

    Вы можете задать правила, по которым Code Assistant будет формировать описания, в файле AGENTS.md в корне репозитория.

Добавить метки

  1. Откройте главную страницу SourceCraft.
  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.
  3. Выберите репозиторий.
  4. На странице репозитория в разделе Код перейдите в секцию Предложения изменений.
  5. Выберите предложение изменений.
  6. На панели справа в разделе Метки добавьте метки.

Полезные ссылки