♻️ refactor(vscode): 设置项 autoBuildBranch 换成发布分支前缀与 Jenkins 任务

Claude-Session: https://claude.ai/code/session_01HTMgwaE3woqM5yvsHiuSAa
This commit is contained in:
cruldra committed 2026-08-31 23:38:53 +08:00
1 parent fa32d4a88b
commit 6f59b4f3fd
13 files changed
+149 -66

No files matched your search

+3 -4
View File
@@ -5,7 +5,7 @@ import { logger } from '../../logging/logger'
/**
* 清理一个 feature 分支(远程 + 本地),供「拖到完成」和「手动删除 worktree」两处共用。
*
* - 受保护分支(main/master/devBranch/autoBuildBranch)直接跳过,绝不删。
* - 受保护分支(main/master/devBranch)直接跳过,绝不删。
* - 远程删除走 gitea API,需 remote + token;缺任一则只删本地,不阻断。
* - 本地删除是强删(deleteLocalBranch 内部 `git branch -D`):调用方语义是「连分支一起删」,
* 未合并也照删。
@@ -20,17 +20,16 @@ export async function cleanupFeatureBranch(opts: {
branch: string
issueNumber: number
devBranch?: string
autoBuildBranch?: string
/** 缺 remote 或 token 时跳过远程删除,只删本地。 */
remote?: { host: string, owner: string, repo: string }
token?: string
}): Promise<void> {
const { workspaceRoot, branch, issueNumber, devBranch, autoBuildBranch, remote, token } = opts
const { workspaceRoot, branch, issueNumber, devBranch, remote, token } = opts
if (!branch)
return
const protectedBranches = new Set(
['main', 'master', devBranch, autoBuildBranch].filter((b): b is string => Boolean(b)),
['main', 'master', devBranch].filter((b): b is string => Boolean(b)),
)
if (protectedBranches.has(branch)) {
logger.add({ level: 'warn', source: 'panel', message: `跳过受保护分支清理 ${branch} (issue #${issueNumber})` })