11package org .kohsuke .github ;
22
3- import org .junit .Assume ;
43import org .junit .Before ;
54import org .junit .Test ;
65
7- import java .io .IOException ;
86import java .util .List ;
97
108import static org .hamcrest .Matchers .*;
@@ -28,76 +26,54 @@ public class GHSecretScanningAlertTest extends AbstractGitHubWireMockTest {
2826 */
2927 @ Before
3028 public void setUp () throws Exception {
31- repo = gitHub .getRepository ("cortextests" + "/" + "test-code -scanning" );
29+ repo = gitHub .getRepository ("cortextests" + "/" + "secret -scanning" );
3230 }
3331
3432 /**
35- * Test list code scanning alert payload
33+ * Test list secret scanning alert payload
34+ *
35+ * @throws Exception
36+ * the exception
3637 */
3738 @ Test
38- public void testListSecretScanningAlerts () {
39+ public void testListSecretScanningAlerts () throws Exception {
3940 // Arrange
4041
4142 // Act
4243 List <GHSecretScanningAlert > alerts = repo .listSecretScanningAlerts ()._iterator (2 ).nextPage ();
4344
4445 // Assert
45- assertThat (alerts .size (), equalTo (2 )); // This assertion is based on manual setup done on repo to
46- // guarantee there are atleast 2 issues
46+ assertThat (alerts .size (), equalTo (2 ));
4747
48- // GHCodeScanningAlert alert = codeQlAlerts.get(0);
49- //
50- // // Verify the code scanning tool details
51- // assertThat(alert.getTool(), not((Object) null));
52- // GHCodeScanningAlert.Tool tool = alert.getTool();
53- // assertThat(tool.getName(), is("CodeQL"));
54- // assertThat(tool.getVersion(), not((Object) null));
55- //
56- // // Verify that fields of the code scanning rule are non-null
57- // assertThat(alert.getRule(), not((Object) null));
58- // GHCodeScanningAlert.Rule rule = alert.getRule();
59- // assertThat(rule.getId(), not((Object) null));
60- // assertThat(rule.getName(), not((Object) null));
61- // assertThat(rule.getSeverity(), not((Object) null));
62- // assertThat(rule.getSecuritySeverityLevel(), not((Object) null));
63- //
64- // // Act - Search by filtering on alert status
65- // List<GHCodeScanningAlert> openAlerts = repo.listCodeScanningAlerts(GHCodeScanningAlertState.OPEN)
66- // ._iterator(2)
67- // .nextPage(); // This assertion is based on manual setup done on repo to
68- // // guarantee there are atleast 2 issues
69- //
70- // // Assert
71- // assertThat(openAlerts.size(), equalTo(2));
72- // GHCodeScanningAlert openAlert = openAlerts.get(0);
73- // assertThat(openAlert.getState(), is(GHCodeScanningAlertState.OPEN));
74- }
48+ GHSecretScanningAlert alert1 = alerts .get (0 );
49+ assertThat (alert1 .getNumber (), equalTo (2L ));
50+ assertThat (alert1 .getState (), equalTo (GHSecretScanningAlertState .OPEN ));
51+ assertThat (alert1 .getSecretType (), equalTo ("npm_access_token" ));
52+ assertThat (alert1 .getSecret (), equalTo ("secret1" ));
53+ assertThat (alert1 .isPushProtectionBypassed (), equalTo (false ));
54+ assertThat (alert1 .getResolvedBy (), nullValue ());
55+ assertThat (alert1 .getResolvedAt (), nullValue ());
7556
76- /**
77- * Test get code scanning alert payload
78- *
79- * @throws IOException
80- * Signals that an I/O exception has occurred.
81- */
82- @ Test
83- public void testGetCodeScanningAlert () throws IOException {
84- // Arrange
85- List <GHCodeScanningAlert > dismissedAlerts = repo .listCodeScanningAlerts (GHCodeScanningAlertState .DISMISSED )
86- ._iterator (1 )
87- .nextPage ();
88- Assume .assumeThat (dismissedAlerts .size (), greaterThanOrEqualTo (1 ));
89- GHCodeScanningAlert dismissedAlert = dismissedAlerts .get (0 );
90- long idOfDismissed = dismissedAlert .getId ();
57+ List <GHSecretScanningAlertLocation > locations = alert1 .getLocations ();
58+ assertThat (locations .size (), equalTo (1 ));
59+ assertThat (locations .get (0 ).getType (), equalTo ("commit" ));
60+ assertThat (locations .get (0 ).getDetails ().getPath (), equalTo ("secrets/secrets1.env" ));
9161
92- // Act
93- GHCodeScanningAlert result = repo .getCodeScanningAlert (idOfDismissed );
62+ GHSecretScanningAlert alert2 = alerts .get (1 );
63+ assertThat (alert2 .getNumber (), equalTo (1L ));
64+ assertThat (alert2 .getState (), equalTo (GHSecretScanningAlertState .OPEN ));
65+ assertThat (alert2 .getSecretType (), equalTo ("stripe_test_secret_key" ));
66+ assertThat (alert2 .getSecret (), equalTo ("secret2" ));
67+ assertThat (alert2 .isPushProtectionBypassed (), equalTo (true ));
68+ assertThat (alert2 .getPushProtectionBypassedBy ().getLogin (), equalTo ("lukbla" ));
69+ assertThat (alert2 .getPushProtectionBypassedAt (), equalTo (GitHubClient .parseDate ("2025-05-05T15:32:05Z" )));
70+ assertThat (alert2 .getResolvedBy (), nullValue ());
71+ assertThat (alert2 .getResolvedAt (), nullValue ());
9472
95- // Assert
96- assertThat (result , not ((Object ) null ));
97- assertThat (result .getId (), equalTo (idOfDismissed ));
98- assertThat (result .getDismissedReason (), equalTo (dismissedAlert .getDismissedReason ()));
99- assertThat (result .getDismissedAt (), equalTo (dismissedAlert .getDismissedAt ()));
100- assertThat (result .getDismissedBy ().login , equalTo (dismissedAlert .getDismissedBy ().login ));
73+ List <GHSecretScanningAlertLocation > locations2 = alert2 .getLocations ();
74+ assertThat (locations2 .size (), equalTo (1 ));
75+ assertThat (locations2 .get (0 ).getType (), equalTo ("commit" ));
76+ assertThat (locations2 .get (0 ).getDetails ().getPath (), equalTo ("secrets.env" ));
10177 }
10278
10379}
0 commit comments