Дизайн команды resolve
Цель
Добавить команду @qwen-code /resolve, которую может запускать мейнтейнер, для pull request, заблокированных из-за конфликтов слияния с веткой по умолчанию.
Область применения
Первая версия намеренно консервативна:
- Команда выполняется только в
QwenLM/qwen-code. - У запрашивающего должны быть права
write,maintainилиadmin. - Целевым объектом должен быть открытый pull request.
- Ветка pull request должна находиться в базовом репозитории.
- Pull request из форков помечаются как неподдерживаемые, и push в них не выполняется.
- Агент не получает GitHub-токен. Он может только редактировать файлы и создавать коммиты локально.
- Отдельный шаг публикации внедряет
CI_DEV_BOT_PATдля выполнения push и добавления комментариев.
Рабочий процесс
- Существующий workflow команд для PR обрабатывает
issue_commentилиworkflow_dispatchи разрешает целевой pull request. - Задача авторизации проверяет права запрашивающего как соавтора с помощью
CI_BOT_PAT. - Задача resolve подтверждает триггеры в виде комментариев реакцией
eyes. - Задача считывает метаданные pull request и отклоняет закрытые pull request, draft-версии, pull request без конфликтов и pull request из форков.
- Для подходящих pull request задача переключается на ветку pull request с отключенным сохранением учетных данных, получает базовую ветку и проверяет, что ветка по-прежнему указывает на ожидаемый head SHA.
- Qwen Code запускается без учетных данных GitHub, сливает
origin/<base>, разрешает конфликты, проверяет результат, создает коммит и записывает артефакт summary. - Детерминированный шаг проверки завершается с ошибкой при наличии неразрешенных конфликтов, отсутствии summary или падении проверок.
- Шаг публикации выполняет push с флагом
--force-with-leaseотносительно исходного head SHA и добавляет комментарий с summary по разрешению конфликтов.
Вне области применения
- Автоматический push в pull request из форков.
- Создание pull request на замену для внешних контрибьюторов.
- Запланированное сканирование устаревших pull request с конфликтами.
- Разрешение состояний, препятствующих слиянию, отличных от прямых конфликтов слияния.
Last updated on