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,51 @@ 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
3634 */
3735 @ Test
38- public void testListSecretScanningAlerts () {
36+ public void testListSecretScanningAlerts () throws Exception {
3937 // Arrange
4038
4139 // Act
4240 List <GHSecretScanningAlert > alerts = repo .listSecretScanningAlerts ()._iterator (2 ).nextPage ();
4341
4442 // 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
43+ assertThat (alerts .size (), equalTo (2 ));
4744
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- }
45+ GHSecretScanningAlert alert1 = alerts .get (0 );
46+ assertThat (alert1 .getNumber (), equalTo (2L ));
47+ assertThat (alert1 .getState (), equalTo (GHSecretScanningAlertState .OPEN ));
48+ assertThat (alert1 .getSecretType (), equalTo ("npm_access_token" ));
49+ assertThat (alert1 .getSecret (), equalTo ("secret1" ));
50+ assertThat (alert1 .isPushProtectionBypassed (), equalTo (false ));
51+ assertThat (alert1 .getResolvedBy (), nullValue ());
52+ assertThat (alert1 .getResolvedAt (), nullValue ());
7553
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 ();
54+ List <GHSecretScanningAlertLocation > locations = alert1 .getLocations ();
55+ assertThat (locations .size (), equalTo (1 ));
56+ assertThat (locations .get (0 ).getType (), equalTo ("commit" ));
57+ assertThat (locations .get (0 ).getDetails ().getPath (), equalTo ("secrets/secrets1.env" ));
9158
92- // Act
93- GHCodeScanningAlert result = repo .getCodeScanningAlert (idOfDismissed );
59+ GHSecretScanningAlert alert2 = alerts .get (1 );
60+ assertThat (alert2 .getNumber (), equalTo (1L ));
61+ assertThat (alert2 .getState (), equalTo (GHSecretScanningAlertState .OPEN ));
62+ assertThat (alert2 .getSecretType (), equalTo ("stripe_test_secret_key" ));
63+ assertThat (alert2 .getSecret (), equalTo ("secret2" ));
64+ assertThat (alert2 .isPushProtectionBypassed (), equalTo (true ));
65+ assertThat (alert2 .getPushProtectionBypassedBy ().getLogin (), equalTo ("lukbla" ));
66+ assertThat (alert2 .getPushProtectionBypassedAt (), equalTo (GitHubClient .parseDate ("2025-05-05T15:32:05Z" )));
67+ assertThat (alert2 .getResolvedBy (), nullValue ());
68+ assertThat (alert2 .getResolvedAt (), nullValue ());
9469
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 ));
70+ List <GHSecretScanningAlertLocation > locations2 = alert2 .getLocations ();
71+ assertThat (locations2 .size (), equalTo (1 ));
72+ assertThat (locations2 .get (0 ).getType (), equalTo ("commit" ));
73+ assertThat (locations2 .get (0 ).getDetails ().getPath (), equalTo ("secrets.env" ));
10174 }
10275
10376}
0 commit comments