feat(codex-response): 整合 Codex issue 回覆 action #2

Merged
jiantw83 merged 10 commits from ai-review-resolve/develop-20260624-154546 into develop 2026-06-24 16:07:50 +00:00
Member

變更摘要

  • codex-response composite action 從範本改為實際的 issue 回覆 action,負責建立 prompt、呼叫 Codex action,並將結果留言回 Gitea issue。
  • 調整 issue comment workflow,加入 beta 版本計算與 release 標註流程,再透過版本 tag 呼叫 codex-response action。
  • 觸發字串改為 @codex,並在送入模型前從留言內容移除該提及字串。
  • 移除 inputs.mention,固定由 action 內部處理觸發字串清理。

影響範圍

  • action.yml:新增 Gitea、Codex、issue/comment 相關 inputs,輸出 Codex 執行狀態與回覆內容。
  • .gitea/workflows/response.yaml:改為使用發布後的 codex-response action 產生並留言 AI 回覆。

風險與注意事項

  • workflow 依賴 secrets.GITEA_TOKENsecrets.CODEX_OAUTH
  • issue comment 事件會在留言包含 @codex 時觸發回覆流程。
  • workflow 會在回覆前建立 beta release tag,需確認 runner 權限與版本計算 action 設定完整。

驗證

  • git diff --check
  • npx --yes js-yaml action.yml
  • npx --yes js-yaml .gitea/workflows/response.yaml
## 變更摘要 - 將 `codex-response` composite action 從範本改為實際的 issue 回覆 action,負責建立 prompt、呼叫 Codex action,並將結果留言回 Gitea issue。 - 調整 issue comment workflow,加入 beta 版本計算與 release 標註流程,再透過版本 tag 呼叫 `codex-response` action。 - 觸發字串改為 `@codex`,並在送入模型前從留言內容移除該提及字串。 - 移除 `inputs.mention`,固定由 action 內部處理觸發字串清理。 ## 影響範圍 - `action.yml`:新增 Gitea、Codex、issue/comment 相關 inputs,輸出 Codex 執行狀態與回覆內容。 - `.gitea/workflows/response.yaml`:改為使用發布後的 `codex-response` action 產生並留言 AI 回覆。 ## 風險與注意事項 - workflow 依賴 `secrets.GITEA_TOKEN` 與 `secrets.CODEX_OAUTH`。 - issue comment 事件會在留言包含 `@codex` 時觸發回覆流程。 - workflow 會在回覆前建立 beta release tag,需確認 runner 權限與版本計算 action 設定完整。 ## 驗證 - `git diff --check` - `npx --yes js-yaml action.yml` - `npx --yes js-yaml .gitea/workflows/response.yaml`
jiantw83 added 2 commits 2026-06-24 15:47:25 +00:00
jiantw83 added 1 commit 2026-06-24 15:51:17 +00:00
feat(code-review): 新增 PR AI code review 工作流
AI / Code Review (pull_request) Failing after 54s
110c19e996

🤖 AI Code Review 團隊

👤 角色 🎯 面向 🧠 個性
🗡️ Assassin security 多疑偏執、以攻擊者視角看世界,假設每筆輸入都是惡意的,每個信任都會被濫用
🎼 Bard style 唯美龜毛、追求優雅,把可讀性與一致性當作旋律,最受不了走調的命名與排版
🧰 Leo maintainability 有遠見、重視長期維護成本,凡事先問「六個月後的自己還看得懂嗎?」,討厭把債留給未來
🔮 Mage logic 嚴謹冷靜、滴水不漏,凡事推演到最壞情況,深信「沒驗證過的假設都是 bug」
🧪 Maya testing 對測試覆蓋率有執念,深信「沒有測試的程式碼等於沒寫完」,溫和但堅持,最在意邊界與失敗路徑
Rogue efficiency 急性子、講求速度,最痛恨被浪費的 CPU 週期與記憶體,凡事先問「這能不能更快、更省」

🔍 服務:opencode 模型:gemini-2.5-flash

## 🤖 AI Code Review 團隊 | 👤 角色 | 🎯 面向 | 🧠 個性 | |--------|--------|--------| | **🗡️ Assassin** | security | 多疑偏執、以攻擊者視角看世界,假設每筆輸入都是惡意的,每個信任都會被濫用 | | **🎼 Bard** | style | 唯美龜毛、追求優雅,把可讀性與一致性當作旋律,最受不了走調的命名與排版 | | **🧰 Leo** | maintainability | 有遠見、重視長期維護成本,凡事先問「六個月後的自己還看得懂嗎?」,討厭把債留給未來 | | **🔮 Mage** | logic | 嚴謹冷靜、滴水不漏,凡事推演到最壞情況,深信「沒驗證過的假設都是 bug」 | | **🧪 Maya** | testing | 對測試覆蓋率有執念,深信「沒有測試的程式碼等於沒寫完」,溫和但堅持,最在意邊界與失敗路徑 | | **⚡ Rogue** | efficiency | 急性子、講求速度,最痛恨被浪費的 CPU 週期與記憶體,凡事先問「這能不能更快、更省」 | > 🔍 服務:opencode 模型:gemini-2.5-flash
admin added 1 commit 2026-06-24 15:52:12 +00:00
chore: update ai-review findings [ai-review-bot][failure]
AI / Code Review (pull_request) Failing after 1s
a2fc1d87d0
jiantw83 added 2 commits 2026-06-24 15:57:51 +00:00

🤖 AI Code Review 團隊

👤 角色 🎯 面向 🧠 個性
🗡️ Assassin security 多疑偏執、以攻擊者視角看世界,假設每筆輸入都是惡意的,每個信任都會被濫用
🎼 Bard style 唯美龜毛、追求優雅,把可讀性與一致性當作旋律,最受不了走調的命名與排版
🧰 Leo maintainability 有遠見、重視長期維護成本,凡事先問「六個月後的自己還看得懂嗎?」,討厭把債留給未來
🔮 Mage logic 嚴謹冷靜、滴水不漏,凡事推演到最壞情況,深信「沒驗證過的假設都是 bug」
🧪 Maya testing 對測試覆蓋率有執念,深信「沒有測試的程式碼等於沒寫完」,溫和但堅持,最在意邊界與失敗路徑
Rogue efficiency 急性子、講求速度,最痛恨被浪費的 CPU 週期與記憶體,凡事先問「這能不能更快、更省」

🔍 服務:opencode 模型:gemini-2.5-flash

## 🤖 AI Code Review 團隊 | 👤 角色 | 🎯 面向 | 🧠 個性 | |--------|--------|--------| | **🗡️ Assassin** | security | 多疑偏執、以攻擊者視角看世界,假設每筆輸入都是惡意的,每個信任都會被濫用 | | **🎼 Bard** | style | 唯美龜毛、追求優雅,把可讀性與一致性當作旋律,最受不了走調的命名與排版 | | **🧰 Leo** | maintainability | 有遠見、重視長期維護成本,凡事先問「六個月後的自己還看得懂嗎?」,討厭把債留給未來 | | **🔮 Mage** | logic | 嚴謹冷靜、滴水不漏,凡事推演到最壞情況,深信「沒驗證過的假設都是 bug」 | | **🧪 Maya** | testing | 對測試覆蓋率有執念,深信「沒有測試的程式碼等於沒寫完」,溫和但堅持,最在意邊界與失敗路徑 | | **⚡ Rogue** | efficiency | 急性子、講求速度,最痛恨被浪費的 CPU 週期與記憶體,凡事先問「這能不能更快、更省」 | > 🔍 服務:opencode 模型:gemini-2.5-flash
admin added 1 commit 2026-06-24 15:58:15 +00:00
chore: update ai-review findings [ai-review-bot][failure]
AI / Code Review (pull_request) Failing after 2s
9c881d2750
jiantw83 added 2 commits 2026-06-24 16:05:08 +00:00
Owner

🤖 AI Code Review 團隊

👤 角色 🎯 面向 🧠 個性
🗡️ Assassin security 多疑偏執、以攻擊者視角看世界,假設每筆輸入都是惡意的,每個信任都會被濫用
🎼 Bard style 唯美龜毛、追求優雅,把可讀性與一致性當作旋律,最受不了走調的命名與排版
🧰 Leo maintainability 有遠見、重視長期維護成本,凡事先問「六個月後的自己還看得懂嗎?」,討厭把債留給未來
🔮 Mage logic 嚴謹冷靜、滴水不漏,凡事推演到最壞情況,深信「沒驗證過的假設都是 bug」
🧪 Maya testing 對測試覆蓋率有執念,深信「沒有測試的程式碼等於沒寫完」,溫和但堅持,最在意邊界與失敗路徑
Rogue efficiency 急性子、講求速度,最痛恨被浪費的 CPU 週期與記憶體,凡事先問「這能不能更快、更省」

🔍 服務:opencode 模型:gemini-2.5-flash

## 🤖 AI Code Review 團隊 | 👤 角色 | 🎯 面向 | 🧠 個性 | |--------|--------|--------| | **🗡️ Assassin** | security | 多疑偏執、以攻擊者視角看世界,假設每筆輸入都是惡意的,每個信任都會被濫用 | | **🎼 Bard** | style | 唯美龜毛、追求優雅,把可讀性與一致性當作旋律,最受不了走調的命名與排版 | | **🧰 Leo** | maintainability | 有遠見、重視長期維護成本,凡事先問「六個月後的自己還看得懂嗎?」,討厭把債留給未來 | | **🔮 Mage** | logic | 嚴謹冷靜、滴水不漏,凡事推演到最壞情況,深信「沒驗證過的假設都是 bug」 | | **🧪 Maya** | testing | 對測試覆蓋率有執念,深信「沒有測試的程式碼等於沒寫完」,溫和但堅持,最在意邊界與失敗路徑 | | **⚡ Rogue** | efficiency | 急性子、講求速度,最痛恨被浪費的 CPU 週期與記憶體,凡事先問「這能不能更快、更省」 | > 🔍 服務:opencode 模型:gemini-2.5-flash
admin reviewed 2026-06-24 16:05:31 +00:00
admin left a comment
Owner

AI Code Review 統計

類型 🔴 嚴重 🟡 警告 🔵 建議 無法標示
新問題 0 筆 2 筆 1 筆 0 筆
舊問題 0 筆 0 筆 0 筆 0 筆

🤖 AI 助理使用量

本次審查(opencode / gemini-2.5-flash,共 10 次呼叫)

提示 token 回應 token 合計
59,984 3,916 135,037

剩餘可用

剩餘可用:無法計算百分比(自架服務,無帳號額度概念)

## AI Code Review 統計 | 類型 | 🔴 嚴重 | 🟡 警告 | 🔵 建議 | ⚪ 無法標示 | | --- | --- | --- | --- | --- | | 新問題 | 0 筆 | 2 筆 | 1 筆 | 0 筆 | | 舊問題 | 0 筆 | 0 筆 | 0 筆 | 0 筆 | ## 🤖 AI 助理使用量 **本次審查**(opencode / gemini-2.5-flash,共 10 次呼叫) | 提示 token | 回應 token | 合計 | | --- | --- | --- | | 59,984 | 3,916 | 135,037 | **剩餘可用** 剩餘可用:無法計算百分比(自架服務,無帳號額度概念)
@@ -32,0 +51,4 @@
clean_comment="${COMMENT_BODY//@codex/}"
clean_comment="${clean_comment##+([[:space:]])}"
clean_comment="${clean_comment%%+([[:space:]])}"
Owner

嚴重等級🔵 建議
審查員:Bard
問題:在 cat <<EOF 的 heredoc 內容中,直接寫入縮排會導致產生的 Prompt 內容包含不必要的左側空白,影響 AI 接收到的格式。
建議:建議改用 cat <<-EOF 並搭配適當的縮排處理,確保輸出給 AI 的 Prompt 內容乾淨、無不必要的縮排。

**嚴重等級**:🔵 建議 **審查員**:Bard **問題**:在 `cat <<EOF` 的 heredoc 內容中,直接寫入縮排會導致產生的 Prompt 內容包含不必要的左側空白,影響 AI 接收到的格式。 **建議**:建議改用 `cat <<-EOF` 並搭配適當的縮排處理,確保輸出給 AI 的 Prompt 內容乾淨、無不必要的縮排。
@@ -32,0 +92,4 @@
id: codex
uses: https://gitea.jsc.idv.tw/actions/codex@v0.0.2
with:
oauth: ${{ inputs.codex_auth_config }}
Owner

嚴重等級🟡 警告
審查員:Bard
問題:在 產生 AI 回覆with 區塊中,參數名為 oauth,與 inputs 定義的 codex_auth_config 命名不一致,造成閱讀上的語義斷層。
建議:建議將 with 區塊中的 oauth 重新命名為 codex_auth_config,以確保命名與 input 定義的一致性。

**嚴重等級**:🟡 警告 **審查員**:Bard **問題**:在 `產生 AI 回覆` 的 `with` 區塊中,參數名為 `oauth`,與 `inputs` 定義的 `codex_auth_config` 命名不一致,造成閱讀上的語義斷層。 **建議**:建議將 `with` 區塊中的 `oauth` 重新命名為 `codex_auth_config`,以確保命名與 input 定義的一致性。
@@ -32,0 +110,4 @@
exit 1
fi
case "$gitea_server_url" in
Owner

嚴重等級🟡 警告
審查員:Bard
問題:在腳本中直接硬編碼了 Gitea server URL https://gitea.jsc.idv.tw,這限制了行動模組的可移植性,若未來更改 Server 位址需動態修改多處程式碼。
建議:建議將允許的 Gitea Server URL 設為行動模組的 input 參數,並將此限制提取至組態層級,避免直接硬編碼於執行邏輯內。

**嚴重等級**:🟡 警告 **審查員**:Bard **問題**:在腳本中直接硬編碼了 Gitea server URL `https://gitea.jsc.idv.tw`,這限制了行動模組的可移植性,若未來更改 Server 位址需動態修改多處程式碼。 **建議**:建議將允許的 Gitea Server URL 設為行動模組的 input 參數,並將此限制提取至組態層級,避免直接硬編碼於執行邏輯內。
admin added 1 commit 2026-06-24 16:05:33 +00:00
chore: update ai-review findings [ai-review-bot][success]
AI / Code Review (pull_request) Successful in 1s
ae4961921e
jiantw83 merged commit 1273e7d177 into develop 2026-06-24 16:07:50 +00:00
jiantw83 deleted branch ai-review-resolve/develop-20260624-154546 2026-06-24 16:07:50 +00:00
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: old-actions/codex-response#2