♻️ 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

@@ -26,7 +26,9 @@ interface SubmitValues {
autoReview: boolean
reviewPrompt: string
devBranch: string
autoBuildBranch: string
releaseBranchPrefix: string
jenkinsJob: string
jenkinsProdHost: string
worktreeDirectory: string
worktreeOpenWith: 'vscode' | 'pycharm'
pycharmCommand: string
@@ -73,7 +75,9 @@ export interface SettingsModalProps {
initialAutoReview: boolean
initialReviewPrompt: string
initialDevBranch: string
initialAutoBuildBranch: string
initialReleaseBranchPrefix: string
initialJenkinsJob: string
initialJenkinsProdHost: string
initialWorktreeDirectory: string
initialWorktreeOpenWith: 'vscode' | 'pycharm'
initialPycharmCommand: string
@@ -156,7 +160,9 @@ export function SettingsModal({
initialAutoReview,
initialReviewPrompt,
initialDevBranch,
initialAutoBuildBranch,
initialReleaseBranchPrefix,
initialJenkinsJob,
initialJenkinsProdHost,
initialWorktreeDirectory,
initialWorktreeOpenWith,
initialPycharmCommand,
@@ -191,7 +197,9 @@ export function SettingsModal({
const [autoReview, setAutoReview] = useState(initialAutoReview)
const [reviewPrompt, setReviewPrompt] = useState(initialReviewPrompt)
const [devBranch, setDevBranch] = useState(initialDevBranch)
const [autoBuildBranch, setAutoBuildBranch] = useState(initialAutoBuildBranch)
const [releaseBranchPrefix, setReleaseBranchPrefix] = useState(initialReleaseBranchPrefix)
const [jenkinsJob, setJenkinsJob] = useState(initialJenkinsJob)
const [jenkinsProdHost, setJenkinsProdHost] = useState(initialJenkinsProdHost)
const [worktreeDirectory, setWorktreeDirectory] = useState(initialWorktreeDirectory)
const [worktreeOpenWith, setWorktreeOpenWith] = useState(initialWorktreeOpenWith)
const [pycharmCommand, setPycharmCommand] = useState(initialPycharmCommand)
@@ -228,7 +236,9 @@ export function SettingsModal({
setAutoReview(initialAutoReview)
setReviewPrompt(initialReviewPrompt)
setDevBranch(initialDevBranch)
setAutoBuildBranch(initialAutoBuildBranch)
setReleaseBranchPrefix(initialReleaseBranchPrefix)
setJenkinsJob(initialJenkinsJob)
setJenkinsProdHost(initialJenkinsProdHost)
setWorktreeDirectory(initialWorktreeDirectory)
setWorktreeOpenWith(initialWorktreeOpenWith)
setPycharmCommand(initialPycharmCommand)
@@ -313,7 +323,9 @@ export function SettingsModal({
autoReview,
reviewPrompt,
devBranch: devBranch.trim(),
autoBuildBranch: autoBuildBranch.trim(),
releaseBranchPrefix: releaseBranchPrefix.trim(),
jenkinsJob: jenkinsJob.trim(),
jenkinsProdHost: jenkinsProdHost.trim(),
// worktree 目录模板:trim 后留空 = 用默认模板(getSettings 读时回退)
worktreeDirectory: worktreeDirectory.trim(),
worktreeOpenWith,
@@ -455,7 +467,7 @@ export function SettingsModal({
日常推送的分支,留空默认
{' '}
<code>main</code>
。同步按钮把这条分支的最新提交快进到下面的构建分支。
。发布按钮从这条分支切发布分支、统计未发布提交。
</>
)}
>
@@ -469,18 +481,43 @@ export function SettingsModal({
</Field>
<Field
label="自动化构建分支"
label="发布分支前缀"
hint="线上跑的发布分支名前缀,默认 release/,按钮会自动取最新的一个"
>
<input
type="text"
value={releaseBranchPrefix}
onChange={e => setReleaseBranchPrefix(e.target.value)}
placeholder="release/"
className={inputClass}
/>
</Field>
<Field
label="Jenkins 任务名"
hint={(
<>
gitea webhook → Jenkins 监听的分支。留空表示与开发分支相同,同步按钮会一直禁用。
留空则不显示「部署到正式服」;触发时执行
{' '}
<code>opencli jks build &lt;任务名&gt; -p REF=… -p REMOTE_HOST=…</code>
</>
)}
>
<input
type="text"
value={autoBuildBranch}
onChange={e => setAutoBuildBranch(e.target.value)}
placeholder="留空 = 与开发分支相同"
value={jenkinsJob}
onChange={e => setJenkinsJob(e.target.value)}
placeholder="留空 = 不提供部署"
className={inputClass}
/>
</Field>
<Field label="正式服 REMOTE_HOST 值">
<input
type="text"
value={jenkinsProdHost}
onChange={e => setJenkinsProdHost(e.target.value)}
placeholder="正式服"
className={inputClass}
/>
</Field>