Автоматизация Codex и CI/CD
Codex предоставляет несколько методов автоматизации, которые можно использовать в скриптах, конвейерах и на стороне сервера.
Неинтерактивный режим (exec)
Команда exec используется в сценариях скриптов и автоматизации, без необходимости открывать TUI.
Базовое использование
команда exec
codex exec "Проверьте код и выведите отчёт"
# Вывод в файл
codex exec -o review.md "Проверьте src/auth.py"
# Использовать конкретную модель
codex exec -m gpt-5.4-mini "Проанализируйте структуру проекта"
# Полностью автоматическое выполнение
codex exec --full-auto "Запустите тесты и исправьте ошибки"
Общие параметры
| Параметр | Описание |
|---|---|
-m | Указать модель |
-o | Вывод результата в файл |
--full-auto | Полностью автоматическое выполнение |
--ephemeral | Не сохранять файлы сессии |
--json | Формат вывода JSON Lines |
--output-schema | Вывод в соответствии с форматом JSON Schema |
--sandbox | Установите режим песочницы |
Чтение из стандартного ввода
ввод stdin
echo "Объясни эту ошибку" | codex exec -
# Чтение из файла
codex exec - < task.txt
# Многострочная задача
cat <<EOF | codex exec -
Проанализировать/каталог src
Найти потенциальные ошибки
Вывести предложения по исправлению
EOF
Возобновить сессию
Возобновить выполнение
codex exec resume --last "Продолжить исправление ошибок"
# Возобновить указанную сессию
codex exec resume --session abc123 "Следующая задача"
По умолчанию exec выполняется в песочнице только для чтения и не изменяет файлы.
Codex SDK
Codex SDK предоставляет программный интерфейс для вызова возможностей Agent в коде.
Установка SDK
Установка SDK
Примеры использования
Базовое использование SDK
// Создать клиент Codex
const codex = new Codex({
apiKey: process.env.OPENAI_API_KEY
});
// Выполнить задачу
const thread = await codex.run({
prompt: 'Проверьте файл src/auth.py',
model: 'gpt-5.4'
});
// Получить результат
console.log(thread.messages);
// Continue task
const followUp = await codex.run({
threadId: thread.id,
prompt: 'Fix the discovered bugs'
});
Сценарии применения SDK
- Интеграция в конвейеры CI/CD
- Создание пользовательских приложений Agent
- Автоматизация внутренних инструментов
- Пакетная обработка задач
GitHub Action
Официальный Codex GitHub Action позволяет запускать задачи в конвейерах CI.
Базовый рабочий процесс
Пример GitHub Action
name: Ревью Codex
on: [pull_request]
jobs:
codex-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Запуск ревью Codex
uses: openai/codex-action@v1
with:
prompt-file: '.github/codex-review.md'
model: 'gpt-5.4'
sandbox: 'workspace-write'
output-file: 'review.md'
- name: Опубликовать ревью
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const review = fs.readFileSync('review.md', 'utf8');
github.rest.pulls.createReview({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
body: review,
event: 'COMMENT'
});
Параметры действия
| Parameters | Описание |
|---|---|
prompt | Укажите описание задачи напрямую |
prompt-file | Укажите путь к файлу задачи |
model | Используемая модель |
sandbox | Режим песочницы |
output-file | Путь к выходному файлу |
codex-args | Дополнительные параметры CLI |
Конфигурация безопасности
Настройки безопасности
- name: Запустить Codex
uses: openai/codex-action@v1
with:
prompt: 'Проверить изменения'
safety-strategy: 'drop-sudo'
unprivileged-user: 'codex-runner'
allow-users: ['maintainers']
При использовании GitHub Action убедитесь, что API-ключ хранится в Secrets, не встраивайте его в код.
Сервер приложений
Сервер приложений предоставляет возможности Codex в виде серверного API.
Запуск сервера приложений
Запуск службы
codex app-server
# Укажите порт
codex app-server --port 3000
# Удалённый доступ
codex --remote ws://server:3000
Применимые сценарии
- Совместное использование возможностей Codex командой
- Удалённый вызов CI/CD
- Интеграция во внутренние платформы
MCP-сервер
Предоставьте Codex как инструмент MCP, чтобы другие агенты могли его вызывать.
Настройте Codex MCP
Конфигурация MCP-сервера
[mcp_servers.codex]
command = "codex"
args = ["mcp-server"]
Лучшие
Безопасность
- Используйте режим песочницы только для чтения
- Сохраните API-ключ как секреты
- Ограничьте условия срабатывания (только определённые события)
- Просмотрите вывод перед применением изменений
Надёжность
- Установите разумный тайм-аут
- Используйте --ephemeral, чтобы избежать остаточного состояния
- Убедитесь, что задача выполнена успешно, прежде чем продолжать
- Предусмотрите откат в случае сбоя
Часто задаваемые вопросы
Вопрос: В чём разница между exec и интерактивным режимом?
exec завершается после одного выполнения, подходит для автоматизации; интерактивный режим продолжает диалог.
Вопрос: Как аутентифицироваться в CI/CD?
Используйте переменную среды CODEX_API_KEY, хранящуюся в Secrets.
Вопрос: Может ли GitHub Action изменять файлы?
Да, установите sandbox: workspace-write.
Вопрос: как использовать в Docker?
Установите Codex в образ, настройте аутентификацию, затем вызовите его.
Другие расширения