name: 'AI Code Review' description: 'AI 多角色 Code Review Action,自動分析 PR 並發布問題 Comment' author: 'Jeffery' inputs: # Gitea 相關(可從 gitea context 自動取得) GITEA_TOKEN: description: 'Gitea API Token' required: false GITEA_SERVER_URL: description: 'Gitea Server URL' required: false GITEA_REPOSITORY: description: 'Gitea Repository (owner/repo)' required: false PR_NUMBER: description: 'Pull Request Number' required: false PR_HEAD_BRANCH: description: 'PR 來源分支' required: false PR_BASE_BRANCH: description: 'PR 目標分支' required: false # OpenAI-compatible OPENAI_API_KEY: description: 'OpenAI / OpenRouter API Key' required: false OPENAI_BASE_URL: description: 'OpenAI-compatible Base URL' required: false OPENAI_MODEL: description: 'OpenAI-compatible Model Name' required: false # Anthropic Claude CLAUDE_API_KEY: description: 'Anthropic Claude API Key' required: false CLAUDE_BASE_URL: description: 'Claude Base URL' required: false CLAUDE_MODEL: description: 'Claude Model Name' required: false # Google Gemini GEMINI_API_KEY: description: 'Google Gemini API Key' required: false GEMINI_BASE_URL: description: 'Gemini Base URL' required: false GEMINI_MODEL: description: 'Gemini Model Name' required: false # Ollama OLLAMA_BASE_URL: description: 'Ollama Base URL' required: false OLLAMA_MODEL: description: 'Ollama Model Name' required: false # Amazon Q AMAZONQ_API_KEY: description: 'Amazon Q API Key' required: false AMAZONQ_BASE_URL: description: 'Amazon Q Base URL' required: false # SonarQube SONARQUBE_TOKEN: description: 'SonarQube Token' required: false SONARQUBE_URL: description: 'SonarQube URL' required: false # Kilo Code KILO_API_KEY: description: 'Kilo Code API Key' required: false KILO_BASE_URL: description: 'Kilo Code Base URL' required: false # Roo Code ROO_API_KEY: description: 'Roo Code API Key' required: false ROO_BASE_URL: description: 'Roo Code Base URL' required: false # Cline CLINE_API_KEY: description: 'Cline API Key' required: false CLINE_BASE_URL: description: 'Cline Base URL' required: false # Continue CONTINUE_API_KEY: description: 'Continue API Key' required: false CONTINUE_BASE_URL: description: 'Continue Base URL' required: false # Kade KADE_API_KEY: description: 'Kade API Key' required: false KADE_BASE_URL: description: 'Kade Base URL' required: false runs: using: 'docker' image: 'Dockerfile' env: # Gitea context(優先用 inputs,否則從 gitea context 取) GITEA_TOKEN: ${{ inputs.GITEA_TOKEN || secrets.GITEA_TOKEN }} GITEA_SERVER_URL: ${{ inputs.GITEA_SERVER_URL || gitea.server_url }} GITEA_REPOSITORY: ${{ inputs.GITEA_REPOSITORY || gitea.repository }} PR_NUMBER: ${{ inputs.PR_NUMBER || gitea.event.pull_request.number }} PR_HEAD_BRANCH: ${{ inputs.PR_HEAD_BRANCH || gitea.event.pull_request.head.ref }} PR_BASE_BRANCH: ${{ inputs.PR_BASE_BRANCH || gitea.event.pull_request.base.ref }} # LLM OPENAI_API_KEY: ${{ inputs.OPENAI_API_KEY }} OPENAI_BASE_URL: ${{ inputs.OPENAI_BASE_URL }} OPENAI_MODEL: ${{ inputs.OPENAI_MODEL }} CLAUDE_API_KEY: ${{ inputs.CLAUDE_API_KEY }} CLAUDE_BASE_URL: ${{ inputs.CLAUDE_BASE_URL }} CLAUDE_MODEL: ${{ inputs.CLAUDE_MODEL }} GEMINI_API_KEY: ${{ inputs.GEMINI_API_KEY }} GEMINI_BASE_URL: ${{ inputs.GEMINI_BASE_URL }} GEMINI_MODEL: ${{ inputs.GEMINI_MODEL }} OLLAMA_BASE_URL: ${{ inputs.OLLAMA_BASE_URL }} OLLAMA_MODEL: ${{ inputs.OLLAMA_MODEL }} AMAZONQ_API_KEY: ${{ inputs.AMAZONQ_API_KEY }} AMAZONQ_BASE_URL: ${{ inputs.AMAZONQ_BASE_URL }} SONARQUBE_TOKEN: ${{ inputs.SONARQUBE_TOKEN }} SONARQUBE_URL: ${{ inputs.SONARQUBE_URL }} KILO_API_KEY: ${{ inputs.KILO_API_KEY }} KILO_BASE_URL: ${{ inputs.KILO_BASE_URL }} ROO_API_KEY: ${{ inputs.ROO_API_KEY }} ROO_BASE_URL: ${{ inputs.ROO_BASE_URL }} CLINE_API_KEY: ${{ inputs.CLINE_API_KEY }} CLINE_BASE_URL: ${{ inputs.CLINE_BASE_URL }} CONTINUE_API_KEY: ${{ inputs.CONTINUE_API_KEY }} CONTINUE_BASE_URL: ${{ inputs.CONTINUE_BASE_URL }} KADE_API_KEY: ${{ inputs.KADE_API_KEY }} KADE_BASE_URL: ${{ inputs.KADE_BASE_URL }}