Files
codex/README.md
T
jiantw83 ba47c2fd9f
CI / Release Tag Version (pull_request) Successful in 3s
CI / Codex (pull_request) Successful in 14s
chore(Dockerfile): 改為純安裝 Codex CLI
2026-06-29 10:18:56 +00:00

85 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Codex CLI Composite Action
提供一個 Gitea/GitHub Actions composite action,用於安裝 Codex CLI、寫入 OAuth token、執行指定提示詞,並將 CLI 輸出寫入 action output;另提供透過 `codex app-server` 取得目前登入帳號 email 的 Node.js helper。
> 更新時間:2026/06/29 14:18:26
## 專案列表
### 專案描述
| 專案名稱 | 專案描述 |
| --- | --- |
| [codex](https://gitea.jsc.idv.tw/composite-actions/codex/src/branch/develop/) | 提供 Codex CLI composite action(安裝 `@openai/codex`、寫入 OAuth token、執行提示詞並輸出文字),並提供透過 `codex app-server` JSON-RPC `account/read` 取得目前登入帳號 email 的 Node.js helper。 |
### 參考專案
| 專案名稱 | 參考專案列表 |
| --- | --- |
| [codex](https://gitea.jsc.idv.tw/composite-actions/codex/src/branch/develop/) | 無 |
### NuGet 套件
| 專案名稱 | NuGet 套件列表 |
| --- | --- |
| [codex](https://gitea.jsc.idv.tw/composite-actions/codex/src/branch/develop/) | 無 |
## 功能列表
### codex
| 功能名稱 | 功能描述 |
| --- | --- |
| [app/codex_account.js](https://gitea.jsc.idv.tw/composite-actions/codex/src/branch/develop/app/codex_account.js#L1) | [透過 codex app-server 的 JSON-RPC `account/read` 取得目前登入帳號的 email,取不到或逾時輸出空字串。](#appcodex_accountjs) |
## 使用範例
<a id="appcodex_accountjs"></a>
### app/codex_account.js
透過 `codex app-server` 的 JSON-RPC `account/read` 取得目前登入帳號的 email。腳本會啟動 `codex app-server` 子行程,依序送出 `initialize` / `initialized` / `account/read` 三筆 JSON-RPC 訊息,使用 Node.js 標準函式庫讀取回應中 `result.account.email` 並輸出到 stdout;讀到 EOF、JSON 解析失敗或超過逾時都會停止,取不到時輸出空字串。
前置條件:
- `codex` CLI 已安裝(例如本 action 的安裝步驟已執行)。
- Node.js 已安裝。
- `$HOME/.codex/auth.json` 已寫入有效的 OAuth token。
典型呼叫方式:
```bash
# 取得目前登入帳號 email;預設等待 25 秒
node app/codex_account.js
# 自訂等待 app-server 回應的逾時秒數
node app/codex_account.js 10
```
預期結果:
- 成功時輸出登入帳號的 email 字串。
- 未登入、回應缺漏或逾時時輸出空字串。
此模組亦可直接以指令執行,會將 email 印到 stdout(取不到時印空字串):
```bash
node app/codex_account.js
```
## Docker
此專案提供以 `ubuntu:latest` 為基底的 Dockerfile,僅安裝 Node.js/npm 與 `@openai/codex`
```bash
docker build -t codex-cli .
docker run --rm codex-cli
```
若要在容器內執行 Codex 並使用本機登入憑證,可掛載 `$HOME/.codex`
```bash
docker run --rm \
-v "$HOME/.codex:/root/.codex:ro" \
codex-cli codex --version
```