Skip to content

Commit 96770ad

Browse files
authored
refactor(code-review): adjust issue interface params, remove repo command and progress field (#870)
* refactor(code-review): simplify review target structure and remove repo review command * refactor(code-review): remove reviewProgress field and simplify progress UI
1 parent 7342f9e commit 96770ad

File tree

15 files changed

+80
-171
lines changed

15 files changed

+80
-171
lines changed

src/core/costrict/code-review/codeReviewService.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ export class CodeReviewService {
8181
taskId: "",
8282
isCompleted: false,
8383
progress: 0,
84-
review_progress: "",
8584
total: 0,
8685
}
8786
}
@@ -203,25 +202,25 @@ export class CodeReviewService {
203202
this.recordReviewError(CodeReviewErrorType.AuthError as TelemetryErrorType)
204203
}
205204

206-
public async startReview(targets: ReviewTarget[]) {
205+
public async startReview(target: ReviewTarget) {
207206
const visibleProvider = this.getProvider()
208207
if (visibleProvider) {
209-
const chatMessage = targets
210-
.map((item) => {
211-
const { type, file_path } = item
212-
if (type === ReviewTargetType.FILE) {
208+
const chatMessage = target.data
209+
?.map((item) => {
210+
const { file_path } = item
211+
if (target.type === ReviewTargetType.FILE) {
213212
return `@/${file_path}`
214-
} else if (type === ReviewTargetType.FOLDER) {
213+
} else if (target.type === ReviewTargetType.FOLDER) {
215214
return `@/${file_path}/`
216215
}
217216
return ""
218217
})
219218
.join(" ")
220-
this.createReviewTask(chatMessage, targets)
219+
this.createReviewTask(chatMessage ?? "", target)
221220
}
222221
}
223222

224-
public async createReviewTask(message: string, targets: ReviewTarget[]) {
223+
public async createReviewTask(message: string, targets: ReviewTarget) {
225224
const provider = this.getProvider()
226225
if (!provider) {
227226
return
@@ -386,7 +385,6 @@ export class CodeReviewService {
386385
taskId: "",
387386
isCompleted: false,
388387
progress: 0,
389-
review_progress: "",
390388
total: 0,
391389
error: undefined,
392390
timeoutId: undefined,
@@ -397,7 +395,7 @@ export class CodeReviewService {
397395
this.commentService?.clearAllCommentThreads()
398396
}
399397

400-
public async getIssues(report: string, targets: ReviewTarget[]) {
398+
public async getIssues(report: string, target: ReviewTarget) {
401399
const clientId = getClientId()
402400
const workspace = this.clineProvider?.cwd || ""
403401
const requestOptions = await this.getRequestOptions()
@@ -407,7 +405,7 @@ export class CodeReviewService {
407405
review_report: report,
408406
client_id: clientId,
409407
workspace,
410-
review_code: targets,
408+
review_target: target,
411409
},
412410
requestOptions,
413411
)

src/core/costrict/code-review/gitCommitListener.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { API as GitAPI, Repository, GitExtension } from "./git"
33
import type { CodeReviewService } from "./codeReviewService"
44
import { t } from "../../../i18n"
55
import { EXPERIMENT_IDS, experiments as Experiments } from "../../../shared/experiments"
6+
import { ReviewTargetType } from "../../../shared/codeReview"
67

78
export class GitCommitListener {
89
private lastSeenCommitHash: string | undefined
@@ -99,7 +100,10 @@ export class GitCommitListener {
99100
if (!(await this.reviewService.checkApiProviderSupport())) {
100101
return
101102
}
102-
this.reviewService.createReviewTask(prompt, [])
103+
this.reviewService.createReviewTask(prompt, {
104+
type: ReviewTargetType.COMMIT,
105+
commit: commit.hash,
106+
})
103107
}
104108
}
105109
}

src/core/costrict/code-review/index.ts

Lines changed: 36 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,15 @@ export function initCodeReview(
7777
selectedText: editor.document.getText(range),
7878
}
7979
const prompt = supportPrompt.create("ADD_TO_CONTEXT", params)
80-
reviewInstance.createReviewTask(prompt, [
81-
{
82-
type: ReviewTargetType.CODE,
83-
file_path: filePath,
84-
line_range: [range.start.line, range.end.line],
85-
},
86-
])
80+
reviewInstance.createReviewTask(prompt, {
81+
type: ReviewTargetType.CODE,
82+
data: [
83+
{
84+
file_path: filePath,
85+
line_range: [range.start.line, range.end.line],
86+
},
87+
],
88+
})
8789
},
8890
reviewFilesAndFolders: async (_: vscode.Uri, selectedUris: vscode.Uri[]) => {
8991
const visibleProvider = await ClineProvider.getInstance()
@@ -95,32 +97,12 @@ export function initCodeReview(
9597
return
9698
}
9799
const cwd = visibleProvider.cwd.toPosix()
98-
const targets: ReviewTarget[] = await Promise.all(
99-
selectedUris.map(async (uri) => {
100-
const stat = await vscode.workspace.fs.stat(uri)
101-
return {
102-
type: stat.type === vscode.FileType.Directory ? ReviewTargetType.FOLDER : ReviewTargetType.FILE,
103-
file_path: toRelativePath(uri.fsPath.toPosix(), cwd),
104-
}
105-
}),
106-
)
107-
reviewInstance.startReview(targets)
108-
},
109-
reviewRepo: async () => {
110-
const visibleProvider = await ClineProvider.getInstance()
111-
if (!visibleProvider) {
112-
return
113-
}
114-
reviewInstance.setProvider(visibleProvider)
115-
if (!(await reviewInstance.checkApiProviderSupport())) {
116-
return
117-
}
118-
reviewInstance.startReview([
119-
{
120-
type: ReviewTargetType.FOLDER,
121-
file_path: "",
122-
},
123-
])
100+
reviewInstance.startReview({
101+
type: ReviewTargetType.FILE,
102+
data: selectedUris.map((uri) => ({
103+
file_path: toRelativePath(uri.fsPath.toPosix(), cwd),
104+
})),
105+
})
124106
},
125107
acceptIssue: async (thread: vscode.CommentThread) => {
126108
const visibleProvider = await ClineProvider.getInstance()
@@ -177,14 +159,13 @@ export function initCodeReview(
177159

178160
visibleProvider.log(`[CodeReview] Found ${changedFiles.length} changed files`)
179161

180-
// 将变更文件作为 targets 传入,使用相对路径
181-
const targets: ReviewTarget[] = changedFiles.map((file_path) => ({
182-
type: ReviewTargetType.FILE,
183-
file_path,
184-
}))
185-
186162
// 使用 @git-changes 来审查当前的 git 变更
187-
reviewInstance.createReviewTask("@git-changes", targets)
163+
reviewInstance.createReviewTask("@git-changes", {
164+
type: ReviewTargetType.FILE,
165+
data: changedFiles.map((file_path) => ({
166+
file_path,
167+
})),
168+
})
188169
},
189170
...(!isJetbrains
190171
? {}
@@ -219,13 +200,15 @@ export function initCodeReview(
219200
selectedText: selectedText,
220201
}
221202
const prompt = supportPrompt.create("ADD_TO_CONTEXT", params)
222-
reviewInstance.createReviewTask(prompt, [
223-
{
224-
type: ReviewTargetType.CODE,
225-
file_path: toRelativePath(filePath.toPosix(), cwd),
226-
line_range: [startLine, endLine],
227-
},
228-
])
203+
reviewInstance.createReviewTask(prompt, {
204+
type: ReviewTargetType.CODE,
205+
data: [
206+
{
207+
file_path: toRelativePath(filePath.toPosix(), cwd),
208+
line_range: [startLine, endLine],
209+
},
210+
],
211+
})
229212
},
230213
reviewFilesAndFoldersJetbrains: async (args: any) => {
231214
const visibleProvider = await ClineProvider.getInstance()
@@ -244,15 +227,12 @@ export function initCodeReview(
244227
}
245228
const cwd = visibleProvider.cwd.toPosix()
246229
const { filePaths } = data
247-
const targets: ReviewTarget[] = await Promise.all(
248-
filePaths.map(async (filePath: string) => {
249-
return {
250-
type: ReviewTargetType.FILE,
251-
file_path: toRelativePath(filePath.toPosix(), cwd),
252-
}
253-
}),
254-
)
255-
reviewInstance.startReview(targets)
230+
reviewInstance.startReview({
231+
type: ReviewTargetType.FILE,
232+
data: filePaths.map((filePath: string) => ({
233+
file_path: toRelativePath(filePath.toPosix(), cwd),
234+
})),
235+
})
256236
},
257237
acceptIssueJetbrains: async (args: any) => {
258238
const visibleProvider = await ClineProvider.getInstance()

src/core/costrict/code-review/types.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ export interface ReviewTask {
9292
isCompleted: boolean
9393
/** Current progress */
9494
progress: number
95-
review_progress: string
9695
/** Total items to process */
9796
total: number
9897
/** Timeout ID for cleanup */
@@ -111,7 +110,7 @@ export interface ReportIssueReuqest {
111110
review_report: string
112111
client_id: string
113112
workspace: string
114-
review_code: ReviewTarget[]
113+
review_target: ReviewTarget
115114
}
116115

117116
export interface ReportIssueResponse {

src/core/webview/ClineProvider.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -769,13 +769,15 @@ export class ClineProvider
769769
endLine: Number(params.endLine) + 1 + "",
770770
selectedText: params.selectedText,
771771
})
772-
reviewInstance.createReviewTask(chatMessage, [
773-
{
774-
type: ReviewTargetType.CODE,
775-
file_path: toRelativePath(params.filePath as string, visibleProvider.cwd),
776-
line_range: [Number(params.startLine), Number(params.endLine)],
777-
},
778-
])
772+
reviewInstance.createReviewTask(chatMessage, {
773+
type: ReviewTargetType.CODE,
774+
data: [
775+
{
776+
file_path: toRelativePath(params.filePath as string, visibleProvider.cwd),
777+
line_range: [Number(params.startLine), Number(params.endLine)],
778+
},
779+
],
780+
})
779781
return
780782
}
781783

src/package.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,6 @@
186186
"command": "zgsm.reviewFilesAndFolders",
187187
"title": "%command.codeReview.title%"
188188
},
189-
{
190-
"command": "zgsm.reviewRepo",
191-
"title": "%command.reviewRepo.title%"
192-
},
193189
{
194190
"command": "zgsm.reviewCommit",
195191
"title": "%command.reviewCommit.title%",

src/package.nls.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
"command.acceptInput.title": "Accept Input/Suggestion",
2828
"command.shortKeyCut.title": "CoStrict Code Completion Shortcut",
2929
"command.codeReview.title": "Code Review",
30-
"command.reviewRepo.title": "Review Repo",
3130
"command.reviewCommit.title": "Review Changes",
3231
"command.addComment.title": "Add Comments",
3332
"command.addTests.title": "Generate Unit Tests",

src/package.nls.zh-CN.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/package.nls.zh-TW.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/shared/ExtensionMessage.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ export interface ExtensionMessage {
145145
| "issueStatusUpdated"
146146
| "commands"
147147
| "insertTextIntoTextarea"
148-
| "reviewPagePayload"
149148
| "dismissedUpsells"
150149
| "organizationSwitchResult"
151150
| "interactionRequired"

0 commit comments

Comments
 (0)