Ви коли-небудь замислювалися, як налаштувати безпечну аутентифікацію для приватних пакунків Composer у середовищі Codex? У цій статті розглянемо перевірену структуру, що допоможе вам легко інтегрувати Laravel Nova у ваш проект!
# Скрипти, скріншоти та нюанси для безпечної авторизації приватних пакетів Composer в контейнерах середовища Codex
OpenAI Codex — популярний CLI інструмент, але чи знали ви, що в нього є і веб-інтерфейс?
# Чому цей посібник?
Приватні пакети (як Laravel Nova) потребують облікові дані під час установки. У Codex Web секрети доступні лише на етапі Налаштування. Якщо ви спробуєте встановити Nova пізніше, авторизація буде недоступна, і Composer видасть помилку 401. Цей посібник пропонує перевірену структуру, яку можна скопіювати для вашого проекту на Laravel.
✅ Підходить для будь-якого приватного джерела Composer (наприклад, самостійно розгорнутого Satis/Private Packagist) — просто змініть домен і облікові дані в конфігурації Composer.
Веб-інтерфейс Codex зовсім не громіздкий. Досить простий у використанні.
Ось практична різниця в Codex Web:
Скрипт налаштування *→ виконується, коли Codex створює новий контейнер середовища (а також під час розігріву кешу). Використовуйте його для установки інструментів, ОС-пакетів, мовних середовищ і залежностей проекту; зробіть однократне початкове налаштування проекту. Секрети доступні лише тут.
Скрипт обслуговування→ виконується, коли Codex відновлює контейнер середовища з кешу (наприклад, на наступних запитах протягом ~12 годин), щоб оновити робочий простір для поточної версії/гілки: завантажує останні залежності, перебудовує артефакти, виконує легкі міграції тощо. Це необов'язково, але заощаджує час від повторної установки.
Коли це виконується?
Нова задача або розігрів кешу: виконується налаштування, а отриманий стан контейнера кешується на ~12 годин.
Наступна задача із використанням кешу: виконується обслуговування для узгодження контейнера з поточним кодом. Кеш скидається, якщо ви змінюєте скрипти налаштування/обслуговування, змінні середовища або секрети.
Виконується бездоганно!
Швидкі правила на пам'ять
Важкі установки та однократні налаштування помістіть у налаштування; поступові оновлення — в обслуговування.
Будь-яка робота, що потребує системи секретів, має виконуватись у налаштуванні; вони недоступні пізніше.
# Частина 1 — Встановлення Laravel Nova (або будь-якого приватного пакета Composer)
# 1) Додайте секрети в Codex Web
Створіть два секрети у вашому середовищі:
NOVA_USERNAME
NOVA_LICENSE_KEY
Це стосується використання приватного реєстру Composer, такого як Satis (який використовує Laravel Nova)
Не забувайте не комітити ці значення у вашому репозиторії. Codex розшифрує та надасть доступ до них лише під час виконання налаштування.
Додайте це до свого скрипту налаштування:
# [Інші ваші скрипти налаштування]
# Авторизація до Nova за допомогою секретів, доступних у скриптах налаштування
composer config "http-basic.nova.laravel.com" "$NOVA_USERNAME" "$NOVA_LICENSE_KEY"
# Встановлення PHP залежностей (без-dev — типово для CI/агента; корегуйте за потребою)
composer install --no-interaction --optimize-autoloader --no-dev
# 3) Залишайте скрипт обслуговування легким
Обслуговування не має доступу до секретних значень; його використання лише для швидкого оновлення:
# Частина 2 — Результат: ваш контейнер середовища Codex Web (Laravel)
Нижче наведено фінальну структуру, до якої ми прагнемо — уся авторизація Nova і установка Composer відбуваються в налаштуванні; обслуговування — це швидке оновлення Laravel.
Це надає вашій кодовій агенції добрий старт.Автоматизовані тести ніколи не будуть зайвими.
Ніколи не комітіть авторизацію: зберігайте облікові дані Nova (або будь-якої приватної реєстрації) тільки у Секретах.
Використовуйте правила захисту гілок: Блокуйте вашу гілку master/main і забезпечте запобіжники, щоб уникнути небажаних змін.
Створіть файлAGENTS.md: Встановіть деякі правила, наприклад: "Створити юніт-тести для кожного компонента, який ви представляєте", або "Запустити весь набір тестів після завершення".
Використовуйте GitHub Action workflows: запускайте лінтери та юніт/інтеграційні/E2E тести під час кожного пушу, щоб перевірити надійність коду, згенерованого AI.
Гігієна Composer: --prefer-dist зменшує завантаження з джерела; --no-interaction уникне запитів; розгляньте COMPOSER_MEMORY_LIMIT=-1, якщо виникають проблеми OOM у великих репозиторіях.
Фіксуйте версії: заморожуйте образи/інструменти, коли важлива відтворюваність.
Не покладайтеся на .rc файли для збереження стану: контейнер середовища є тимчасовим; повторно виконуйте будь-які необхідні експорти в налаштуванні або використовуйте абсолютні шляхи.
Зробіть обслуговування ідемпотентним: воно повинно безпечно виконуватись кілька разів без несподіваних змін стану.
# Частина 4 — Цю частину залишаю вам
Досі я лише використовував Codex web для невеликих косметичних змін. Він чудово інтегрується з GitHub, а якщо у вас є підписка на GitHub Copilot, ви можете навіть отримувати автоматичний перегляд коду, який генерує Codex. Досить цікава комбінація.