110 lines
3.3 KiB
YAML
110 lines
3.3 KiB
YAML
name: 'AI Code Review'
|
|
description: 'AI 多角色 Code Review Action,自動分析 PR 並發布問題 Comment'
|
|
author: 'Jeffery'
|
|
inputs:
|
|
# Gitea 相關(可從 gitea context 自動取得)
|
|
GITEA_TOKEN:
|
|
description: 'Gitea API Token'
|
|
required: true
|
|
GITEA_COMMENT_TOKEN:
|
|
description: 'Gitea API Token for posting comments only'
|
|
required: false
|
|
GITEA_SERVER_URL:
|
|
description: 'Gitea Server URL'
|
|
required: false
|
|
GITEA_REPOSITORY:
|
|
description: 'Gitea Repository (owner/repo)'
|
|
required: false
|
|
GITEA_SKIP_TLS_VERIFY:
|
|
description: '跳過 Gitea SSL/TLS 憑證驗證(自簽憑證時使用)'
|
|
required: false
|
|
default: '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
|
|
default: 'https://openrouter.ai/api/v1'
|
|
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
|
|
|
|
runs:
|
|
using: 'docker'
|
|
image: 'Dockerfile'
|
|
env:
|
|
# Gitea context(改為只從 inputs 取得)
|
|
GITEA_TOKEN: ${{ inputs.GITEA_TOKEN }}
|
|
GITEA_COMMENT_TOKEN: ${{ inputs.GITEA_COMMENT_TOKEN }}
|
|
GITEA_SERVER_URL: ${{ inputs.GITEA_SERVER_URL || gitea.server_url }}
|
|
GITEA_REPOSITORY: ${{ inputs.GITEA_REPOSITORY || gitea.repository }}
|
|
GITEA_SKIP_TLS_VERIFY: ${{ inputs.GITEA_SKIP_TLS_VERIFY }}
|
|
PR_NUMBER: ${{ inputs.PR_NUMBER || gitea.event.pull_request.number }}
|
|
PR_HEAD_SHA: ${{ inputs.PR_HEAD_SHA || gitea.event.pull_request.head.sha }}
|
|
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 }}
|