feat(codex): 新增 Codex CLI composite action #1

Merged
admin merged 15 commits from ai-review-resolve/develop-20260629-115924 into develop 2026-06-29 06:17:23 +00:00
2 changed files with 2 additions and 17 deletions
Showing only changes of commit 7ee6921c63 - Show all commits
+2 -2
View File
@@ -30,6 +30,6 @@ jobs:
with: with:
oauth: ${{ secrets.CODEX_OAUTH }} oauth: ${{ secrets.CODEX_OAUTH }}
prompt: "請自我介紹" prompt: "請自我介紹"
- name: 檢查登入帳號 - name: 檢查登入
if: ${{ steps.codex.outputs.email != vars.CODEX_EMAIL }} if: ${{ steps.codex.outputs.text == '' }}
run: exit 1 run: exit 1
-15
View File
@@ -13,9 +13,6 @@ outputs:
text: text:
description: '輸出的文字' description: '輸出的文字'
value: ${{ steps.codex.outputs.text }} value: ${{ steps.codex.outputs.text }}
email:
description: '目前登入帳號的電子郵件(取自 OAuth id_token'
value: ${{ steps.codex.outputs.email }}
runs: runs:
using: 'composite' using: 'composite'
steps: steps:
@@ -43,21 +40,9 @@ runs:
text="$(codex exec --skip-git-repo-check -s danger-full-access --model "$MODEL" "$PROMPT")" text="$(codex exec --skip-git-repo-check -s danger-full-access --model "$MODEL" "$PROMPT")"
printf '%s\n' "$text" printf '%s\n' "$text"
# 從 OAuth id_tokenJWT)解出目前登入帳號的 email;正規表示式對冒號後空白容錯
auth_file="$HOME/.codex/auth.json"
id_token="$(grep -oE -m1 '"id_token"[[:space:]]*:[[:space:]]*"[^"]*"' "$auth_file" | sed -E 's/.*:[[:space:]]*"//; s/"$//' || true)"
payload="$(printf '%s' "$id_token" | cut -d. -f2 | tr '_-' '/+')"
case $((${#payload} % 4)) in
2) payload="${payload}==" ;;
3) payload="${payload}=" ;;
esac
email="$(printf '%s' "$payload" | base64 -d 2>/dev/null | grep -oE -m1 '"email"[[:space:]]*:[[:space:]]*"[^"]*"' | sed -E 's/.*:[[:space:]]*"//; s/"$//' || true)"
{ {
echo 'text<<CODEX_OUTPUT' echo 'text<<CODEX_OUTPUT'
printf '%s\n' "$text" printf '%s\n' "$text"
echo 'CODEX_OUTPUT' echo 'CODEX_OUTPUT'
echo "email=$email"
} >> "$GITHUB_OUTPUT" } >> "$GITHUB_OUTPUT"
shell: bash shell: bash