jiantw83 27ddf04ec2
CI / 1. BUILD (pull_request) Successful in 2s
CI / 2. TEST (pull_request) Has been skipped
CI / 3. RESULT (pull_request) Has been skipped
fix(.gitea/workflows/ci): 修正版本輸出來源
2026-07-11 13:25:21 +00:00

AI Code Review

更新時間:2026/07/11 19:18:23

專案列表

專案名稱 專案描述
AI Code Review 此專案提供 Gitea 工作流程中的 AI 程式碼審查、findings / exclusions 管理、LLM CLI 橋接與 git / Gitea 前置驗證工具。
專案名稱 參考專案列表
AI Code Review
專案名稱 NuGet 套件列表
AI Code Review

功能列表

AI Code Review

功能名稱 功能描述
parseLocation 解析 finding location 為檔案與行號。
formatFindingsStats 產生 findings 統計表格。
formatFindingsStatsLine 產生 findings 單行統計摘要。
postFindingsReview 發布 findings 的 Gitea review。
saveFindings 將 findings 寫入工作區與鏡像目錄。
postOldFindingsComment 發布舊問題的 comment。
postNewNonCriticalComment 發布新問題中的非嚴重 comment。
postNewCriticalComments 發布新嚴重問題的 comment。
getInsecureHttpsAgent 取得一個關閉 TLS 憑證驗證的 HTTPS Agent 單例,供內部服務連線使用。
getLLMCLICommands 取得目前支援的 LLM CLI 指令名稱清單。
getLLMConfig 依環境變數與 CLI 可用性解析目前可用的 LLM 提供者設定。
analyzeWithRole 用指定角色分析 diff 並產生 findings。
normalizeText 將文字正規化成比對用形式。
loadOldFindings 讀取舊 findings 並標記為舊問題。
mergeFindings 合併新舊 findings 並去重。
sortByLevel 依嚴重度排序 findings。
resolveMissingLineNumbers 為缺少行號的 findings 補上行號。
deduplicateWithAI 用 AI 進行 findings 語意去重。
loadExclusions 讀取並正規化 exclusions。
appendExclusions 將新的排除條目追加到 exclusions 檔。
applyExclusions 依 exclusions 過濾 findings。
filterFalsePositivesWithAI 用 AI 過濾誤報 findings。
getRepoState 讀取指定 git repo 的基本狀態快照,包含 HEAD、分支與 commit 時間。
getHeadCommitMessage 讀取指定 repo 的 HEAD commit 完整 commit message,失敗時保守回傳空字串。
isBotAutoCommit 判斷 HEAD commit 是否由 AI Review bot 自動產生,避免重複觸發後續流程。
verifyRemoteAccess 先用 git ls-remote 驗證 remote 認證與連線是否可用,失敗時回傳結構化錯誤。
cloneRepo 以可重入方式抓取 PR head branch 到工作目錄內的 repo 資料夾。
commitAndPush 將 AI 審查產出的檔案結轉、提交並推回 PR head branch,失敗時保守記錄 log 而不中斷流程。
getBotReviewOutcome 解析 AI Review bot 的結果標記,回傳 success、failure 或 unknown。
parseReviewIgnore .reviewignore 文字解析成可用的排除前綴陣列。
getReviewIgnore 讀取並解析 PR 的 .reviewignore,沒有自訂規則時回退預設排除清單。
getPRDiff 取得目前 PR 的 unified diff,並套用 .reviewignore 與內建過濾規則。
getCommitMessageBySha 依 commit SHA 讀取 Gitea 上的 commit message,失敗時保守回空字串。
getBranchHeadCommitMessage 讀取指定分支 head commit 的訊息,失敗時保守回空字串。
shouldSkipBotCommit 判斷目前 PR head 是否為 bot 自動提交,若是就跳過後續審查流程。
filterDiff 過濾 unified diff 中不需要審查的路徑區塊,保留其餘內容。
postComment 在 PR 底下發布一則 Markdown 留言,適合非行內評論用途。
postPullReviewComment 對 PR 指定檔案與行號發送單筆行內 review comment。
postPullReview 建立一則包含摘要與多筆行內 comment 的 PR review。
listPullReviews 列出目前 PR 的所有 review,回應格式不正確時保守回空陣列。
getPullReviewComments 依 review ID 取得該 review 底下的所有行內 comment。
listAllReviewComments 彙整目前 PR 的所有 review comments,單筆失敗時略過並持續處理。
resolvePullReviewComment 解決指定 review comment 對話,對應 Gitea 的 resolve API。
getFileContentAtRef 讀取指定 ref 下的檔案文字內容,支援 base64 解碼並在失敗時保守回空字串。
stripCodeFence 移除文字外層的 markdown code fence,並清理前後空白。
repairJSONArrayWithAI 透過 LLM 將原始內容修復成可直接 JSON.parse 的 JSON 陣列字串。
validateJSONArrayFile 驗證 JSON 檔案是否合法,必要時嘗試透過 AI 修復一次。
ensureJSONArrayFileExists 確保指定路徑存在一個 JSON 檔案,不存在時建立空陣列檔。
mapWithConcurrency 以可控制併發數的方式並行處理陣列項目。
extractMeaningfulError 從 CLI 原始輸出中擷取最有用的錯誤訊息。
chat 呼叫可用的 AI 助理 CLI,並回傳文字回應。
chatJSON 呼叫 AI 助理並把回應解析成 JSON。
extractBalancedJSON 從指定索引開始擷取完整平衡的 JSON 片段。
extractJSONText 從雜訊文字中抽出最可能的 JSON 內容。
section 輸出最上層區塊標題,用來切分整體執行流程。
step 輸出流程中的步驟標題,標示某一小段工作內容。
line 輸出一行中性的明細資訊。
input 輸出某一步驟的輸入描述,方便追蹤資料來源。
output 輸出某一步驟的產出描述,方便追蹤結果。
result 依布林值輸出成功或失敗的檢查結果。
ok 輸出一筆成功或完成訊息。
warn 輸出一筆警告訊息到 stderr。
error 輸出一筆錯誤訊息到 stderr。
main 執行 AI Code Review Pipeline 的完整流程。
checkRequiredEnv 檢查前置驗證所需的必要環境值是否齊全。
verifyGiteaToken 驗證 Gitea token 是否可讀取指定 repository。
verifyCommentToken 驗證 comment token 是否可用;未提供時回傳 skipped。
fetchCodexModels 讀取本機 codex 認證檔並取得目前可用的模型 slug 清單。
verifyLLM 驗證目前環境是否有可用的 LLM CLI 與對應模型設定。
runPreflight 執行所有前置驗證流程,任一失敗即回傳 false。
parseBotReviewComment 解析 bot 產生的 review comment,還原成 finding 欄位物件。
groupConversations 依檔案路徑與行號把 review comments 收斂成對話群組。
codeWindow 擷取目標行附近的程式碼片段,供 AI 判讀。
judgeConversations 處理 judgeConversations 相關邏輯。
isSafeRepoPath 檢查路徑是否安全,避免讀取 repo 外檔案。
reconcileConversations 收斂 PR review 對話,並依 AI 裁定回填 findings 的去向。
dropResolvedFindings 移除已解決對話對應的 findings。
addCarriedFindings 將仍成立但缺漏的 findings 補回清單。
parseRoleFile 解析角色 Markdown 檔,取出 frontmatter 與本文。
loadRoles 只載入攻擊方角色。
loadRole 依名稱查找單一角色。
buildAnalysisPrompt 產生攻擊方角色的程式碼審查 system prompt。
buildLocateLinePrompt 產生用來補 finding 行號的 prompt。
buildVerdictPrompt 產生單條 finding 的誤報裁決 prompt。
getRoleIntro 產生 AI Code Review 團隊的 Markdown 介紹表。
extractUsage 從 LLM 回應抽出 token usage。
recordUsage 記錄一次 LLM 呼叫使用量。
getRunUsage 取得目前累積的使用量。
resetRunUsage 重置執行中的 usage 累計。
recordRateLimit 記錄最近一次速率配額資訊。
getRateLimit 取得最近一次 rate limit 快照。
resetRateLimit 重置 rate limit 快照。
fetchAccountQuota 查詢指定平台的帳號額度。
resolveRemainingPercent 計算可用額度剩餘百分比。
formatUsageStats 產生 AI 助理使用量 Markdown 區塊。
formatUsageStatsLine 產生使用量單行摘要。

使用範例

parseLocation

解析 finding location 為檔案與行號。

檔案位置:src/comments.js 第 66 行。

const result = parseLocation(location);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

formatFindingsStats

產生 findings 統計表格。

檔案位置:src/comments.js 第 150 行。

const result = formatFindingsStats(findings);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

formatFindingsStatsLine

產生 findings 單行統計摘要。

檔案位置:src/comments.js 第 171 行。

const result = formatFindingsStatsLine(findings);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

postFindingsReview

發布 findings 的 Gitea review。

檔案位置:src/comments.js 第 220 行。

const result = await postFindingsReview(findings, deps);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

saveFindings

將 findings 寫入工作區與鏡像目錄。

檔案位置:src/comments.js 第 259 行。

const result = saveFindings(workspace, findings, mirrorDir);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

postOldFindingsComment

發布舊問題的 comment。

檔案位置:src/comments.js 第 274 行。

const result = await postOldFindingsComment(findings);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

postNewNonCriticalComment

發布新問題中的非嚴重 comment。

檔案位置:src/comments.js 第 288 行。

const result = await postNewNonCriticalComment(findings);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

postNewCriticalComments

發布新嚴重問題的 comment。

檔案位置:src/comments.js 第 304 行。

const result = await postNewCriticalComments(findings, deps);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

getInsecureHttpsAgent

取得一個關閉 TLS 憑證驗證的 HTTPS Agent 單例,供內部服務連線使用。

檔案位置:src/config.js 第 60 行。

const result = getInsecureHttpsAgent();

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

getLLMCLICommands

取得目前支援的 LLM CLI 指令名稱清單。

檔案位置:src/config.js 第 100 行。

const result = getLLMCLICommands();

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

getLLMConfig

依環境變數與 CLI 可用性解析目前可用的 LLM 提供者設定。

檔案位置:src/config.js 第 130 行。

const result = getLLMConfig(commandExistsFn);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

analyzeWithRole

用指定角色分析 diff 並產生 findings。

檔案位置:src/findings.js 第 14 行。

const result = await analyzeWithRole(role, diff);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

normalizeText

將文字正規化成比對用形式。

檔案位置:src/findings.js 第 120 行。

const result = normalizeText(value);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

loadOldFindings

讀取舊 findings 並標記為舊問題。

檔案位置:src/findings.js 第 302 行。

const result = loadOldFindings(workspace);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

mergeFindings

合併新舊 findings 並去重。

檔案位置:src/findings.js 第 319 行。

const result = mergeFindings(oldFindings, newFindings);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

sortByLevel

依嚴重度排序 findings。

檔案位置:src/findings.js 第 335 行。

const result = sortByLevel(findings);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

resolveMissingLineNumbers

為缺少行號的 findings 補上行號。

檔案位置:src/findings.js 第 376 行。

const result = await resolveMissingLineNumbers(findings, diff, deps);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

deduplicateWithAI

用 AI 進行 findings 語意去重。

檔案位置:src/findings.js 第 423 行。

const result = await deduplicateWithAI(findings);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

loadExclusions

讀取並正規化 exclusions。

檔案位置:src/findings.js 第 450 行。

const result = loadExclusions(workspace, repoState, mirrorWorkspace);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

appendExclusions

將新的排除條目追加到 exclusions 檔。

檔案位置:src/findings.js 第 500 行。

const result = appendExclusions(workspace, newEntries, mirrorWorkspace);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

applyExclusions

依 exclusions 過濾 findings。

檔案位置:src/findings.js 第 544 行。

const result = applyExclusions(findings, exclusions);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

filterFalsePositivesWithAI

用 AI 過濾誤報 findings。

檔案位置:src/findings.js 第 577 行。

const result = await filterFalsePositivesWithAI(findings, exclusions, chatFn);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

getRepoState

讀取指定 git repo 的基本狀態快照,包含 HEAD、分支與 commit 時間。

檔案位置:src/git.js 第 120 行。

const result = getRepoState(repoDir, _spawnSync);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

getHeadCommitMessage

讀取指定 repo 的 HEAD commit 完整 commit message,失敗時保守回傳空字串。

檔案位置:src/git.js 第 138 行。

const result = getHeadCommitMessage(repoDir, _spawnSync);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

isBotAutoCommit

判斷 HEAD commit 是否由 AI Review bot 自動產生,避免重複觸發後續流程。

檔案位置:src/git.js 第 153 行。

const result = isBotAutoCommit(repoDir, _spawnSync);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

verifyRemoteAccess

先用 git ls-remote 驗證 remote 認證與連線是否可用,失敗時回傳結構化錯誤。

檔案位置:src/git.js 第 163 行。

const result = verifyRemoteAccess(workspace, _spawnSync);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳驗證成功/失敗的結構化結果。

cloneRepo

以可重入方式抓取 PR head branch 到工作目錄內的 repo 資料夾。

檔案位置:src/git.js 第 178 行。

const result = cloneRepo(workspace, _spawnSync);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

commitAndPush

將 AI 審查產出的檔案結轉、提交並推回 PR head branch,失敗時保守記錄 log 而不中斷流程。

檔案位置:src/git.js 第 220 行。

const result = await commitAndPush(workspace, repoDir, _spawnSync, _sourceRoot, reviewOutcome);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

getBotReviewOutcome

解析 AI Review bot 的結果標記,回傳 success、failure 或 unknown。

檔案位置:src/gitea.js 第 39 行。

const result = getBotReviewOutcome(message);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

parseReviewIgnore

.reviewignore 文字解析成可用的排除前綴陣列。

檔案位置:src/gitea.js 第 62 行。

const result = parseReviewIgnore(text);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

getReviewIgnore

讀取並解析 PR 的 .reviewignore,沒有自訂規則時回退預設排除清單。

檔案位置:src/gitea.js 第 74 行。

const result = await getReviewIgnore();

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

getPRDiff

取得目前 PR 的 unified diff,並套用 .reviewignore 與內建過濾規則。

檔案位置:src/gitea.js 第 89 行。

const result = await getPRDiff();

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

getCommitMessageBySha

依 commit SHA 讀取 Gitea 上的 commit message,失敗時保守回空字串。

檔案位置:src/gitea.js 第 101 行。

const result = await getCommitMessageBySha(sha);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

getBranchHeadCommitMessage

讀取指定分支 head commit 的訊息,失敗時保守回空字串。

檔案位置:src/gitea.js 第 122 行。

const result = await getBranchHeadCommitMessage(branch);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

shouldSkipBotCommit

判斷目前 PR head 是否為 bot 自動提交,若是就跳過後續審查流程。

檔案位置:src/gitea.js 第 147 行。

const result = await shouldSkipBotCommit(sha, branch);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

filterDiff

過濾 unified diff 中不需要審查的路徑區塊,保留其餘內容。

檔案位置:src/gitea.js 第 164 行。

const result = filterDiff(diff, excludePrefixes);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

postComment

在 PR 底下發布一則 Markdown 留言,適合非行內評論用途。

檔案位置:src/gitea.js 第 184 行。

const result = await postComment(body);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

postPullReviewComment

對 PR 指定檔案與行號發送單筆行內 review comment。

檔案位置:src/gitea.js 第 203 行。

const result = await postPullReviewComment(pathfilePath, line, body);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

postPullReview

建立一則包含摘要與多筆行內 comment 的 PR review。

檔案位置:src/gitea.js 第 226 行。

const result = await postPullReview(body, comments);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

listPullReviews

列出目前 PR 的所有 review,回應格式不正確時保守回空陣列。

檔案位置:src/gitea.js 第 246 行。

const result = await listPullReviews();

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

getPullReviewComments

依 review ID 取得該 review 底下的所有行內 comment。

檔案位置:src/gitea.js 第 260 行。

const result = await getPullReviewComments(reviewId);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

listAllReviewComments

彙整目前 PR 的所有 review comments,單筆失敗時略過並持續處理。

檔案位置:src/gitea.js 第 274 行。

const result = await listAllReviewComments();

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

resolvePullReviewComment

解決指定 review comment 對話,對應 Gitea 的 resolve API。

檔案位置:src/gitea.js 第 296 行。

const result = await resolvePullReviewComment(commentId);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

getFileContentAtRef

讀取指定 ref 下的檔案文字內容,支援 base64 解碼並在失敗時保守回空字串。

檔案位置:src/gitea.js 第 313 行。

const result = await getFileContentAtRef(filePath, ref);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

stripCodeFence

移除文字外層的 markdown code fence,並清理前後空白。

檔案位置:src/json.js 第 17 行。

const result = stripCodeFence(text);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

repairJSONArrayWithAI

透過 LLM 將原始內容修復成可直接 JSON.parse 的 JSON 陣列字串。

檔案位置:src/json.js 第 43 行。

const result = await repairJSONArrayWithAI(fullPath, label, rawText, chatFn);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

validateJSONArrayFile

驗證 JSON 檔案是否合法,必要時嘗試透過 AI 修復一次。

檔案位置:src/json.js 第 93 行。

const result = await validateJSONArrayFile(fullPath, label, repairer);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳驗證成功/失敗的結構化結果。

ensureJSONArrayFileExists

確保指定路徑存在一個 JSON 檔案,不存在時建立空陣列檔。

檔案位置:src/json.js 第 134 行。

const result = ensureJSONArrayFileExists(fullPath, label);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

mapWithConcurrency

以可控制併發數的方式並行處理陣列項目。

檔案位置:src/llm.js 第 25 行。

const result = await mapWithConcurrency(items, limit, fn);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

extractMeaningfulError

從 CLI 原始輸出中擷取最有用的錯誤訊息。

檔案位置:src/llm.js 第 96 行。

const result = extractMeaningfulError(raw, limit);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

chat

呼叫可用的 AI 助理 CLI,並回傳文字回應。

檔案位置:src/llm.js 第 190 行。

const result = await chat(systemPrompt, userContent);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

chatJSON

呼叫 AI 助理並把回應解析成 JSON。

檔案位置:src/llm.js 第 218 行。

const result = await chatJSON(systemPrompt, userContent);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

extractBalancedJSON

從指定索引開始擷取完整平衡的 JSON 片段。

檔案位置:src/llm.js 第 255 行。

const result = extractBalancedJSON(text, startIndex);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

extractJSONText

從雜訊文字中抽出最可能的 JSON 內容。

檔案位置:src/llm.js 第 298 行。

const result = extractJSONText(text);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

section

輸出最上層區塊標題,用來切分整體執行流程。

檔案位置:src/log.js 第 9 行。

const result = section(title);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

step

輸出流程中的步驟標題,標示某一小段工作內容。

檔案位置:src/log.js 第 22 行。

const result = step(stepName, title);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

line

輸出一行中性的明細資訊。

檔案位置:src/log.js 第 34 行。

const result = line(message);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

input

輸出某一步驟的輸入描述,方便追蹤資料來源。

檔案位置:src/log.js 第 45 行。

const result = input(message);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

output

輸出某一步驟的產出描述,方便追蹤結果。

檔案位置:src/log.js 第 56 行。

const result = output(message);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

result

依布林值輸出成功或失敗的檢查結果。

檔案位置:src/log.js 第 69 行。

const result = result(passed, message);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

ok

輸出一筆成功或完成訊息。

檔案位置:src/log.js 第 81 行。

const result = ok(message);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

warn

輸出一筆警告訊息到 stderr。

檔案位置:src/log.js 第 93 行。

const result = warn(message);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

error

輸出一筆錯誤訊息到 stderr。

檔案位置:src/log.js 第 105 行。

const result = error(message);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

main

執行 AI Code Review Pipeline 的完整流程。

檔案位置:src/main.js 第 55 行。

const result = await main();

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

checkRequiredEnv

檢查前置驗證所需的必要環境值是否齊全。

檔案位置:src/preflight.js 第 60 行。

const result = checkRequiredEnv(token, repo, pr);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

verifyGiteaToken

驗證 Gitea token 是否可讀取指定 repository。

檔案位置:src/preflight.js 第 77 行。

const result = await verifyGiteaToken(token, repo);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳驗證成功/失敗的結構化結果。

verifyCommentToken

驗證 comment token 是否可用;未提供時回傳 skipped。

檔案位置:src/preflight.js 第 94 行。

const result = await verifyCommentToken(token);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳驗證成功/失敗的結構化結果。

fetchCodexModels

讀取本機 codex 認證檔並取得目前可用的模型 slug 清單。

檔案位置:src/preflight.js 第 118 行。

const result = await fetchCodexModels();

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

verifyLLM

驗證目前環境是否有可用的 LLM CLI 與對應模型設定。

檔案位置:src/preflight.js 第 171 行。

const result = await verifyLLM(fetchCodexModelsFn);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:回傳驗證成功/失敗的結構化結果。

runPreflight

執行所有前置驗證流程,任一失敗即回傳 false。

檔案位置:src/preflight.js 第 203 行。

const result = await runPreflight(workspace, deps);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

parseBotReviewComment

解析 bot 產生的 review comment,還原成 finding 欄位物件。

檔案位置:src/resolve.js 第 51 行。

const result = parseBotReviewComment(body);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

groupConversations

依檔案路徑與行號把 review comments 收斂成對話群組。

檔案位置:src/resolve.js 第 73 行。

const result = groupConversations(comments);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

codeWindow

擷取目標行附近的程式碼片段,供 AI 判讀。

檔案位置:src/resolve.js 第 100 行。

const result = codeWindow(content, lineNum, radius);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

judgeConversations

處理 judgeConversations 相關邏輯。

檔案位置:src/resolve.js 第 126 行。

const result = await judgeConversations(items, chatFn);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

isSafeRepoPath

檢查路徑是否安全,避免讀取 repo 外檔案。

檔案位置:src/resolve.js 第 174 行。

const result = isSafeRepoPath(p);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

reconcileConversations

收斂 PR review 對話,並依 AI 裁定回填 findings 的去向。

檔案位置:src/resolve.js 第 190 行。

const result = await reconcileConversations(deps);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

dropResolvedFindings

移除已解決對話對應的 findings。

檔案位置:src/resolve.js 第 329 行。

const result = dropResolvedFindings(findings, resolvedFindings);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

addCarriedFindings

將仍成立但缺漏的 findings 補回清單。

檔案位置:src/resolve.js 第 338 行。

const result = addCarriedFindings(findings, carriedFindings);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

parseRoleFile

解析角色 Markdown 檔,取出 frontmatter 與本文。

檔案位置:src/roles.js 第 25 行。

const result = parseRoleFile(content);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

loadRoles

只載入攻擊方角色。

檔案位置:src/roles.js 第 71 行。

const result = loadRoles();

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

loadRole

依名稱查找單一角色。

檔案位置:src/roles.js 第 85 行。

const result = loadRole(name);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

buildAnalysisPrompt

產生攻擊方角色的程式碼審查 system prompt。

檔案位置:src/roles.js 第 104 行。

const result = buildAnalysisPrompt(role);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

buildLocateLinePrompt

產生用來補 finding 行號的 prompt。

檔案位置:src/roles.js 第 149 行。

const result = buildLocateLinePrompt(role);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

buildVerdictPrompt

產生單條 finding 的誤報裁決 prompt。

檔案位置:src/roles.js 第 173 行。

const result = buildVerdictPrompt(role, exclusionHint);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

getRoleIntro

產生 AI Code Review 團隊的 Markdown 介紹表。

檔案位置:src/roles.js 第 206 行。

const result = getRoleIntro(roles);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

extractUsage

從 LLM 回應抽出 token usage。

檔案位置:src/usage.js 第 24 行。

const result = extractUsage(data);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

recordUsage

記錄一次 LLM 呼叫使用量。

檔案位置:src/usage.js 第 65 行。

const result = recordUsage(data);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

getRunUsage

取得目前累積的使用量。

檔案位置:src/usage.js 第 77 行。

const result = getRunUsage();

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

resetRunUsage

重置執行中的 usage 累計。

檔案位置:src/usage.js 第 82 行。

const result = resetRunUsage();

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

recordRateLimit

記錄最近一次速率配額資訊。

檔案位置:src/usage.js 第 109 行。

const result = recordRateLimit(headers);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:完成對外部系統的寫入、發佈或執行動作。

getRateLimit

取得最近一次 rate limit 快照。

檔案位置:src/usage.js 第 130 行。

const result = getRateLimit();

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

resetRateLimit

重置 rate limit 快照。

檔案位置:src/usage.js 第 135 行。

const result = resetRateLimit();

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:依函式用途回傳對應結果。

fetchAccountQuota

查詢指定平台的帳號額度。

檔案位置:src/usage.js 第 209 行。

const result = await fetchAccountQuota(provider, config, deps);

使用情境:通常在需要等待外部 I/O 或其他非同步回應時呼叫。

預期結果:依函式用途回傳對應結果。

resolveRemainingPercent

計算可用額度剩餘百分比。

檔案位置:src/usage.js 第 278 行。

const result = resolveRemainingPercent(quota, rate);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

formatUsageStats

產生 AI 助理使用量 Markdown 區塊。

檔案位置:src/usage.js 第 315 行。

const result = formatUsageStats(provider, model, usage, quota, rate);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

formatUsageStatsLine

產生使用量單行摘要。

檔案位置:src/usage.js 第 334 行。

const result = formatUsageStatsLine(provider, model, usage, quota, rate);

使用情境:通常在本地資料處理或同步查詢時呼叫。

預期結果:回傳對應資料、設定、字串或布林值。

2026-07-11 13:25:29 +00:00
Languages
JavaScript 100%