Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
730c7e5
docs AST-146800: Add Cloud.md standardization file
cx-aniket-shinde Apr 15, 2026
6310f05
AST-101305: Disable Branch and Scan dropdown when no project is selected
cx-aniket-shinde Apr 17, 2026
644dae9
Fix: Route authentication logs to Eclipse Error Log (AST-136023) (#244)
cx-aniket-shinde Apr 20, 2026
0260961
Fix: Clear detail panels on severity filter change (AST-136035) (#245)
cx-aniket-shinde Apr 20, 2026
72be7a1
Fix: Truncate long custom state names in filter menu (AST-137779) (#246)
cx-aniket-shinde Apr 20, 2026
d30b7f0
Toolyip custom state
cx-aniket-shinde May 14, 2026
b023509
Parity and project combobox
cx-aniket-shinde May 14, 2026
636b0e1
Merge branch 'bug/AST-136045' into integration/eclipse-bug-fixes
cx-aniket-shinde May 15, 2026
4a33466
Merge branch 'bug/AST-101305' into integration/eclipse-bug-fixes
cx-aniket-shinde May 15, 2026
992bf41
CISO-920: remove broken Teams notify job (secret CXONE_SCAN_WEBHOOK_U…
cx-noam-brendel Apr 27, 2026
885d96a
[StepSecurity] Apply security best practices (#251)
stepsecurity-app[bot] May 22, 2026
2f1d998
[StepSecurity] Apply security best practices (#252)
stepsecurity-app[bot] May 30, 2026
33b6352
remove dependabot (#254)
cx-alon-rosenhek Jun 16, 2026
2f50808
Merge branch 'main' of https://github.com/Checkmarx/ast-eclipse-plugi…
cx-aniket-shinde Jun 19, 2026
b341d9a
Merge branch 'main' of https://github.com/Checkmarx/ast-eclipse-plugi…
cx-aniket-shinde Jun 19, 2026
074dda9
Merge branch 'integration/eclipse-bug-fixes' into release/integration
cx-aniket-shinde Jun 23, 2026
b1fe437
rerun
cx-nisan-benabu Jun 24, 2026
f0fe389
Bumped java wrapper version
cx-atish-jadhav Jun 25, 2026
6581d2f
bump java wrapper version to 2.4.24
cx-atish-jadhav Jun 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.18.jar filter=lfs diff
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.20.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.21.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.23.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.24.jar filter=lfs diff=lfs merge=lfs -text
346 changes: 346 additions & 0 deletions Cloud.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion ast-cli-java-wrapper.version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.4.23
2.4.24
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

public abstract class BaseUITest {

private static final String INFO_SUCCESSFUL_CONNECTION = "Successfully authenticated to Checkmarx One server!";
private static final String INFO_SUCCESSFUL_CONNECTION = "You are connected to Checkmarx One";

protected static final String ASSERT_FILTER_ACTIONS_IN_TOOLBAR = "All filter actions must be in the tool bar";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@

import org.junit.jupiter.api.Test;
import org.mockito.MockedConstruction;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.slf4j.Logger;

import com.checkmarx.ast.wrapper.CxException;
import com.checkmarx.ast.wrapper.CxWrapper;
import com.checkmarx.eclipse.runner.Authenticator;
import com.checkmarx.eclipse.utils.CxLogger;
import com.checkmarx.eclipse.utils.PluginConstants;

class AuthenticatorTest {
Expand All @@ -24,14 +26,15 @@ void testDoAuthenticationSuccess() throws Exception {

try (MockedConstruction<CxWrapper> mocked =
Mockito.mockConstruction(CxWrapper.class,
(mock, context) -> when(mock.authValidate()).thenReturn("SUCCESS"))) {
(mock, context) -> when(mock.authValidate()).thenReturn("SUCCESS"));
MockedStatic<CxLogger> mockedCxLogger = Mockito.mockStatic(CxLogger.class)) {

Authenticator authenticator = new Authenticator(mockLogger);

String result = authenticator.doAuthentication("dummyKey", "--param");

assertEquals("SUCCESS", result);
verify(mockLogger).info("Authentication Status: SUCCESS");
mockedCxLogger.verify(() -> CxLogger.info(String.format(PluginConstants.INFO_AUTHENTICATION_STATUS, "SUCCESS")));
}
}

Expand All @@ -43,17 +46,18 @@ void testDoAuthenticationIOException() throws Exception {
try (MockedConstruction<CxWrapper> mocked =
Mockito.mockConstruction(CxWrapper.class,
(mock, context) -> when(mock.authValidate())
.thenThrow(new IOException("IO error")))) {
.thenThrow(new IOException("IO error")));
MockedStatic<CxLogger> mockedCxLogger = Mockito.mockStatic(CxLogger.class)) {

Authenticator authenticator = new Authenticator(mockLogger);

String result = authenticator.doAuthentication("dummyKey", "--param");

assertEquals("IO error", result);
verify(mockLogger).error(
eq(String.format(PluginConstants.ERROR_AUTHENTICATING_AST, "IO error")),
any(IOException.class)
);
mockedCxLogger.verify(() -> CxLogger.error(
eq(String.format(PluginConstants.ERROR_AUTHENTICATING_AST, "IO error")),
any(IOException.class)
));
}
}

Expand All @@ -65,17 +69,18 @@ void testDoAuthenticationInterruptedException() throws Exception {
try (MockedConstruction<CxWrapper> mocked =
Mockito.mockConstruction(CxWrapper.class,
(mock, context) -> when(mock.authValidate())
.thenThrow(new InterruptedException("Interrupted")))) {
.thenThrow(new InterruptedException("Interrupted")));
MockedStatic<CxLogger> mockedCxLogger = Mockito.mockStatic(CxLogger.class)) {

Authenticator authenticator = new Authenticator(mockLogger);

String result = authenticator.doAuthentication("dummyKey", "--param");

assertEquals("Interrupted", result);
verify(mockLogger).error(
eq(String.format(PluginConstants.ERROR_AUTHENTICATING_AST, "Interrupted")),
any(InterruptedException.class)
);
mockedCxLogger.verify(() -> CxLogger.error(
eq(String.format(PluginConstants.ERROR_AUTHENTICATING_AST, "Interrupted")),
any(InterruptedException.class)
));
}
}

Expand All @@ -87,17 +92,18 @@ void testDoAuthenticationCxException() throws Exception {
try (MockedConstruction<CxWrapper> mocked =
Mockito.mockConstruction(CxWrapper.class,
(mock, context) -> when(mock.authValidate())
.thenThrow(new CxException(1, "Cx error")))) {
.thenThrow(new CxException(1, "Cx error")));
MockedStatic<CxLogger> mockedCxLogger = Mockito.mockStatic(CxLogger.class)) {

Authenticator authenticator = new Authenticator(mockLogger);

String result = authenticator.doAuthentication("dummyKey", "--param");

assertEquals("Cx error", result);
verify(mockLogger).error(
eq(String.format(PluginConstants.ERROR_AUTHENTICATING_AST, "Cx error")),
any(CxException.class)
);
mockedCxLogger.verify(() -> CxLogger.error(
eq(String.format(PluginConstants.ERROR_AUTHENTICATING_AST, "Cx error")),
any(CxException.class)
));
}
}

Expand Down
2 changes: 1 addition & 1 deletion checkmarx-ast-eclipse-plugin/.classpath
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<classpathentry exported="true" kind="lib" path="lib/jackson-annotations-2.21.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jackson-core-2.21.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/commons-lang3-3.18.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/ast-cli-java-wrapper-2.4.23.jar"/>
<classpathentry exported="true" kind="lib" path="lib/ast-cli-java-wrapper-2.4.24.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jackson-databind-2.21.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org.eclipse.mylyn.commons.ui_4.9.0.v20251121-0615.jar"/>
<classpathentry exported="true" kind="lib" path="lib/org-eclipse-mylyn-commons-core.jar"/>
Expand Down
2 changes: 1 addition & 1 deletion checkmarx-ast-eclipse-plugin/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ Bundle-ClassPath: .,
lib/jackson-core-2.21.1.jar,
lib/jackson-databind-2.21.1.jar,
lib/commons-lang3-3.18.0.jar,
lib/ast-cli-java-wrapper-2.4.23.jar,
lib/ast-cli-java-wrapper-2.4.24.jar,
lib/org.eclipse.mylyn.commons.ui_4.9.0.v20251121-0615.jar,
lib/org-eclipse-mylyn-commons-core.jar
2 changes: 1 addition & 1 deletion checkmarx-ast-eclipse-plugin/build.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ bin.includes = plugin.xml,\
lib/jackson-annotations-2.21.jar,\
lib/jackson-core-2.21.1.jar,\
lib/commons-lang3-3.18.0.jar,\
lib/ast-cli-java-wrapper-2.4.23.jar,\
lib/ast-cli-java-wrapper-2.4.24.jar,\
lib/org.eclipse.mylyn.commons.ui_4.9.0.v20251121-0615.jar,\
lib/jackson-databind-2.21.1.jar,\
.,\
Expand Down
14 changes: 14 additions & 0 deletions checkmarx-ast-eclipse-plugin/lib/.gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.1.8.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.0.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.1.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.2.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.3.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.4.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.9.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.14-oss.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.15.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.16-dev.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.18.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.20.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.21.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.23.jar filter=lfs diff=lfs merge=lfs -text
checkmarx-ast-eclipse-plugin/lib/ast-cli-java-wrapper-2.4.24.jar filter=lfs diff=lfs merge=lfs -text

This file was deleted.

Git LFS file not shown
4 changes: 4 additions & 0 deletions checkmarx-ast-eclipse-plugin/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,8 @@
</perspectiveExtension>
</extension>

<extension point="org.eclipse.ui.startup">
<startup class="com.checkmarx.eclipse.startup.PluginStartup"/>
</extension>

</plugin>
Original file line number Diff line number Diff line change
Expand Up @@ -137,14 +137,23 @@ public void widgetSelected(SelectionEvent e) {
return t.getMessage();
}
}).thenAccept((result) -> Display.getDefault().syncExec(() -> {
connectionLabel.setText(result);
connectionLabel.setText(mapAuthResult(result));
getFieldEditorParent().layout();
connectionButton.setEnabled(true);
}));
}
});
}



private static String mapAuthResult(String result) {
if (result != null && result.contains(PluginConstants.AUTH_SUCCESS_PATTERN)) {
return PluginConstants.AUTH_SUCCESS_DISPLAY;
}
return result;
}

private FieldEditor space() {
return new LabelFieldEditor("", getFieldEditorParent());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ public String doAuthentication(String apiKey, String additionalParams) {
try {
CxWrapper wrapper = new CxWrapper(config, log);
String cxValidateOutput = wrapper.authValidate();
log.info(AUTH_STATUS + cxValidateOutput);
CxLogger.info(String.format(PluginConstants.INFO_AUTHENTICATION_STATUS, cxValidateOutput));
return cxValidateOutput;
} catch (IOException | InterruptedException | CxException e) {
log.error(String.format(PluginConstants.ERROR_AUTHENTICATING_AST, e.getMessage()), e);
CxLogger.error(String.format(PluginConstants.ERROR_AUTHENTICATING_AST, e.getMessage()), e);
return e.getMessage();
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.checkmarx.eclipse.startup;

import org.eclipse.ui.IStartup;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;

import com.checkmarx.eclipse.utils.CxLogger;

public class PluginStartup implements IStartup {

private static final String VIEW_ID = "com.checkmarx.eclipse.views.CheckmarxView";

@Override
public void earlyStartup() {
PlatformUI.getWorkbench().getDisplay().asyncExec(() -> {
try {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (window != null) {
IWorkbenchPage page = window.getActivePage();
if (page != null && page.findView(VIEW_ID) == null) {
page.showView(VIEW_ID);
}
}
} catch (PartInitException e) {
CxLogger.error("Failed to open Checkmarx One view on startup: " + e.getMessage(), e);
}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ public class PluginConstants {
public static final String INFO_CHANGE_SCAN_EVENT_NOT_TRIGGERED = "Change scan id event not triggered. Request already running: %s. Scan id results already retrieved: %s";
public static final String INFO_CHANGE_BRANCH_EVENT_NOT_TRIGGERED = "Change branch event not triggered. Branch already selected";
public static final String INFO_CHANGE_PROJECT_EVENT_NOT_TRIGGERED = "Change project event not triggered. Project already selected";
public static final String AUTH_SUCCESS_PATTERN = "Successfully authenticated";
public static final String AUTH_SUCCESS_DISPLAY = "You are connected to Checkmarx One";

/******************************** TREE MESSAGES ********************************/
public static final String TREE_INVALID_SCAN_ID_FORMAT = "Invalid scan id format.";
Expand Down
Loading
Loading