codex exec In CI kann er Code analysieren, ohne Änderungen vorzunehmen; zuerst den Sandbox-Modus prüfen: Der nicht-interaktive Modus ist standardmäßig nur lesbar. Wenn er Patches erstellen oder Arbeitsbereiche ändern muss, wird das --sandbox workspace-write explizit weitergegeben und sichergestellt, dass das Boot-Verzeichnis ein überprüftes Git-Repository ist.
Wie man den minimal beschreibbaren Befehl schreibt
codex exec \ --sandbox workspace-write \ -C "$GITHUB_WORKSPACE" \ "运行测试,修复失败项,只修改必要文件,然后重新运行测试"workspace-write Nur das Schreiben in den aktuellen Arbeitsbereich erlauben, was nicht bedeutet, den gesamten Runner zu steuern. Wechsle nicht nur wegen eines einzigen Fehlers zu --yolo oder danger-full-access; Berechtigungen werden nur erweitert, wenn externe Isolation streng getrennt ist und die Aufgabe sie wirklich benötigt. Das --full-auto im alten Skript ist bereits ein Kompatibilitätsparameter; die neue Pipeline sollte die Sandbox direkt deklarieren.
Ich habe die Dokumente immer noch nicht geändert, schau dir diese drei Standorte an
- Lagerkontroll-Fehlschlag: Bestätigen Sie, dass der Checkout erfolgreich ist, dann prüfen Sie
pwdundgit status. Sichere temporäre Verzeichnisse außerhalb des Lagers können--skip-git-repo-checkverwenden. - Befehle erfordern eine interaktive Genehmigung: CI kann kein neues Genehmigungsfenster öffnen, und Aktionen, die eine temporäre Autorisierung erfordern, schlagen fehl und geben einen Fehler zurück. Sandboxen und Genehmigungsrichtlinien sollten im Voraus festgelegt werden.
- Der Prompt erfordert nur Analyse: Sag klar "Datei ändern, Validierung ausführen, diff behalten." Nach Abschluss überprüfen Sie Git-Diff oder generieren Sie das Patch-Artefakt; schauen Sie sich nicht nur den endgültigen Text an.
Lassen Sie die Pipeline parsbare Ergebnisse erhalten
Verwenden Sie JSONL, wenn Sie einen vollständigen Ereignisstrom verbrauchen müssen:
codex exec --json "检查仓库并给出风险列表" > codex-events.jsonlSchreibe einfach in die Datei mit -o, wenn du auf die endgültige Antwort antwortest; Nutze --output-schema, wenn Felder behoben werden müssen. Die Authentifizierung sollte auch die Exposition minimieren: Injiziere CODEX_API_KEY nur im codex exec Ausführung und lass nicht zu, dass der gesamte Job, Abhängigkeitsskripte oder nicht vertrauenswürdiger Code den Schlüssel liest.