Skip to content

Commit ae36cb6

Browse files
authored
feat: add support for IAW command (#286)
1 parent b82ccbb commit ae36cb6

File tree

6 files changed

+43
-4
lines changed

6 files changed

+43
-4
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Snyk Security Changelog
22

3+
## [3.2.0]
4+
### Changes
5+
- Added support for submitting Ignore Requests.
6+
37
## [3.1.0]
48
### Changes
59
- add option for using a folder as reference instead of a branch in net-new scanning

plugin/src/main/java/io/snyk/eclipse/plugin/html/CodeHtmlProvider.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,31 @@ public String replaceCssVariables(String html) {
6767
super.getColorAsHex("DELETION_COLOR", "#ff0000"));
6868
htmlStyled = htmlStyled.replace("var(--example-line-added-color)",
6969
super.getColorAsHex("ADDITION_COLOR", "#00ff00"));
70-
htmlStyled = htmlStyled.replace("var(--generated-ai-fix-button-background-color)",
70+
htmlStyled = htmlStyled.replace("var(--button-background-color)",
7171
super.getColorAsHex("BUTTON_COLOR", "#375578"));
72+
htmlStyled = htmlStyled.replace("var(--button-text-color)",
73+
super.getColorAsHex("org.eclipse.ui.workbench.ACTIVE_TAB_SELECTED_TEXT_COLOR", "#F5F5F5"));
7274
htmlStyled = htmlStyled.replace("var(--disabled-background-color)",
7375
super.getColorAsHex("org.eclipse.ui.workbench.ACTIVE_TAB_OUTER_KEYLINE_COLOR", "#CCCCCC"));
7476
htmlStyled = htmlStyled.replace("var(--vscode-input-border)", super.getColorAsHex("BUTTON_COLOR", "#375578"));
7577
htmlStyled = htmlStyled.replace("var(--warning-text)", super.getColorAsHex("WARNING_TEXT_COLOR", "#000000"));
76-
htmlStyled = htmlStyled.replace("var(--warning-background)", super.getColorAsHex("WARNING_BACKGROUND_COLOR", "#c8a000"));
78+
htmlStyled = htmlStyled.replace("var(--warning-background)",
79+
super.getColorAsHex("WARNING_BACKGROUND_COLOR", "#c8a000"));
7780

7881
String htmlWithScripts = replaceAIFixScripts(htmlStyled);
82+
String htmlWithIgnoreRequest = replaceIgnoreRequestScript(htmlWithScripts);
7983

80-
return htmlWithScripts;
84+
return htmlWithIgnoreRequest;
85+
}
86+
87+
private String replaceIgnoreRequestScript(String htmlWithScripts) {
88+
String htmlWithIgnoreRequest = htmlWithScripts.replace("${ideSubmitIgnoreRequest}",
89+
ideSubmitIgnoreRequestScript());
90+
return htmlWithIgnoreRequest;
91+
}
92+
93+
private CharSequence ideSubmitIgnoreRequestScript() {
94+
return "window.ideSubmitIgnoreRequest(issueId + '@|@' + ignoreType + '@|@' + ignoreExpirationDate + '@|@' + ignoreReason);\n";
8195
}
8296

8397
private String replaceAIFixScripts(String html) {

plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/BrowserHandler.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,22 @@ public Object function(Object[] arguments) {
9898
}
9999
};
100100

101+
new BrowserFunction(browser, "ideSubmitIgnoreRequest") {
102+
@Override
103+
public Object function(Object[] arguments) {
104+
String params = (String) arguments[0];
105+
String[] parts = params.split("@\\|@", 4);
106+
String issueId = (String) parts[0];
107+
String ignoreType = (String) parts[1];
108+
String ignoreExpirationDate = (String) parts[2];
109+
String ignoreReason = (String) parts[3];
110+
111+
SnykExtendedLanguageClient.getInstance().submitIgnoreRequestCommands("create", issueId, ignoreType, ignoreReason, ignoreExpirationDate);
112+
113+
return Collections.emptyList();
114+
}
115+
};
116+
101117
new BrowserFunction(browser, "ideGenAIFix") {
102118
@Override
103119
public Object function(Object[] arguments) {

plugin/src/main/java/io/snyk/languageserver/LsConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ private LsConstants() {
2020
public static final String COMMAND_CODE_FIX_APPLY_AI_EDIT = "snyk.code.fixApplyEdit";
2121
public static final String COMMAND_CODE_SUBMIT_FIX_FEEDBACK = "snyk.code.submitFixFeedback";
2222
public static final String COMMAND_SNYK_CLI = "snyk.executeCLI";
23+
public static final String COMMAND_SUBMIT_IGNORE_REQUEST = "snyk.submitIgnoreRequest";
2324
public static final String SNYK_HAS_AUTHENTICATED = "$/snyk.hasAuthenticated";
2425
public static final String SNYK_IS_AVAILABLE_CLI = "$/snyk.isAvailableCli";
2526
public static final String SNYK_ADD_TRUSTED_FOLDERS = "$/snyk.addTrustedFolders";

plugin/src/main/java/io/snyk/languageserver/protocolextension/SnykExtendedLanguageClient.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,10 @@ public void sendCodeApplyAiFixEditCommand(String fixId) {
323323
executeCommand(LsConstants.COMMAND_CODE_FIX_APPLY_AI_EDIT, List.of(fixId));
324324
}
325325

326+
public void submitIgnoreRequestCommands(String workflow, String issueId, String ignoreType, String ignoreReason, String ignoreExpirationDate) {
327+
executeCommand(LsConstants.COMMAND_SUBMIT_IGNORE_REQUEST, List.of(workflow, issueId, ignoreType, ignoreReason, ignoreExpirationDate));
328+
}
329+
326330
@JsonNotification(value = LsConstants.SNYK_HAS_AUTHENTICATED)
327331
public void hasAuthenticated(HasAuthenticatedParam param) {
328332
var prefs = Preferences.getInstance();

tests/src/test/resources/code_issue_description.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@
446446
button.generate-ai-fix,
447447
button.sn-apply-fix {
448448
border-radius: 3px;
449-
background-color: var(--generated-ai-fix-button-background-color);
449+
background-color: var(--button-background-color);
450450
color: white;
451451
cursor: pointer;
452452
}

0 commit comments

Comments
 (0)