Я извлекаю разницу из Docker-контейнера через стандартный вывод. Затем я намерен выполнить некоторые операции над этим диффом, а именно выбрать из него некоторый набор фрагментов и построить из них файл патча.
Цель контейнера — безопасно изолировать действия ИИ-агент в песочнице. Целью агента ИИ является автоматизация рабочих процессов git, таких как интерактивные перебазировки или, в данном случае, разбиение больших различий на небольшие, логически связные коммиты. Я выполняю всю обработку, насколько это возможно, с помощью Python.
Однако в какой-то момент мне нужно отобразить эти изменения обратно в контейнер, чтобы обновить состояние среды агента. Вот с этим у меня проблемы.
Проблема
Патч создается на Python, и затем я хотел бы сохранить эти данные в изменениях. .patch внутри контейнера Docker, чтобы я мог впоследствии применить патч, зафиксировать изменения и т. д. Вариант использования этого заключается в том, чтобы AI-агент автоматически выбирал фрагменты и итеративно обрабатывал их в коммиты. Из-за этого я, если я что-то не пропустил, не могу использовать встроенные интерактивные команды git (в данном случае git add -e), поскольку они висят в открытом файле в терминале.
Чтобы заполнить файл патча сгенерированными различиями, я неоднократно натыкался на Here-Documents [1][2][3], с помощью которого я сейчас пытаюсь это реализовать.Соответствующая часть моего кода выглядит так следует:
Код: Выделить всё
command = '/bin/bash -c "{command_to_execute}"' # Need to quote command for it to actually be executed in the container
update_patch_file_command = command_to_execute.format(command=f"cat > {file
Подробнее здесь: [url]https://stackoverflow.com/questions/79364353/storing-arbitrary-git-patches-generated-in-python-in-a-file-inside-a-docker-cont[/url]
Мобильная версия