name: 'Codex Issue Response' description: '使用 Codex 產生 Gitea issue 留言回覆' author: 'Jeffery' inputs: gitea_server_url: description: 'Gitea server URL' required: true gitea_repository: description: 'Gitea repository, for example owner/repo' required: true gitea_token: description: 'Gitea Runner Token' required: true oauth: description: 'Base64 encoded Codex auth.json' required: true model: description: 'Codex model name' default: 'gpt-5.4-mini' issue_title: description: 'Issue title' required: true issue_body: description: 'Issue body' required: false default: '' issue_number: description: 'Issue number' required: true comment_body: description: 'Issue comment body' required: true outputs: status: description: 'Codex execution result status' value: ${{ steps.codex.outputs.status }} response: description: 'Codex execution result response' value: ${{ steps.codex.outputs.output }} runs: using: 'composite' steps: - name: 建立 Prompt id: prompt env: ISSUE_TITLE: ${{ inputs.issue_title }} ISSUE_BODY: ${{ inputs.issue_body }} COMMENT_BODY: ${{ inputs.comment_body }} run: | clean_comment="${COMMENT_BODY//@codex/}" clean_comment="$(printf '%s' "$clean_comment" | sed -E 's/^[[:space:]]+//; s/[[:space:]]+$//')" { printf '請根據以下 Gitea issue 資訊,以繁體中文回覆使用者。\n' printf '請只輸出要張貼到 issue 留言中的內容,不要包含額外前言。\n\n' printf '## 問題標題\n%s\n\n' "$ISSUE_TITLE" printf '## 問題描述\n%s\n\n' "$ISSUE_BODY" printf '## 使用者留言\n%s\n' "$clean_comment" } > prompt.md { echo 'prompt<<__PROMPT__' cat prompt.md echo '__PROMPT__' } >> "$GITHUB_OUTPUT" shell: bash - name: 產生 AI 回覆 id: codex uses: https://gitea.jsc.idv.tw/actions/codex@v0.0.2 with: oauth: ${{ inputs.oauth }} model: ${{ inputs.model }} prompt: ${{ steps.prompt.outputs.prompt }} - name: 留言 AI 回覆 env: GITEA_REPOSITORY: ${{ inputs.gitea_repository }} GITEA_SERVER_URL: ${{ inputs.gitea_server_url }} GITEA_TOKEN: ${{ inputs.gitea_token }} ISSUE_NUMBER: ${{ inputs.issue_number }} RESPONSE: ${{ steps.codex.outputs.output }} run: | jq -n --arg body "$RESPONSE" '{body: $body}' > comment.json curl --fail-with-body \ -X POST \ -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ --data @comment.json \ "$GITEA_SERVER_URL/api/v1/repos/$GITEA_REPOSITORY/issues/$ISSUE_NUMBER/comments" shell: bash