Skip to content

Automation and CI/CD

📚 Навигация по серии: Предыдущая статья 〔26 Интеграция с Git и GitHub〕 научила вас использовать Codex для локального управления ветками, создания коммитов и отправки PR — всё это происходило, когда вы сидели перед компьютером, а ИИ помогал вам на месте. В этой статье мы настроим работу в режиме «без участия человека»: после настройки при открытии PR Codex автоматически проведет ревью, при падении CI предложит патч с исправлением, а каждый день по расписанию будет формировать отчет по вчерашним коммитам — и всё это без вашего непосредственного участия. В следующей статье 〔28 Неинтерактивный режим: codex exec〕 мы детально разберем ключевую команду, которая приводит всё это в действие.

Говорят, что главная ценность инструментов программирования на базе ИИ заключается в парном программировании и совместном обсуждении кода. Но честно говоря, это лишь половина правды.

Поработав с Codex более полугода, я пришел к выводу: настоящий рост производительности происходит тогда, когда вас нет на месте. При парном программировании вы должны присутствовать, контролировать процесс и одобрять каждый шаг ИИ. По сути, это схема «вы ведете, он помогает», и работа останавливается, как только вы отходите от компьютера. Но в разработке полно монотонных и регулярных задач: просмотреть новый PR, разобраться с упавшим посреди ночи CI, составить еженедельный отчет о проделанной работе. У этих задач есть общие черты: они рутинны, предсказуемы, и никто не хочет делать их вручную.

Именно для таких задач создана автоматизация. Подключив Codex к конвейеру CI и настроив запуск по расписанию, вы превращаете его из «помощника у монитора, за которым нужен глаз да глаз» в «ночного дежурного, патрулирующего ваш репозиторий». В этой статье мы разберем два направления: первое — интеграция Codex в GitHub Actions (со стороны CI/CD), второе — настройка регулярных фоновых задач в Desktop App (на вашей локальной машине). Вместе они обеспечат круглосуточную автоматическую поддержку вашего проекта.

Прочитав эту статью, вы получите:

  • Понимание разницы между двумя путями автоматизации: openai/codex-action для CI/CD и Automations для запуска фоновых задач по расписанию в Desktop App
  • Шаблон минимального работоспособного workflow для GitHub Actions с построчным разбором для ревью ваших PR
  • Описание ключевых параметров codex-action (prompt-file, sandbox, safety-strategy, final-message...), сверенное с официальной документацией
  • Правила безопасной настройки OpenAI key в GitHub Secrets и разбор критических уязвимостей
  • Инструкцию по настройке Automations в Desktop App, просмотру результатов задач и выбору режима выполнения (Local или Worktree)
  • Пошаговое практическое руководство по созданию и тестированию регулярного отчета о коммитах

⚠️ Параметры, имена команд и значения по умолчанию в этой статье основаны на официальной документации Codex (GitHub Action и Automations). Версии программного обеспечения и названия моделей могут меняться со временем, ориентируйтесь на актуальные данные в вашем интерфейсе.


01 Две дороги автоматизации: не путайте их в самом начале

Начнем с карты процессов. Автоматизация в Codex разделена на два направления, которые работают в разных средах и решают разные задачи:

  • Направление 1: GitHub Actions (openai/codex-action). Задачи выполняются на виртуальных машинах (runner) GitHub. Триггером служат события репозитория (создание PR, пуш кода, завершение сборки). Это часть процесса CI/CD (непрерывная интеграция и доставка). Сценарии ориентированы на командную работу: ревью PR, контроль качества кода, автоматическое исправление ошибок сборки.
  • Направление 2: Automations (автоматические задачи). Задачи выполняются на вашем компьютере с запущенным Desktop App Codex. Триггером служит время (настройка по расписанию или cron). Это персональный фоновый помощник. Сценарии ориентированы на индивидуальные задачи: подготовка ежедневного отчета, периодический аудит проекта, мониторинг долгих вычислений.

Почему важно разделять эти понятия? Самая частая ошибка новичков — попытка использовать неподходящий инструмент для задачи. Например, разработчик хочет настроить авторевью PR для всей команды, но прописывает Automation в своем Desktop App. В результате проверка перестает работать, как только он выключает компьютер. Или пытается настроить утреннее напоминание о локальной ветке через GitHub Actions, к которому облачный сервер просто не имеет доступа.

Аналогия: дежурный охранник vs личный дворецкий. GitHub Actions — это дежурный охранник офисного здания (вашего репозитория). Он живет на КПП (в облаке GitHub), следит за порядком в общих зонах и реагирует на события (кто-то пришел или сработала сигнализация). Он обслуживает всю компанию. Automations — это личный дворецкий в вашем доме (на локальном компьютере). Он выполняет ваши личные поручения по расписанию (например, «подать завтрак в 9 утра»). Если вы уехали и закрыли дом (выключили компьютер), он не работает. Охранник отвечает за общую безопасность и процессы компании, дворецкий — за ваш личный комфорт. Не просите охранника забрать вашу почту из домашнего ящика.

Сравнение двух подходов:

ПараметрGitHub Actions (codex-action)Automations (Desktop App)
Среда выполненияОблачные раннеры GitHubЛокальный компьютер с запущенным Codex
Триггер запускаСобытия репозитория (push, Pull Request, CI)Расписание / интервалы времени (cron)
Требуется ли ваше присутствиеНет, выполняется полностью автономноКомпьютер должен быть включен, приложение запущено
Типичные задачиРевью PR, контроль качества, автоисправление баговЕжедневные отчеты, регулярный аудит, мониторинг
Сфера примененияИнтеграция в процессы команды (CI/CD)Личная продуктивность, фоновые задачи

Далее мы разберем GitHub Actions (разделы 02–05), затем перейдем к Automations (раздел 06) и закончим практическим примером (раздел 07).

💡 Резюме в одном предложении: Автоматизация делится на два типа: GitHub Actions (работает в облаке, реагирует на события репозитория, управляет процессами команды) и Automations (работает на вашем ПК по расписанию, решает ваши личные задачи). Выбирайте инструмент исходя из того, где и для кого должна выполняться задача.


02 Что такое GitHub Action: запуск codex exec в облачном конвейере

Разберем первое направление подробно. Экшен openai/codex-action — это готовый шаг для сборки GitHub Actions, который берет на себя установку Codex CLI, настройку прокси для API-ключей и запуск команды codex exec с заданными параметрами. Вам не нужно писать скрипты инициализации окружения самостоятельно.

Ключевое понятие здесь — codex exec. Это неинтерактивный режим работы (non-interactive mode) Codex CLI. В этом режиме утилита принимает текстовую инструкцию (prompt), выполняет ее и завершает работу, выводя результат. На нем построена вся облачная автоматизация. (Подробнее саму команду codex exec мы разберем в 28-й статье).

Из описания экшена:

Используйте Codex GitHub Action (openai/codex-action@v1) для выполнения задач Codex, применения патчей или публикации результатов ревью в процессах CI/CD. Экшен устанавливает Codex CLI, запускает прокси-сервер для Responses API при передаче API-ключа и выполняет команду codex exec с указанными правами доступа.

Аналогия: чемоданчик с инструментами для командировок. Вы можете приехать на объект (облачный раннер) и начать собирать рабочее место с нуля: скачивать дистрибутивы, настраивать авторизацию, копировать ключи. А можете взять готовый сертифицированный чемоданчик от производителя (codex-action), в котором уже лежит настроенный инструмент, готовый к работе по вашей инструкции. Ценность этого решения — в безопасности и надежности развертывания окружения на чужой виртуальной машине, особенно в части работы с ключами доступа (подробнее в разделе 05).

Разработчики выделяют три основных сценария использования экшена:

  • Автоматическая отправка замечаний и отчетов в ветки Pull Request или релизы.
  • Блокировка сборки при непрохождении проверок качества кода от Codex (качество кода как ворота CI).
  • Выполнение регулярных рутинных задач (проверка безопасности, подготовка к релизу, миграции файлов) по шаблону.

Важное отличие от интерактивного режима ревью: этот процесс не запускается вашим комментарием в чате. Это стандартный инструмент GitHub Actions, который описывается в файлах конфигурации workflow и реагирует на системные события.

💡 Резюме в одном предложении: Экшен openai/codex-action — это готовый контейнер для CI, который устанавливает CLI, настраивает прокси-сервер для ключей и запускает команду codex exec на основе системных триггеров (push, PR и т. д.).

Общая схема процесса автоматизации через CI выглядит так:

Схема автоматизации CI/CD

Любое из событий репозитория (push, Pull Request, cron-расписание) запускает workflow. Виртуальная машина выполняет команду codex exec с заданным набором прав и возвращает результат в виде комментариев к PR, коммитов с исправлениями или отчетов.


03 Шаблон workflow: разбираем YAML-файл для ревью PR

Перейдем к практике. Ниже представлен рабочий шаблон workflow для GitHub Actions, который автоматически проверяет код при создании PR и публикует замечания в комментариях.

Аналогия: регламент работы двух дежурных на проходной. Первый дежурный (шаг codex) — это инспектор. Он проверяет документы, сверяет их с инструкцией (prompt-file) и записывает замечания в блокнот (выходной параметр final-message). Второй дежурный (шаг post_feedback) — это курьер. Он ждет, пока инспектор закончит работу, берет блокнот с записями и передает их в отдел кадров (публикует в комментарии к PR). Разделение ролей обусловлено безопасностью: у инспектора минимальные права доступа (только чтение), а курьер имеет права на публикацию сообщений.

Пример конфигурационного файла:

yaml
# Путь к файлу: .github/workflows/codex-review.yml
name: Codex pull request review
on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  codex:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    outputs:
      final_message: ${{ steps.run_codex.outputs.final-message }}
    steps:
      - uses: actions/checkout@v5
        with:
          ref: refs/pull/${{ github.event.pull_request.number }}/merge
          persist-credentials: false

      - name: Run Codex
        id: run_codex
        uses: openai/codex-action@v1
        with:
          openai-api-key: ${{ secrets.OPENAI_API_KEY }}
          prompt-file: .github/codex/prompts/review.md
          output-file: codex-output.md

  post_feedback:
    runs-on: ubuntu-latest
    needs: codex
    if: needs.codex.outputs.final_message != ''
    permissions:
      issues: write
      pull-requests: write
    steps:
      - name: Post Codex feedback
        uses: actions/github-script@v7
        with:
          github-token: ${{ github.token }}
          script: |
            await github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: context.payload.pull_request.number,
              body: process.env.CODEX_FINAL_MESSAGE,
            });
        env:
          CODEX_FINAL_MESSAGE: ${{ needs.codex.outputs.final_message }}

Разберем структуру файла по блокам:

Блок 1: on (триггеры запуска). Настройка pull_request со статусами opened (создание PR), synchronize (новые коммиты в PR), reopened (повторное открытие). Сборка запускается при любом из этих событий.

Блок 2: checkout (получение кода). Инструкции требуют обязательного скачивания кода репозитория перед запуском шага Codex. Параметр persist-credentials: false запрещает сохранять учетные данные Git на раннере, а ref: .../merge скачивает код в состоянии после слияния с целевой веткой, что необходимо для корректного ревью.

Блок 3: Run Codex (непосредственно шаг Codex).

yaml
- uses: openai/codex-action@v1
  with:
    openai-api-key: ${{ secrets.OPENAI_API_KEY }}
    prompt-file: .github/codex/prompts/review.md
    output-file: codex-output.md

Мы передаем три параметра: openai-api-key (ссылка на секрет), prompt-file (путь к файлу инструкции ревью в репозитории) и output-file (имя файла для сохранения результатов на диск раннера).

Блок 4: outputs и post_feedback (публикация результатов). Работа codex передает результат через выходной параметр steps.run_codex.outputs.final-message. Вторая работа post_feedback запускается только после успешного завершения первой (needs: codex), проверяет наличие текста ошибки (if: ... != '') и с помощью стандартного скрипта GitHub API оставляет комментарий в ветке PR.

Выходной параметр final-message — это основной результат работы экшена, содержащий итоговый текстовый отчет Codex. Его можно использовать для отправки уведомлений в мессенджеры, сохранения в артефакты или анализа в последующих шагах сборки.

Схема движения данных в этом workflow:

Движение данных в workflow

Событие PR запускает workflow → код скачивается на раннер → запускается codex-action с файлом правил → отчет передается в параметр final-message → скрипт публикует отчет в комментарии к PR.

Для передачи инструкций можно использовать либо файл (prompt-file), либо строку текста (prompt). Указывайте только один из этих параметров, одновременное использование приведет к ошибке сборки.

💡 Резюме в одном предложении: Шаблон workflow описывает цепочку: событие PR → получение кода → запуск codex-action по правилам из файла → запись отчета в final-message → публикация комментария скриптом. Шаг ИИ изолирован от процесса записи комментариев из соображений безопасности.


04 Настройка параметров экшена: управление поведением ИИ

Параметры экшена codex-action в YAML-файле транслируются в опции запуска локальной утилиты codex exec. Вы можете тонко настраивать поведение ИИ с помощью следующих ключей:

Параметр в YAMLНазначениеПримечание
prompt / prompt-fileЗадача для ИИ (текстовая строка или путь к файлу)Должен быть указан только один из параметров
sandboxРежим изоляции песочницыВарианты: workspace-write, read-only, danger-full-access
model / effortВыбор модели и уровня детализацииПо умолчанию используются рекомендуемые настройки, не пишите жесткие имена моделей
output-fileПуть для сохранения отчета на дискПозволяет использовать отчет на следующих шагах сборки
codex-argsДополнительные аргументы CLIПередаются в виде массива JSON (["--ephemeral"]) или строки (--profile ci)
codex-versionФиксация версии CLIЕсли не указан, используется последняя стабильная версия
codex-homeПуть к домашней директории CodexИспользуется для сохранения общих настроек и MCP между шагами

Важные особенности настройки параметров:

Настройка уровня изоляции sandbox. В 15-й статье мы подробно разбирали три уровня ограничений песочницы: read-only (только чтение), workspace-write (запись в рабочую папку) и danger-full-access (полный доступ). Для процессов автоматизации действует правило: предоставляйте ИИ минимально необходимые права. Если задача Codex — только проверить код, используйте режим по умолчанию read-only. Если ИИ должен внести исправления в файлы проекта, явно укажите sandbox: workspace-write.

Внимание: по умолчанию команда codex exec запускается в режиме read-only! Если вы не укажете этот параметр, ИИ не сможет перезаписать файлы на диске раннера при попытке исправить баги.

Передача параметров через codex-args. Этот ключ позволяет передавать любые аргументы командной строки в CLI. Например, с помощью аргумента --output-schema можно потребовать от Codex вернуть результат строго в формате JSON, соответствующем заданной схеме, чтобы разобрать его на последующих этапах сборки.

Параметры model и effort. Производитель рекомендует оставлять эти поля пустыми. Codex сам выберет наиболее подходящую и экономичную модель для решения задачи. Это защитит ваш workflow от сбоев при выводе устаревших моделей из эксплуатации.

Сохранение результатов на диск (output-file) позволяет настроить их архивацию с помощью стандартного экшена actions/upload-artifact. Это полезно для ведения логов аудита безопасности проекта.

Экшен автоматически разворачивает Responses API прокси для защиты вашего API-ключа от утечки через процессы виртуальной машины.

💡 Резюме в одном предложении: Параметры экшена соответствуют ключам CLI codex exec. Помните, что по умолчанию включен режим read-only, и для изменения файлов нужно явно прописать sandbox: workspace-write. Параметры моделей лучше оставлять пустыми.


05 Безопасность API-ключей и прав доступа в CI

Использование секретов в автоматических сценариях требует строгого соблюдения правил безопасности. Утечка API-ключа может привести к финансовым потерям.

Правило 1: Использование GitHub Secrets для хранения ключей

В документации четко сказано:

Сохраняйте ваш OpenAI API-ключ в секретах репозитория GitHub (например, под именем OPENAI_API_KEY) и ссылайтесь на него в workflow.

Никогда не пишите ключ в коде YAML-файла.

Аналогия: хранение ценностей в сейфе банка. Секреты GitHub — это защищенная ячейка. Вы кладете туда ключ один раз, после чего система скрывает его значение. В YAML-файле вы пишете не сам ключ, а запрос на его получение из ячейки (${{ secrets.OPENAI_API_KEY }}). Даже при публикации логов сборки GitHub автоматически маскирует эти значения звездками.

Для добавления ключа перейдите в меню репозитория Settings → Secrets and variables → Actions, нажмите New repository secret, укажите имя OPENAI_API_KEY и вставьте значение ключа.

Правило 2: Запрет на использование ключа на уровне окружения (job env)

Это неочевидная уязвимость, о которой авторы Codex предупреждают отдельно:

Не объявляйте переменные OPENAI_API_KEY или CODEX_API_KEY на уровне работы (job env) в workflow, если в рамках этой работы запускаются внешние скрипты или тесты. Любые скрипты сборки, тесты и хуки зависимостей могут прочитать эти переменные из окружения.

Если вы укажете ключ в глобальном блоке env работы, то любой скрипт, запускаемый в рамках тестов (например, вредоносный код в составе пакета npm), сможет прочитать его значение и отправить злоумышленникам. Передавайте ключ строго внутрь шага экшена через параметр with, как показано в нашем шаблоне.

Правило 3: Ограничение прав выполнения на раннере

По умолчанию виртуальные машины GitHub предоставляют процессам широкие полномочия. Настройте ограничения:

Механизм защитыОписаниеЗначение
safety-strategyОтзыв прав sudo перед запуском Codex для защиты памяти процессаПо умолчанию drop-sudo. На Windows-раннерах требует значения unsafe
unprivileged-userЗапуск Codex от имени выделенного пользователя с низкими правамиТребует предварительной настройки учетной записи в системе
read-onlyОграничение доступа к сети и файловой системе на уровне экшенаНе отменяет системные привилегии процесса
sandboxВнутренняя изоляция контейнера CodexНастраивается через параметр sandbox в YAML
allow-users / allow-botsСписок учетных записей, которым разрешено запускать workflowПо умолчанию запуск разрешен только пользователям с правами на запись

Ключевые моменты защиты:

Параметр safety-strategy со значением drop-sudo отзывает права суперпользователя у процесса Codex, предотвращая чтение дампов памяти раннера. На Windows-системах эта функция не поддерживается, поэтому там приходится указывать unsafe, что снижает безопасность в многопользовательских средах.

Параметры allow-users и allow-bots защищают публичные репозитории от несанкционированного запуска сборки сторонними разработчиками через форки проекта.

Краткий чек-лист безопасности:

❌ Опасные практики✅ Рекомендуемые решения
Публикация открытого ключа в YAML-файлеХранение ключа в GitHub Secrets
Объявление ключа в глобальном блоке env: работыПередача ключа строго в секцию with: экшена
Отключение safety-strategy на общих раннерахИспользование режима drop-sudo по умолчанию
Запуск сборки на любых коммитах из внешних форковОграничение круга лиц через allow-users
Использование сырых текстов PR в промптах без очисткиПредварительная фильтрация входных данных на наличие инъекций

Помните о риске prompt-инъекций (описанных в 16-й статье). Злоумышленник может отправить Pull Request с вредоносным текстом в описании, надеясь перехватить управление логикой ИИ на этапе сборки. Всегда очищайте внешние тексты перед их передачей в Codex. Рекомендуется запускать шаг Codex последним в цепочке сборки, чтобы возможные сбои не повлияли на предыдущие этапы валидации кода.

💡 Резюме в одном предложении: Безопасность в CI строится на трех правилах: шифруйте ключи в Secrets, не объявляйте их в глобальном окружении job env и ограничивайте права процесса через safety-strategy: drop-sudo и параметры песочницы.


06 Настройка Automations: регулярные фоновые задачи в Desktop App

Второе направление автоматизации — фоновые задачи в Desktop App. Они запускаются на вашем компьютере по расписанию и помогают решать повседневные задачи разработчика.

Принцип работы Automations:

Задачи выполняются в фоновом режиме по расписанию. Результаты анализа Codex отправляет во встроенный почтовый ящик (Inbox / Triage). Если в ходе выполнения не обнаружено важных событий, задача автоматически архивируется, не отвлекая пользователя.

Аналогия: робот-пылесос с базой самоочистки. Он запускается по таймеру ночью, убирает квартиру и возвращается на базу. Если все чисто, он не присылает уведомлений. Но если он застрял или нашел ценную вещь, он подает сигнал на телефон. Так же работает и Automation: ИИ регулярно проверяет проект в фоне и беспокоит вас только при обнаружении проблем.

Примеры использования фоновых задач

  • Подготовка утреннего отчета о коммитах: ИИ анализирует изменения в ветке main за последние 24 часа, группирует их по темам и оставляет отчет. Утром вы сразу видите картину изменений.
  • Регулярный аудит кода на наличие багов: ИИ раз в сутки сканирует новые коммиты на соответствие правилам безопасности и предлагает исправления.
  • Мониторинг долгих процессов: ИИ периодически проверяет статус выполнения тестов или сборки на удаленном сервере и присылает отчет о завершении.

Типы автоматизации: Standalone vs Thread Automation

В Desktop App доступно два типа фоновых задач:

ПараметрStandalone Automation (независимая)Thread Automation (в потоке)
Контекст запускаКаждый запуск создает новую чистую сессиюВыполняется в рамках одного существующего диалога
Сохранение историиИстория предыдущих запусков не учитываетсяДоступна вся переписка и контекст предыдущих шагов
Куда выводится результатНовое сообщение в папке Triage (Inbox)Добавляется новым сообщением в ветку текущего потока
Сфера примененияРегулярные изолированные отчеты (например, ежедневный дайджест)Мониторинг процессов с накоплением данных (например, отслеживание сборки)

При настройке Thread Automation промпт должен быть написан с расчетом на многократный запуск. Укажите ИИ, как реагировать на отсутствие изменений и в какой момент прекращать мониторинг.

Выбор рабочей директории: Local vs Worktrees

Для проектов под управлением Git вы можете выбрать, где выполнять фоновые задачи:

  • Режим Worktrees (рекомендуется): Для задачи создается временная изолированная папка worktree. Изменения кода в фоновом режиме не мешают вашей текущей работе в основном каталоге.
  • Режим Local: Задача выполняется прямо в вашей рабочей папке. Будьте осторожны: фоновый процесс может перезаписать файлы, которые вы редактируете в данный момент.
  • Для обычных папок (без Git) задача всегда выполняется локально.

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

Создание задач и права доступа

Самый простой способ создать автоматизацию — попросить об этом Codex в обычном чате. Опишите задачу, укажите расписание (поддерживается синтаксис cron) и выберите режим изоляции. Codex сам создаст нужный сценарий. Вы также можете управлять задачами вручную через вкладку Automations в боковой панели Desktop App.

Особенности выполнения задач:

1. Фоновые задачи используют глобальные настройки песочницы. Если на компьютере включен режим read-only, задачи по автоисправлению кода не смогут изменить файлы. Для работы таких сценариев требуется уровень доступа workspace-write.

2. Задачи запускаются с политикой approval_policy = "never". Фоновый процесс выполняется без вывода окон подтверждения команд. Защиту системы в этом случае обеспечивает правильно настроенная песочница и правила AGENTS.md. Если администратор запретил выполнение без подтверждения на уровне политик компании, автоматизация вернется к стандартному интерактивному режиму с запросом разрешений.

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

⚠️ Важное условие: Фоновые задачи в Desktop App выполняются только тогда, когда ваш компьютер включен, приложение запущено, а папка проекта доступна на диске. В отличие от GitHub Actions, этот метод привязан к вашей локальной рабочей станции.

💡 Резюме в одном предложении: Automations в Desktop App выполняют фоновые задачи по расписанию на вашем ПК. Рекомендуется запускать их в режиме Worktree для изоляции изменений и использовать ручное тестирование промптов перед постановкой на расписание.


07 Практика: настраиваем регулярный отчет о коммитах

Пройдем шаги настройки фонового отчета о коммитах в Desktop App Codex, чтобы увидеть автоматизацию в действии. Этот пример безопасен и работает локально.

Убедитесь, что у вас запущено Desktop App Codex и открыта папка любого Git-репозитория с историей коммитов.

Шаг 1: Тестирование промпта в чате

Откройте чат с проектом и отправьте сообщение:

text
Покажи коммиты в этом репозитории за последние 24 часа и составь краткий отчет на русском языке:
- Сгруппируй изменения по темам (не пиши хэши коммитов)
- Опиши суть изменений каждой группы одной фразой
- Если коммитов не было, выведи сообщение: «За последние 24 часа изменений не обнаружено»

Ожидаемый результат: Codex прочитает историю Git и выведет структурированный отчет. Мы убедились, что формулировка промпта понятна ИИ и результат нас устраивает.

Шаг 2: Создание автоматической задачи

В этом же диалоге напишите команду:

text
Создай на основе этого промпта ежедневную независимую задачу (Automation) с запуском в 9:00.
Выполняй её в режиме worktree. Если изменений в коде нет, автоматически архивируй задачу.

Ожидаемый результат: Codex подтвердит создание задачи, настроит триггер запуска на 9:00 и укажет режим изоляции Worktree.

Вы также можете настроить более сложное расписание с помощью cron-выражений (например, 0 9 * * 1-5 для запуска по будням) в окне настройки задачи.

Шаг 3: Проверка в списке задач

Перейдите во вкладку Automations в боковой панели приложения.

Ожидаемый результат: В списке должна появиться новая запись с описанием вашей задачи, расписанием запуска и пометкой типа (Standalone).

Шаг 4: Ручной запуск для проверки

Нажмите кнопку запуска (Run) рядом с созданной задачей в панели управления, не дожидаясь наступления утра.

Ожидаемый результат:

  • Начнется процесс выполнения задачи в фоновом режиме.
  • После завершения, если в репозитории были коммиты за сутки, в папке Triage (Inbox) появится новое сообщение с отчетом. Если коммитов не было, задача автоматически завершится и уйдет в архив без отправки уведомлений.
  • Появление отчета в Inbox подтверждает правильность настройки всей цепочки.

Шаг 5: Анализ и очистка

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

Этот простой пример показывает, как переложить рутину по сбору информации о проекте на плечи ИИ.

💡 Резюме в одном предложении: Практическая настройка состоит из шагов: ручная проверка промпта → отправка команды на создание задачи в чат → проверка статуса в панели Automations → тестовый ручной запуск → анализ результатов в папке Inbox.


08 Итоги

В этой главе мы разобрали инструменты автоматизации Codex, позволяющие настроить фоновую работу ИИ без вашего непосредственного участия.

Основные выводы представлены в таблице:

ЗадачаИнструментКлючевой момент
Интеграция в командные процессыGitHub Actions (openai/codex-action)Запуск в облаке по триггерам событий репозитория
Написание конфигурации CIYAML-файл в папке .github/workflows/Двухэтапная схема: проверка ИИ с правами чтения → публикация скриптом с правами записи
Параметры запуска в CIАргументы YAML-файла экшенаПесочница по умолчанию закрыта на запись (read-only), для коммитов требуется workspace-write
Защита учетных данных в CIGitHub SecretsПередавайте ключ строго внутрь шага экшена, не используйте глобальные переменные job env
Фоновые задачи на локальном ПКРаздел Automations в Desktop AppЗапуск по расписанию; результаты направляются в папку Inbox
Изоляция фоновых задач на ПКРежим WorktreeЗащищает текущие рабочие файлы разработчика от случайной перезаписи ИИ

Теперь вы умеете:

  • Различать сферы применения облачной автоматизации процессов репозитория (GitHub Actions) и локальной автоматизации рутины разработчика (Automations).
  • Настраивать безопасные workflow-файлы для автоматического код-ревью PR на базе экшена openai/codex-action.
  • Управлять уровнями доступа песочницы в облаке и настраивать защиту ключей от кражи через переменные окружения.
  • Создавать, тестировать и запускать фоновые задачи по расписанию в Desktop App с изоляцией файлов в Worktree.

Настройка автоматических процессов позволяет сэкономить время команды на код-ревью и сбор рутинной информации.


В следующей статье 28 · Неинтерактивный режим: codex exec мы заглянем под капот инструментов автоматизации. Мы детально разберем работу команды codex exec, которая является основой для запуска Codex в скриптах, узнаем разницу в обработке потоков stdout/stderr и научимся встраивать ИИ в собственные bash-скрипты.


Рекомендуемое чтение