Skip to content

Commit c8ca4ae

Browse files
committed
POC: Finding Suppression but still to impl the logic
1 parent 1dd9064 commit c8ca4ae

File tree

6 files changed

+42
-0
lines changed

6 files changed

+42
-0
lines changed

packages/core/src/codewhisperer/activation.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import {
4141
signoutCodeWhisperer,
4242
toggleCodeScans,
4343
registerToolkitApiCallback,
44+
suppressIssue,
4445
} from './commands/basicCommands'
4546
import { sleep } from '../shared/utilities/timeoutUtils'
4647
import { ReferenceLogViewProvider } from './service/referenceLogViewProvider'
@@ -222,6 +223,8 @@ export async function activate(context: ExtContext): Promise<void> {
222223
showSecurityScan.register(context, securityPanelViewProvider, client),
223224
// show security issue webview panel
224225
openSecurityIssuePanel.register(context),
226+
//Suppress Issue
227+
suppressIssue.register(context),
225228
// sign in with sso or AWS ID
226229
showSsoSignIn.register(),
227230
// show reconnect prompt

packages/core/src/codewhisperer/commands/basicCommands.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,14 @@ export const openSecurityIssuePanel = Commands.declare(
285285
}
286286
)
287287

288+
export const suppressIssue = Commands.declare(
289+
'aws.amazonq.suppressIssue',
290+
(context: ExtContext) => async (issue: CodeScanIssue, filePath: string) => {
291+
// let issueData=issue
292+
void vscode.window.setStatusBarMessage(`Issue ${issue.findingId} is Suppressed`)
293+
}
294+
)
295+
288296
export const notifyNewCustomizationsCmd = Commands.declare(
289297
{ id: 'aws.amazonq.notifyNewCustomizations', logging: false },
290298
() => () => {

packages/core/src/codewhisperer/service/securityIssueCodeActionProvider.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,18 @@ export class SecurityIssueCodeActionProvider extends SecurityIssueProvider imple
6868
arguments: explainWithQArgs,
6969
}
7070
codeActions.push(explainWithQ)
71+
72+
const suppressIssueWithQ = new vscode.CodeAction(
73+
`Amazon Q: Suppress Issue "${issue.title}"`,
74+
vscode.CodeActionKind.QuickFix
75+
)
76+
const suppressIssueWithQArgs = [issue]
77+
suppressIssueWithQ.command = {
78+
title: 'Suppress Issue with Amazon Q',
79+
command: 'aws.amazonq.suppressIssue',
80+
arguments: suppressIssueWithQArgs,
81+
}
82+
codeActions.push(suppressIssueWithQ)
7183
}
7284
}
7385
}

packages/core/src/codewhisperer/service/securityIssueHoverProvider.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ export class SecurityIssueHoverProvider extends SecurityIssueProvider implements
8888
'Explain with Amazon Q'
8989
)
9090
markdownString.appendMarkdown(' | ' + explainWithQCommand)
91+
//TODO
92+
const suppressIssueCommand = this._getCommandMarkdown(
93+
'aws.amazonq.suppressIssue',
94+
[issue],
95+
'comment',
96+
'Suppress Issue',
97+
'Suppress Issue with Amazon Q'
98+
)
99+
markdownString.appendMarkdown(' | ' + suppressIssueCommand)
91100

92101
if (suggestedFix) {
93102
const applyFixCommand = this._getCommandMarkdown(

packages/core/src/codewhisperer/views/securityIssue/securityIssueWebview.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@ export class SecurityIssueWebview extends VueWebview {
4242
void vscode.commands.executeCommand('aws.amazonq.explainIssue', ...args)
4343
})
4444
}
45+
public suppressIssueWithQ() {
46+
const args = [this.issue]
47+
void this.navigateToFile()?.then(() => {
48+
void vscode.commands.executeCommand('aws.amazonq.suppressIssue', ...args)
49+
})
50+
}
4551

4652
public getRelativePath() {
4753
if (this.filePath) {

packages/core/src/codewhisperer/views/securityIssue/vue/root.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
<div class="container button-container" style="justify-content: space-between">
66
<h1>{{ title }} <img class="severity" :src="severityImage" :alt="severity" /></h1>
77
<input v-if="isFixAvailable" class="mt-4 ml-16" type="submit" @click="applyFix" value="Fix" />
8+
<input class="mt-4 ml-16" type="submit" @click="suppressIssue" value="Suppress Issue" />
89
</div>
910

1011
<div class="mt-16">
@@ -172,6 +173,9 @@ export default defineComponent({
172173
navigateToFile() {
173174
client.navigateToFile()
174175
},
176+
suppressIssue() {
177+
client.suppressIssueWithQ()
178+
},
175179
},
176180
computed: {
177181
severityImage() {

0 commit comments

Comments
 (0)