name: 'Codex CLI' description: 'Codex CLI 工具' author: 'Jeffery' inputs: prompt: description: '傳給 Codex CLI 的提示詞' required: false default: "請自我介紹" outputs: text: description: '輸出的文字' value: ${{ steps.codex.outputs.text }} runs: using: 'composite' steps: - name: 安裝工具 run: | if [ -z "$CODEX_OAUTH" ]; then echo 'CODEX_OAUTH environment variable is required (set it from secrets.CODEX_OAUTH in the caller workflow).' >&2 exit 1 fi npm install -g @openai/codex oauth_file="$HOME/.codex/auth.json" install -d -m 700 "$(dirname "$oauth_file")" printf '%s' "$CODEX_OAUTH" | base64 -d > "$oauth_file" chmod 600 "$oauth_file" shell: bash - name: 執行工具 id: codex env: MODEL: ${{ vars.CODEX_MODEL }} PROMPT: ${{ inputs.prompt }} run: | if [ -z "$MODEL" ]; then echo 'CODEX_MODEL repository variable is required.' >&2 exit 1 fi text="$(codex exec --skip-git-repo-check -s danger-full-access --model "$MODEL" "$PROMPT")" printf '%s\n' "$text" { echo 'text<> "$GITHUB_OUTPUT" shell: bash - name: 驗證登入帳號 env: EXPECTED_EMAIL: ${{ vars.CODEX_EMAIL }} run: | if [ -z "$EXPECTED_EMAIL" ]; then echo 'CODEX_EMAIL repository variable is required.' >&2 exit 1 fi email="$(python3 "$GITHUB_ACTION_PATH/app/codex_account.py")" if [ "$email" != "$EXPECTED_EMAIL" ]; then echo '登入帳號與 CODEX_EMAIL 不符' >&2 exit 1 fi echo '登入帳號驗證通過' shell: bash