修正版本計算未分頁導致最新版誤判為 0.0.0 #3

Merged
jiantw83 merged 4 commits from ai-review-resolve/20260623-170920 into develop 2026-06-23 09:20:44 +00:00
Member

變更摘要

修正 calculate-version action 取得最新版本號的邏輯。原本抓取 Gitea releases 時未處理 API 分頁(預設只回第一頁、依時間新→舊排序),當最新一整頁剛好都是 beta release 時,過濾掉 beta 後找不到穩定版,會誤落到 0.0.0,導致新版被算成 0.0.1 / 0.0.1-beta.1。實際的穩定版其實在後續分頁,程式根本沒撈到。

主要變更

  • 新增 fetch_releases:以 ?limit=10&page=N 逐頁抓取並合併,直到取完(某頁不足 10 筆即停止)。
  • 取最新穩定版改為以 semver 數值取最大(sort | last),不再依賴 API 排序取第 0 筆。
  • 對「請求失敗 / 回傳非陣列 / 解析失敗」改用顯式 if ! 檢查並中止,不再依賴 set -e 在指派搭配命令替換時的不穩定行為。
  • 測試:mock jq 改為依呼叫類型分派(合併/計數/計算)、mock curl 支援分頁;新增「穩定版只在第 2 頁且最大值非第一筆」的測試,同時覆蓋分頁與 semver 取最大。

影響範圍

  • entrypoint.sh
  • tests/entrypoint_test.sh

風險 / 注意事項

  • 行為改變:現在會逐頁呼叫 release API,release 數量大時請求次數會增加。
  • 已通過全部既有測試與新增測試(本機無 jq,測試以 mock 進行)。
## 變更摘要 修正 `calculate-version` action 取得最新版本號的邏輯。原本抓取 Gitea releases 時未處理 API 分頁(預設只回第一頁、依時間新→舊排序),當最新一整頁剛好都是 beta release 時,過濾掉 beta 後找不到穩定版,會誤落到 `0.0.0`,導致新版被算成 `0.0.1` / `0.0.1-beta.1`。實際的穩定版其實在後續分頁,程式根本沒撈到。 ## 主要變更 - 新增 `fetch_releases`:以 `?limit=10&page=N` 逐頁抓取並合併,直到取完(某頁不足 10 筆即停止)。 - 取最新穩定版改為以 semver 數值取最大(`sort | last`),不再依賴 API 排序取第 0 筆。 - 對「請求失敗 / 回傳非陣列 / 解析失敗」改用顯式 `if !` 檢查並中止,不再依賴 `set -e` 在指派搭配命令替換時的不穩定行為。 - 測試:mock `jq` 改為依呼叫類型分派(合併/計數/計算)、mock `curl` 支援分頁;新增「穩定版只在第 2 頁且最大值非第一筆」的測試,同時覆蓋分頁與 semver 取最大。 ## 影響範圍 - `entrypoint.sh` - `tests/entrypoint_test.sh` ## 風險 / 注意事項 - 行為改變:現在會逐頁呼叫 release API,release 數量大時請求次數會增加。 - 已通過全部既有測試與新增測試(本機無 `jq`,測試以 mock 進行)。
jiantw83 added 2 commits 2026-06-23 09:10:21 +00:00

🤖 AI Code Review 團隊

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

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

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

🤖 AI Code Review 團隊

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

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

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

AI Code Review 統計

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

🤖 AI 助理使用量

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

提示 token 回應 token 合計
72,308 2,421 128,070

剩餘可用

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

## AI Code Review 統計 | 類型 | 🔴 嚴重 | 🟡 警告 | 🔵 建議 | ⚪ 無法標示 | | --- | --- | --- | --- | --- | | 新問題 | 0 筆 | 0 筆 | 0 筆 | 0 筆 | | 舊問題 | 0 筆 | 0 筆 | 0 筆 | 0 筆 | ## 🤖 AI 助理使用量 **本次審查**(opencode / gemini-2.5-flash,共 8 次呼叫) | 提示 token | 回應 token | 合計 | | --- | --- | --- | | 72,308 | 2,421 | 128,070 | **剩餘可用** 剩餘可用:無法計算百分比(自架服務,無帳號額度概念)
jiantw83 merged commit 5a855cf5cb into develop 2026-06-23 09:20:44 +00:00
jiantw83 deleted branch ai-review-resolve/20260623-170920 2026-06-23 09:20:44 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: old-actions/calculate-version#3