Jeffery and Claude Opus 4.8
e6ac2a09f6
test(calculate-version): 補 truncateString 多位元組字元截斷測試
...
新增以 emoji(代理對)驗證截斷不拆分多位元組字元、不殘留落單代理碼元的測試。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 15:21:45 +08:00
Jeffery and Claude Opus 4.8
bc4cea6daf
refactor(calculate-version): 抽出 truncateString 並明確化 repository 驗證命名
...
- releases 將片段截斷邏輯抽為可重用、可獨立測試的 truncateString(text, limit) 並 export
- config 將 assertRepository 更名為 assertGiteaRepositoryFormat,凸顯其驗證 Gitea owner/repo 格式的領域語義
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 15:21:45 +08:00
Jeffery and Claude Opus 4.8
a18802d465
test(calculate-version): 補回應片段截斷行為測試
...
新增超長無法解析回應的測試,斷言錯誤訊息中的片段截斷至 200 字元內。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 14:14:30 +08:00
Jeffery and Claude Opus 4.8
4aa1393af2
refactor(calculate-version): 強化片段截斷記憶體安全與抽出區段驗證
...
- releases 在 Array.from 前先以長度上限截斷字串,避免將可能極大的回應整個陣列化
- config 將 repository 區段驗證抽為具名函式 isValidRepoSegment 提升可讀性
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 14:14:30 +08:00
Jeffery and Claude Opus 4.8
5e8d58b5f9
test(calculate-version): 補 GITEA_REPOSITORY 非法字元與超長段測試
...
新增含空白/星號/冒號等非法字元,以及單段超過長度上限的拒絕測試。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 14:11:36 +08:00
Jeffery and Claude Opus 4.8
d8a86e90ea
refactor(calculate-version): 將驗證常數抽離為具名常數
...
- config 將每段長度上限與允許字元抽為 MAX_REPO_NAME_LENGTH / REPO_SEGMENT_PATTERN(regex 提升至模組層級,避免每次重編譯)
- releases 將片段截斷長度抽為 API_ERROR_SNIPPET_LENGTH
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 14:11:36 +08:00
Jeffery and Claude Opus 4.8
1e227328f2
test(calculate-version): 補 repository 邊界測試並合併串流攔截輔助
...
- 補上 GITEA_REPOSITORY 空段/缺斜線/多段等邊界格式的拋錯測試
- 將 logger 測試的 captureStdout/captureStderr 合併為單一 captureStream
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 14:05:08 +08:00
Jeffery and Claude Opus 4.8
da83f4fc30
fix(calculate-version): 強化片段截斷與 repository 驗證健全性
...
- releases 改以 Array.from 依字元截斷回應片段,避免拆分多位元組字元造成亂碼,並標記片段內容
- config assertRepository 加入每段長度上限,並將 valid 更名為語義明確的 isRepoFormatValid
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 14:05:08 +08:00
Jeffery and Claude Opus 4.8
a9d137ac9e
test(calculate-version): 補強測試覆蓋並拆分混合測試案例
...
- 新增 logger section/info/error 的輸出格式測試
- config 補上 GITEA_REPOSITORY 驗證測試,並拆分 isUnset/requireEnv 的正反例
- version 補回 compareVersionArrays 的 major 跨區段比較案例
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 14:01:30 +08:00
Jeffery and Claude Opus 4.8
b8804c5218
fix(calculate-version): 強化輸入驗證與錯誤訊息
...
- config 對 GITEA_REPOSITORY 加入 owner/repo 格式驗證,拒絕路徑穿越與特殊字元
- releases JSON 解析失敗時,錯誤訊息納入截斷的回傳內容片段以利除錯
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 14:01:30 +08:00
Jeffery
0977e66ff4
test(calculate-version): 整併單元測試至 app/test 並移除無法被執行的重複測試目錄
...
CI / AI Code Review (pull_request) Successful in 38s
app/package.json 的 npm test(node --test,cwd 為 app/)只會探索 app/test/,
repo 根目錄另一份 test/ 中的 main 整合測試(index.test.js)因此從未被執行。
將 config/index/releases/version 收斂至 app/test/(修正 require 路徑),
保留 output 測試,移除重複且無法執行的 repo 根 test/。現 app/test/ 共 34 筆測試皆可執行。
2026-06-26 11:18:53 +08:00
Jeffery and Claude Opus 4.8
fdf33b41d8
fix(calculate-version): 修復 AI 審查的安全與健全性問題
...
- Dockerfile 移除 --no-check-certificate,恢復 TLS 憑證檢查以防中間人攻擊
- config 對 GITEA_SERVER_URL 加入 http/https URL 格式驗證
- logger.fail 改為 logger.error(僅輸出不終止行程),退出移至 index 頂層處理
- index.main 改用相依注入並於頂層攔截錯誤後 exit 1,避免 library 內呼叫 process.exit
- releases 將 response.text() 包入 try-catch 並附帶頁碼
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 10:52:19 +08:00
Jeffery and Claude Opus 4.8
bd6b6017ab
refactor(calculate-version): 將版本計算邏輯由 bash 改寫為 Node.js 並依功能分檔
...
保留 entrypoint.sh 作為容器進入點,改為啟動 app/ 下的 Node.js 程式;
依功能拆分為 logger/config/version/releases/output/index,並更新 Dockerfile 改用 node:lts-alpine。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 10:41:34 +08:00
jiantw83
e8fa3ab67e
feat(calculate-version): 改為計算版本 Docker Action
2026-06-25 10:52:39 +00:00
jiantw83
3cf52a2302
feat: add role management and usage tracking modules
...
- Implemented role parsing and loading functionality in roles.js, allowing for structured role definitions with metadata.
- Added tests for role management to ensure correct parsing and loading of roles.
- Created usage.js to track API usage metrics, including token counts and rate limits.
- Developed tests for usage tracking to validate functionality and edge cases.
- Enhanced overall code structure and documentation for clarity and maintainability.
2026-06-25 09:13:15 +00:00