@@ -1,17 +1,10 @@
[
{
"level" : "warning " ,
"role" : "Rex " ,
"location" : ".gitea/workflows/review.yaml:33 " ,
"suggestion" : "工作流程目前授予 contents、pull‑ requests、issues 三項 write 權限,過於寬鬆。建議依實際需求僅授予 read 或最小必要的 write 權限,以降低被濫用的風險 。" ,
"is_new" : false
} ,
{
"level" : "warning" ,
"role" : "Rex" ,
"location" : ".gitea/workflows/review.yaml:35" ,
"suggestion" : "將 OPENAI_API_KEY 參數改為使用正確的 secret 名稱(如 OPENROUTER_API_KEY)時,請確保工作流程文件中不會同時暴露兩個不同的 secret 名稱,以免因名稱錯誤導致金鑰未傳入或意外洩漏。" ,
"is_new" : false
"level" : "critical " ,
"role" : "Maya " ,
"location" : ".gitea/workflows/review.yaml:35-37 與 action.yaml " ,
"suggestion" : "在 `review.yaml` 工作流程中,您嘗試傳遞 `GEMINI_API_KEY`、`GEMINI_BASE_URL` 和 `GEMINI_MODEL` 參數。然而,根據 `action.yaml` 的定義,此 Action 預期接收的是 `GOOGLE_API_KEY`、`GOOGLE_BASE_URL` 和 `GOOGLE_MODEL`。這導致參數名稱不匹配,Action 將無法正確取得 Gemini 的設定,進而導致功能失效。請修正 `review.yaml`,將參數名稱改為 `GOOGLE_API_KEY`、`GOOGLE_BASE_URL` 和 `GOOGLE_MODEL`,以符合 `action.yaml` 中已定義的 Google 相關輸入 。" ,
"is_new" : true
} ,
{
"level" : "warning" ,
@@ -20,27 +13,6 @@
"suggestion" : "在 `OPENAI_API_KEY` 後的註解前應保留一個空格,以符合常見的 YAML 註解風格:`... ${{ secrets.OPENROUTER_API_KEY }} # OpenRouter 使用 OpenAI 相容介面,以 OPENAI_API_KEY 傳入`。" ,
"is_new" : false
} ,
{
"level" : "warning" ,
"role" : "Aria" ,
"location" : "README.md" ,
"suggestion" : "文件中章節編號不連續(例如 `### 2. OpenRouter` 後直接跳到 `### 3. Anthropic Claude`),建議重新編號或使用一致的標題層級,以提升可讀性與維護性。" ,
"is_new" : false
} ,
{
"level" : "warning" ,
"role" : "Rex" ,
"location" : ".gitea/workflows/review.yaml:33-35" ,
"suggestion" : "工作流程目前授予 contents、pull‑ requests、issues 三項 write 權限過於寬鬆。建議依實際需求僅授予 read 或最小必要的 write 權限,降低被濫用的風險。" ,
"is_new" : false
} ,
{
"level" : "warning" ,
"role" : "Rex" ,
"location" : ".gitea/workflows/review.yaml:33" ,
"suggestion" : "將 OPENAI_API_KEY 參數改為使用正確的 secret 名稱(如 OPENROUTER_API_KEY)時,請確保工作流程檔案中不會同時暴露兩個不同的 secret 名稱,以免因名稱錯誤導致金鑰未傳入或意外洩漏。" ,
"is_new" : false
} ,
{
"level" : "warning" ,
"role" : "Aria" ,
@@ -55,20 +27,6 @@
"suggestion" : "檔案最後缺少換行符號,請在檔案結尾加入空白換行。" ,
"is_new" : false
} ,
{
"level" : "warning" ,
"role" : "Aria" ,
"location" : "README.md:28" ,
"suggestion" : "文件中章節編號不連續(例如 `### 2. OpenRouter` 後直接跳到 `### 3. Anthropic Claude`),請重新編號或使用自動編號方式,保持編號連續。" ,
"is_new" : false
} ,
{
"level" : "warning" ,
"role" : "Aria" ,
"location" : "README.md:42" ,
"suggestion" : "標題層級使用不一致,部分章節使用 `### 1.`、`### 2.`,而後面的章節直接跳到 `### 3.`,建議統一使用相同層級的 Markdown 標題,並在每個標題後留一個空行以提升可讀性。" ,
"is_new" : false
} ,
{
"level" : "warning" ,
"role" : "Aria" ,
@@ -76,6 +34,20 @@
"suggestion" : "大量移除的輸入欄位留下多行空白與註解,請整理檔案結構,移除不必要的空行與註解,保持檔案整潔。" ,
"is_new" : false
} ,
{
"level" : "warning" ,
"role" : "Aria" ,
"location" : ".gitea/workflows/review.yaml:36" ,
"suggestion" : "`secrets.GEMINI_API_KEY_1` 的命名方式建議審視。如果這是唯一的 Gemini API 金鑰,可考慮簡化為 `GEMINI_API_KEY`。若有多個金鑰,建議使用更具描述性的後綴(例如 `GEMINI_API_KEY_PRIMARY` 或 `GEMINI_API_KEY_SERVICE_A`),以提升命名清晰度與一致性。" ,
"is_new" : true
} ,
{
"level" : "warning" ,
"role" : "Maya" ,
"location" : "app/" ,
"suggestion" : "此次變更將 AI 審查服務從 OpenRouter 切換至 Gemini。儘管 `action.yaml` 中已存在 `GOOGLE_*` 相關的輸入,但此 Git Diff 並未包含任何針對 Gemini API 整合的單元測試或整合測試。請確認現有的測試是否足以涵蓋 Gemini API 的特定行為、回應格式以及錯誤處理。若無,建議為 Gemini 整合新增專屬的整合測試,以確保其在實際運作中的穩定性與正確性,特別是針對 `https://generativelanguage.googleapis.com/v1beta` 這個 Base URL 和所選的 `GEMINI_MODEL`。" ,
"is_new" : true
} ,
{
"level" : "info" ,
"role" : "Aria" ,
@@ -124,5 +96,12 @@
"location" : ".gitea/workflows/review.yaml:33" ,
"suggestion" : "在 `OPENAI_API_KEY` 後的註解前保留一個空格,以符合常見的 YAML 註解風格:`... ${{ secrets.OPENROUTER_API_KEY }} # OpenRouter 使用 OpenAI 相容介面,以 OPENAI_API_KEY 傳入`。" ,
"is_new" : false
} ,
{
"level" : "info" ,
"role" : "Zara" ,
"location" : ".gitea/workflows/review.yaml:35-37" ,
"suggestion" : "工作流程從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。雖然這本身不是程式碼錯誤,但不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議監控切換後 AI Code Review 步驟的執行時間,確保新配置能維持或提升效能,並留意潛在的成本變化。" ,
"is_new" : true
}
]