develop
master
將 calculate-version action 標準化容器化、統一 log 格式,並修復 AI review findings:
calculate-version
Dockerfile
node:latest
node:slim
entrypoint.sh
exec node /app/index.js
logger
info
error
[INF|ERR][台灣時間]: 訊息
loadConfig
GITEA_REPOSITORY
owner/repo
..
test/
app/test/
app/test/logger.test.js
README.md
findings.json
exclusions.json
app/config.js
app/releases.js
app/logger.js
[等級][時間]: 訊息
app/test/*
logger.test.js
docker build
node --test
No dependencies set.
The note is not visible to the blocked user.
變更摘要
將
calculate-versionaction 標準化容器化、統一 log 格式,並修復 AI review findings:Dockerfile改為最新 node 多階段建置(buildnode:latest→ runtimenode:slim)以縮小最終映像;entrypoint.sh啟動時先輸出 Action 名稱/用途/更新時間橫幅,再exec node /app/index.js。logger的info/error統一為[INF|ERR][台灣時間]: 訊息格式,並新增台灣時區(Asia/Taipei)時間戳。loadConfig新增GITEA_REPOSITORY的owner/repo格式驗證並阻擋..路徑穿越;release JSON 解析失敗時,錯誤訊息附上截斷的回傳內容以利定位。test/,以 union 方式整併進app/test/(不丟失覆蓋),並新增app/test/logger.test.js。README.md。findings.json已清空(無誤報,exclusions.json不變)。影響範圍
info/error加上等級與時間戳;entrypoint.sh新增啟動橫幅);訊息內容與邏輯不變。GITEA_REPOSITORY若非owner/repo形式(或含..)將拋錯(原本未驗證)。重點檔案
Dockerfile、entrypoint.shapp/config.js、app/releases.jsGITEA_REPOSITORY驗證、解析錯誤訊息帶回傳內容app/logger.js[等級][時間]: 訊息app/test/*logger.test.js風險與注意事項
docker build成功啟動。node --test:43 passed / 0 failed。