diff --git a/src/main/java/org/kohsuke/github/GHCodeScanningAlert.java b/src/main/java/org/kohsuke/github/GHCodeScanningAlert.java
new file mode 100644
index 0000000000..3918d49429
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/GHCodeScanningAlert.java
@@ -0,0 +1,252 @@
+package org.kohsuke.github;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Date;
+
+/**
+ * Code scanning alert for a repository
+ *
+ *
+ */
+@SuppressFBWarnings(value = { "UUF_UNUSED_FIELD" }, justification = "JSON API")
+public class GHCodeScanningAlert extends GHObject {
+ @JsonIgnore
+ private GHRepository owner;
+ private long number;
+ private String html_url;
+ private GHCodeScanningAlertState state;
+ private GHUser dismissed_by;
+ private String dismissed_at;
+ private String dismissed_reason;
+ private Tool tool;
+ private Rule rule;
+ private GHCodeScanningAlertInstance most_recent_instance;
+ private String instances_url;
+
+ GHCodeScanningAlert wrap(GHRepository owner) {
+ this.owner = owner;
+ return this;
+ }
+
+ /**
+ * Id/number of the alert.
+ *
+ * @return the id/number
+ * @see #getId()
+ */
+ public long getNumber() {
+ return number;
+ }
+
+ /**
+ * Id/number of the alert.
+ *
+ * @return the id/number
+ * @see #getNumber()
+ */
+ @Override
+ public long getId() {
+ return getNumber();
+ }
+
+ /**
+ * State of alert
+ *
+ * @return the state
+ */
+ public GHCodeScanningAlertState getState() {
+ return state;
+ }
+
+ /**
+ * User that has dismissed the alert. Non-null when {@link #getState()} is Dismissed
+ *
+ *
+ * Note: User object returned by code scanning GitHub API does not contain all fields. Use with caution
+ *
+ *
+ * @return the user
+ */
+ @SuppressFBWarnings(value = { "EI_EXPOSE_REP" }, justification = "Expected behavior")
+ public GHUser getDismissedBy() {
+ return dismissed_by;
+ }
+
+ /**
+ * Time when alert was dismissed. Non-null when {@link #getState()} is Dismissed
+ *
+ * @return the time
+ */
+ public Date getDismissedAt() {
+ return GitHubClient.parseDate(dismissed_at);
+ }
+
+ /**
+ * Reason provided for dismissing the alert.
+ *
+ * @return the reason
+ */
+ public String getDismissedReason() {
+ return dismissed_reason;
+ }
+
+ /**
+ * Code scanning tool that created this alert
+ *
+ * @return the tool
+ */
+ public Tool getTool() {
+ return tool;
+ }
+
+ /**
+ * Code scanning rule that was violated, causing the alert
+ *
+ * @return the rule
+ */
+ public Rule getRule() {
+ return rule;
+ }
+
+ /**
+ * Most recent instance of the alert
+ *
+ * @return most recent instance
+ */
+ public GHCodeScanningAlertInstance getMostRecentInstance() {
+ return most_recent_instance;
+ }
+
+ /**
+ * List all instances of the alert
+ *
+ * @return the paged iterable
+ */
+ public PagedIterable listAlertInstances() {
+ return new GHCodeScanningAlertInstancesIterable(this,
+ root().createRequest().withUrlPath(instances_url).build());
+ }
+
+ @Override
+ public URL getHtmlUrl() throws IOException {
+ return GitHubClient.parseURL(html_url);
+ }
+
+ /**
+ * Code scanning rule
+ */
+ @SuppressFBWarnings(value = { "UWF_UNWRITTEN_FIELD" }, justification = "JSON API")
+ static class Rule {
+ private String id;
+ private String severity;
+ private String description;
+ private String name;
+ private String full_description;
+ private String[] tags;
+ private String help;
+
+ /**
+ * Id of rule
+ *
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Severity of rule
+ *
+ * @return the severity
+ */
+ public String getSeverity() {
+ return severity;
+ }
+
+ /**
+ * Description of rule
+ *
+ * @return the description
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Name of rule
+ *
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Full description of rule
+ *
+ * @return the full description
+ */
+ public String getFullDescription() {
+ return full_description;
+ }
+
+ /**
+ * Tags associated with the rule
+ *
+ * @return the tags
+ */
+ public String[] getTags() {
+ return tags;
+ }
+
+ /**
+ * Help text for the rule
+ *
+ * @return the help text
+ */
+ public String getHelp() {
+ return help;
+ }
+ }
+
+ /**
+ * Code scanning tool
+ */
+ @SuppressFBWarnings(value = { "UWF_UNWRITTEN_FIELD" }, justification = "JSON API")
+ static class Tool {
+ private String name;
+ private String guid;
+ private String version;
+
+ /**
+ * Name of code scanning tool
+ *
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * GUID of code scanning tool
+ *
+ * @return the GUID
+ */
+ public String getGuid() {
+ return guid;
+ }
+
+ /**
+ * Version of code scanning tool
+ *
+ * @return the version
+ */
+ public String getVersion() {
+ return version;
+ }
+ }
+}
diff --git a/src/main/java/org/kohsuke/github/GHCodeScanningAlertInstance.java b/src/main/java/org/kohsuke/github/GHCodeScanningAlertInstance.java
new file mode 100644
index 0000000000..fa0c8aeb81
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/GHCodeScanningAlertInstance.java
@@ -0,0 +1,133 @@
+package org.kohsuke.github;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Code scanning alert instance for a repository
+ *
+ *
+ */
+public class GHCodeScanningAlertInstance {
+ private String ref;
+ private String analysis_key;
+ private String environment;
+ private GHCodeScanningAlertState state;
+ private String commit_sha;
+ private String[] classifications;
+ private Message message;
+ private Location location;
+
+ /**
+ * Ref that the alert instance was triggered on
+ *
+ * @return ref of the alert instance
+ */
+ public String getRef() {
+ return ref;
+ }
+
+ /**
+ * Analysis key of the alert instance
+ *
+ * @return the analysis key
+ */
+ public String getAnalysisKey() {
+ return analysis_key;
+ }
+
+ /**
+ * Environment the alert instance was triggered in
+ *
+ * @return the environment
+ */
+ public String getEnvironment() {
+ return environment;
+ }
+
+ /**
+ * State of alert instance
+ *
+ * @return the state
+ */
+ public GHCodeScanningAlertState getState() {
+ return state;
+ }
+
+ /**
+ * Commit Sha that triggered the alert instance
+ *
+ * @return the commit sha
+ */
+ public String getCommitSha() {
+ return commit_sha;
+ }
+
+ /**
+ * Classifications of the alert instance
+ *
+ * @return the list of classifications
+ */
+ public List getClassifications() {
+ return Collections.unmodifiableList(Arrays.asList(classifications));
+ }
+
+ /**
+ * Message object associated with the alert instance
+ *
+ * @return the message object
+ */
+ public Message getMessage() {
+ return message;
+ }
+
+ /**
+ * Location of the alert instance (contains path, start_line, end_line, start_column, and end_column attributes)
+ *
+ * @return the location
+ */
+ public Location getLocation() {
+ return location;
+ }
+
+ @SuppressFBWarnings(value = { "UWF_UNWRITTEN_FIELD" }, justification = "JSON API")
+ static class Message {
+ private String text;
+
+ public String getText() {
+ return text;
+ }
+ }
+
+ @SuppressFBWarnings(value = { "UWF_UNWRITTEN_FIELD" }, justification = "JSON API")
+ static class Location {
+ private String path;
+ private long start_line;
+ private long end_line;
+ private long start_column;
+ private long end_column;
+
+ public String getPath() {
+ return path;
+ }
+
+ public long getStartLine() {
+ return start_line;
+ }
+
+ public long getEndLine() {
+ return end_line;
+ }
+
+ public long getStartColumn() {
+ return start_column;
+ }
+
+ public long getEndColumn() {
+ return end_column;
+ }
+ }
+}
diff --git a/src/main/java/org/kohsuke/github/GHCodeScanningAlertInstancesIterable.java b/src/main/java/org/kohsuke/github/GHCodeScanningAlertInstancesIterable.java
new file mode 100644
index 0000000000..ded88d4f9b
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/GHCodeScanningAlertInstancesIterable.java
@@ -0,0 +1,51 @@
+package org.kohsuke.github;
+
+import java.util.Iterator;
+
+import javax.annotation.Nonnull;
+
+/**
+ * Iterable for github code scanning instances.
+ */
+public class GHCodeScanningAlertInstancesIterable extends PagedIterable {
+ private final GHCodeScanningAlert owner;
+ private final GitHubRequest request;
+ private GHCodeScanningAlertInstance[] result;
+
+ GHCodeScanningAlertInstancesIterable(GHCodeScanningAlert owner, GitHubRequest request) {
+ this.owner = owner;
+ this.request = request;
+ }
+
+ @Nonnull
+ @Override
+ public PagedIterator _iterator(int pageSize) {
+ return new PagedIterator<>(
+ adapt(GitHubPageIterator
+ .create(owner.root().getClient(), GHCodeScanningAlertInstance[].class, request, pageSize)),
+ null);
+ }
+
+ /**
+ * Adapts {@link Iterator}.
+ *
+ * @param base
+ * the base
+ * @return the iterator
+ */
+ protected Iterator adapt(final Iterator base) {
+ return new Iterator() {
+ public boolean hasNext() {
+ return base.hasNext();
+ }
+
+ public GHCodeScanningAlertInstance[] next() {
+ GHCodeScanningAlertInstance[] v = base.next();
+ if (result == null) {
+ result = v;
+ }
+ return result;
+ }
+ };
+ }
+}
diff --git a/src/main/java/org/kohsuke/github/GHCodeScanningAlertState.java b/src/main/java/org/kohsuke/github/GHCodeScanningAlertState.java
new file mode 100644
index 0000000000..8c5ce4077f
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/GHCodeScanningAlertState.java
@@ -0,0 +1,19 @@
+package org.kohsuke.github;
+
+/**
+ * What is the current state of the Alert
+ */
+public enum GHCodeScanningAlertState {
+ /**
+ * Alert is open and still an active issue.
+ */
+ OPEN,
+ /**
+ * Issue that has caused the alert has been addressed.
+ */
+ FIXED,
+ /**
+ * Alert has been dismissed by a user without being fixed.
+ */
+ DISMISSED
+}
diff --git a/src/main/java/org/kohsuke/github/GHCodeScanningAlertsIterable.java b/src/main/java/org/kohsuke/github/GHCodeScanningAlertsIterable.java
new file mode 100644
index 0000000000..ae05818be5
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/GHCodeScanningAlertsIterable.java
@@ -0,0 +1,45 @@
+package org.kohsuke.github;
+
+import java.util.Iterator;
+
+import javax.annotation.Nonnull;
+
+class GHCodeScanningAlertsIterable extends PagedIterable {
+ private final GHRepository owner;
+ private final GitHubRequest request;
+ private GHCodeScanningAlert[] result;
+
+ GHCodeScanningAlertsIterable(GHRepository owner, GitHubRequest request) {
+ this.owner = owner;
+ this.request = request;
+ }
+
+ @Nonnull
+ @Override
+ public PagedIterator _iterator(int pageSize) {
+ return new PagedIterator<>(
+ adapt(GitHubPageIterator
+ .create(owner.root().getClient(), GHCodeScanningAlert[].class, request, pageSize)),
+ null);
+ }
+
+ protected Iterator adapt(final Iterator base) {
+ return new Iterator() {
+ public boolean hasNext() {
+ return base.hasNext();
+ }
+
+ public GHCodeScanningAlert[] next() {
+ GHCodeScanningAlert[] v = base.next();
+ if (result == null) {
+ result = v;
+ }
+
+ for (GHCodeScanningAlert alert : result) {
+ alert.wrap(owner);
+ }
+ return result;
+ }
+ };
+ }
+}
diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java
index b97143dfb2..392db08b65 100644
--- a/src/main/java/org/kohsuke/github/GHRepository.java
+++ b/src/main/java/org/kohsuke/github/GHRepository.java
@@ -3177,6 +3177,58 @@ public GHTagObject createTag(String tag, String message, String object, String t
.wrap(this);
}
+ /**
+ * Lists the code scanning alerts of this repository.
+ *
+ * @return the paged iterable
+ */
+ public PagedIterable listCodeScanningAlerts() {
+ return listCodeScanningAlerts(Collections.emptyMap());
+ }
+
+ /**
+ * Lists the code scanning alerts of this repository filtered on the alert status
+ *
+ * @param state
+ * alert status to filter on
+ * @return the paged iterable
+ */
+ public PagedIterable listCodeScanningAlerts(GHCodeScanningAlertState state) {
+ return listCodeScanningAlerts(Collections.singletonMap("state", state.name().toLowerCase()));
+ }
+
+ /**
+ * Lists the code scanning alerts of this repository filtered on the code scanning tool name
+ *
+ * @param toolName
+ * name of code scanning tool that creates alerts
+ * @return the paged iterable
+ */
+ public PagedIterable listCodeScanningAlerts(String toolName) {
+ return listCodeScanningAlerts(Collections.singletonMap("tool_name", toolName));
+ }
+
+ private PagedIterable listCodeScanningAlerts(Map filters) {
+ return new GHCodeScanningAlertsIterable(this,
+ root().createRequest().withUrlPath(getApiTailUrl("code-scanning/alerts")).with(filters).build());
+ }
+
+ /**
+ * Get code scanning alert by id
+ *
+ * @param id
+ * id of the code scanning alert
+ * @return the code scanning alert
+ * @throws IOException
+ * the io exception
+ */
+ public GHCodeScanningAlert getCodeScanningAlert(long id) throws IOException {
+ return root().createRequest()
+ .withUrlPath(getApiTailUrl("code-scanning/alerts"), String.valueOf(id))
+ .fetch(GHCodeScanningAlert.class)
+ .wrap(this);
+ }
+
/**
* Streams a zip archive of the repository, optionally at a given ref
.
*
diff --git a/src/test/java/org/kohsuke/github/GHCodeScanningAlertInstanceTest.java b/src/test/java/org/kohsuke/github/GHCodeScanningAlertInstanceTest.java
new file mode 100644
index 0000000000..c80953eb01
--- /dev/null
+++ b/src/test/java/org/kohsuke/github/GHCodeScanningAlertInstanceTest.java
@@ -0,0 +1,65 @@
+package org.kohsuke.github;
+
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.List;
+
+import static org.hamcrest.Matchers.greaterThanOrEqualTo;
+import static org.hamcrest.Matchers.not;
+
+/**
+ *
+ * Note : As the code scanning alerts cannot be tailored as part of test setup, lot of the test cases are dependent on
+ * manual setup of the mock repo. Assertions and verifications will often simply check that the values are non-null
+ * rather than depending on hard-coded values, to prevent making the tests flimsy
+ *
+ */
+public class GHCodeScanningAlertInstanceTest extends AbstractGitHubWireMockTest {
+ private static final String REPO_NAME = "Pixi";
+ private GHCodeScanningAlert alert;
+
+ @Before
+ public void setUp() throws Exception {
+ GHRepository repo = gitHub.getRepository(GITHUB_API_TEST_ORG + "/" + REPO_NAME);
+ alert = getAlertFromRepo(repo);
+ }
+
+ private GHCodeScanningAlert getAlertFromRepo(GHRepository repo) {
+ List dismissedAlerts = repo.listCodeScanningAlerts(GHCodeScanningAlertState.DISMISSED)
+ ._iterator(1)
+ .nextPage();
+ Assume.assumeThat(dismissedAlerts.size(), greaterThanOrEqualTo(1));
+ return dismissedAlerts.get(0);
+ }
+
+ @Test
+ public void testListAlertInstances() throws IOException {
+ // Arrange
+
+ // Act
+ List results = alert.listAlertInstances().toList();
+
+ // Assert
+ assertThat(results.size(), greaterThanOrEqualTo(1));
+ GHCodeScanningAlertInstance instance = results.get(0);
+ // Can't assert on exact values with having to hardcode values from
+ // json file, hence making the assertions generics
+ assertThat(instance.getRef(), not((Object) null));
+ assertThat(instance.getCommitSha(), not((Object) null));
+ assertThat(instance.getState(), not((Object) null));
+ assertThat(instance.getMessage(), not((Object) null));
+ assertThat(instance.getLocation(), not((Object) null));
+
+ GHCodeScanningAlertInstance.Location location = instance.getLocation();
+ // Can't assert on exact values with having to hardcode values from
+ // json file, hence making the assertions generics
+ assertThat(location.getPath(), not((Object) null));
+ assertThat(location.getStartLine(), greaterThanOrEqualTo(0L));
+ assertThat(location.getEndLine(), greaterThanOrEqualTo(0L));
+ assertThat(location.getStartColumn(), greaterThanOrEqualTo(0L));
+ assertThat(location.getStartColumn(), greaterThanOrEqualTo(0L));
+ }
+}
diff --git a/src/test/java/org/kohsuke/github/GHCodeScanningAlertTest.java b/src/test/java/org/kohsuke/github/GHCodeScanningAlertTest.java
new file mode 100644
index 0000000000..709d546876
--- /dev/null
+++ b/src/test/java/org/kohsuke/github/GHCodeScanningAlertTest.java
@@ -0,0 +1,90 @@
+package org.kohsuke.github;
+
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.List;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.greaterThanOrEqualTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+
+/**
+ *
+ * Note : As the code scanning alerts cannot be tailored as part of test setup, lot of the test cases are dependent on
+ * manual setup of the mock repo. Assertions and verifications will often simply check that the values are non-null
+ * rather than depending on hard-coded values, to prevent making the tests flimsy
+ *
+ */
+public class GHCodeScanningAlertTest extends AbstractGitHubWireMockTest {
+ private static final String REPO_NAME = "Pixi";
+ private GHRepository repo;
+
+ @Before
+ public void setUp() throws Exception {
+ repo = gitHub.getRepository(GITHUB_API_TEST_ORG + "/" + REPO_NAME);
+ }
+
+ @Test
+ public void testListCodeScanningAlerts() {
+ // Arrange
+
+ // Act - Search by filtering on code scanning tool
+ List codeQlAlerts = repo.listCodeScanningAlerts("CodeQL")._iterator(2).nextPage();
+
+ // Assert
+ assertThat(codeQlAlerts.size(), equalTo(2)); // This assertion is based on manual setup done on repo to
+ // guarantee there are atleast 2 issues
+
+ GHCodeScanningAlert alert = codeQlAlerts.get(0);
+
+ // Verify the code scanning tool details
+ assertThat(alert.getTool(), not((Object) null));
+ GHCodeScanningAlert.Tool tool = alert.getTool();
+ assertThat(tool.getName(), is("CodeQL"));
+ assertThat(tool.getVersion(), not((Object) null));
+
+ // Verify that fields of the code scanning rule are non-null
+ assertThat(alert.getRule(), not((Object) null));
+ GHCodeScanningAlert.Rule rule = alert.getRule();
+ assertThat(rule.getId(), not((Object) null));
+ assertThat(rule.getName(), not((Object) null));
+ assertThat(rule.getSeverity(), not((Object) null));
+
+ // Act - Search by filtering on alert status
+ List openAlerts = repo.listCodeScanningAlerts(GHCodeScanningAlertState.OPEN)
+ ._iterator(2)
+ .nextPage(); // This assertion is based on manual setup done on repo to
+ // guarantee there are atleast 2 issues
+
+ // Assert
+ assertThat(openAlerts.size(), equalTo(2));
+ GHCodeScanningAlert openAlert = openAlerts.get(0);
+ assertThat(openAlert.getState(), is(GHCodeScanningAlertState.OPEN));
+ }
+
+ @Test
+ public void testGetCodeScanningAlert() throws IOException {
+ // Arrange
+ List dismissedAlerts = repo.listCodeScanningAlerts(GHCodeScanningAlertState.DISMISSED)
+ ._iterator(1)
+ .nextPage();
+ Assume.assumeThat(dismissedAlerts.size(), greaterThanOrEqualTo(1));
+ GHCodeScanningAlert dismissedAlert = dismissedAlerts.get(0);
+ long idOfDismissed = dismissedAlert.getId();
+
+ // Act
+ GHCodeScanningAlert result = repo.getCodeScanningAlert(idOfDismissed);
+
+ // Assert
+ assertThat(result, not((Object) null));
+ assertThat(result.getId(), equalTo(idOfDismissed));
+ assertThat(result.getDismissedReason(), equalTo(dismissedAlert.getDismissedReason()));
+ assertThat(result.getDismissedAt(), equalTo(dismissedAlert.getDismissedAt()));
+ assertThat(result.getDismissedBy().login, equalTo(dismissedAlert.getDismissedBy().login));
+ }
+
+}
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/repos_hub4j-test-org_pixi-2.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/repos_hub4j-test-org_pixi-2.json
new file mode 100644
index 0000000000..ca64db2873
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/repos_hub4j-test-org_pixi-2.json
@@ -0,0 +1,332 @@
+{
+ "id": 368222117,
+ "node_id": "MDEwOlJlcG9zaXRvcnkzNjgyMjIxMTc=",
+ "name": "Pixi",
+ "full_name": "hub4j-test-org/Pixi",
+ "private": false,
+ "owner": {
+ "login": "hub4j-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/hub4j-test-org",
+ "html_url": "https://github.com/hub4j-test-org",
+ "followers_url": "https://api.github.com/users/hub4j-test-org/followers",
+ "following_url": "https://api.github.com/users/hub4j-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/hub4j-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/hub4j-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/hub4j-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/hub4j-test-org/orgs",
+ "repos_url": "https://api.github.com/users/hub4j-test-org/repos",
+ "events_url": "https://api.github.com/users/hub4j-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/hub4j-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/hub4j-test-org/Pixi",
+ "description": "Used for running code scanning test cases",
+ "fork": true,
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi",
+ "forks_url": "https://api.github.com/repos/hub4j-test-org/Pixi/forks",
+ "keys_url": "https://api.github.com/repos/hub4j-test-org/Pixi/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/hub4j-test-org/Pixi/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/hub4j-test-org/Pixi/teams",
+ "hooks_url": "https://api.github.com/repos/hub4j-test-org/Pixi/hooks",
+ "issue_events_url": "https://api.github.com/repos/hub4j-test-org/Pixi/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/hub4j-test-org/Pixi/events",
+ "assignees_url": "https://api.github.com/repos/hub4j-test-org/Pixi/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/hub4j-test-org/Pixi/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/hub4j-test-org/Pixi/tags",
+ "blobs_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/hub4j-test-org/Pixi/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/hub4j-test-org/Pixi/languages",
+ "stargazers_url": "https://api.github.com/repos/hub4j-test-org/Pixi/stargazers",
+ "contributors_url": "https://api.github.com/repos/hub4j-test-org/Pixi/contributors",
+ "subscribers_url": "https://api.github.com/repos/hub4j-test-org/Pixi/subscribers",
+ "subscription_url": "https://api.github.com/repos/hub4j-test-org/Pixi/subscription",
+ "commits_url": "https://api.github.com/repos/hub4j-test-org/Pixi/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/hub4j-test-org/Pixi/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/hub4j-test-org/Pixi/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/hub4j-test-org/Pixi/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/hub4j-test-org/Pixi/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/hub4j-test-org/Pixi/merges",
+ "archive_url": "https://api.github.com/repos/hub4j-test-org/Pixi/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/hub4j-test-org/Pixi/downloads",
+ "issues_url": "https://api.github.com/repos/hub4j-test-org/Pixi/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/hub4j-test-org/Pixi/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/hub4j-test-org/Pixi/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/hub4j-test-org/Pixi/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/hub4j-test-org/Pixi/labels{/name}",
+ "releases_url": "https://api.github.com/repos/hub4j-test-org/Pixi/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/hub4j-test-org/Pixi/deployments",
+ "created_at": "2021-05-17T14:48:31Z",
+ "updated_at": "2021-05-17T14:50:01Z",
+ "pushed_at": "2021-05-17T14:49:58Z",
+ "git_url": "git://github.com/hub4j-test-org/Pixi.git",
+ "ssh_url": "git@github.com:hub4j-test-org/Pixi.git",
+ "clone_url": "https://github.com/hub4j-test-org/Pixi.git",
+ "svn_url": "https://github.com/hub4j-test-org/Pixi",
+ "homepage": "",
+ "size": 19772,
+ "stargazers_count": 0,
+ "watchers_count": 0,
+ "language": "JavaScript",
+ "has_issues": false,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 0,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 0,
+ "license": {
+ "key": "apache-2.0",
+ "name": "Apache License 2.0",
+ "spdx_id": "Apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "node_id": "MDc6TGljZW5zZTI="
+ },
+ "forks": 0,
+ "open_issues": 0,
+ "watchers": 0,
+ "default_branch": "master",
+ "permissions": {
+ "admin": true,
+ "push": true,
+ "pull": true
+ },
+ "temp_clone_token": "",
+ "allow_squash_merge": true,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "delete_branch_on_merge": false,
+ "organization": {
+ "login": "hub4j-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/hub4j-test-org",
+ "html_url": "https://github.com/hub4j-test-org",
+ "followers_url": "https://api.github.com/users/hub4j-test-org/followers",
+ "following_url": "https://api.github.com/users/hub4j-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/hub4j-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/hub4j-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/hub4j-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/hub4j-test-org/orgs",
+ "repos_url": "https://api.github.com/users/hub4j-test-org/repos",
+ "events_url": "https://api.github.com/users/hub4j-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/hub4j-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "parent": {
+ "id": 131328028,
+ "node_id": "MDEwOlJlcG9zaXRvcnkxMzEzMjgwMjg=",
+ "name": "Pixi",
+ "full_name": "DevSlop/Pixi",
+ "private": false,
+ "owner": {
+ "login": "DevSlop",
+ "id": 38781597,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4NzgxNTk3",
+ "avatar_url": "https://avatars.githubusercontent.com/u/38781597?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/DevSlop",
+ "html_url": "https://github.com/DevSlop",
+ "followers_url": "https://api.github.com/users/DevSlop/followers",
+ "following_url": "https://api.github.com/users/DevSlop/following{/other_user}",
+ "gists_url": "https://api.github.com/users/DevSlop/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/DevSlop/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/DevSlop/subscriptions",
+ "organizations_url": "https://api.github.com/users/DevSlop/orgs",
+ "repos_url": "https://api.github.com/users/DevSlop/repos",
+ "events_url": "https://api.github.com/users/DevSlop/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/DevSlop/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/DevSlop/Pixi",
+ "description": "The Pixi module is a MEAN Stack web app with wildly insecure APIs!",
+ "fork": false,
+ "url": "https://api.github.com/repos/DevSlop/Pixi",
+ "forks_url": "https://api.github.com/repos/DevSlop/Pixi/forks",
+ "keys_url": "https://api.github.com/repos/DevSlop/Pixi/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/DevSlop/Pixi/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/DevSlop/Pixi/teams",
+ "hooks_url": "https://api.github.com/repos/DevSlop/Pixi/hooks",
+ "issue_events_url": "https://api.github.com/repos/DevSlop/Pixi/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/DevSlop/Pixi/events",
+ "assignees_url": "https://api.github.com/repos/DevSlop/Pixi/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/DevSlop/Pixi/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/DevSlop/Pixi/tags",
+ "blobs_url": "https://api.github.com/repos/DevSlop/Pixi/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/DevSlop/Pixi/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/DevSlop/Pixi/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/DevSlop/Pixi/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/DevSlop/Pixi/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/DevSlop/Pixi/languages",
+ "stargazers_url": "https://api.github.com/repos/DevSlop/Pixi/stargazers",
+ "contributors_url": "https://api.github.com/repos/DevSlop/Pixi/contributors",
+ "subscribers_url": "https://api.github.com/repos/DevSlop/Pixi/subscribers",
+ "subscription_url": "https://api.github.com/repos/DevSlop/Pixi/subscription",
+ "commits_url": "https://api.github.com/repos/DevSlop/Pixi/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/DevSlop/Pixi/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/DevSlop/Pixi/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/DevSlop/Pixi/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/DevSlop/Pixi/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/DevSlop/Pixi/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/DevSlop/Pixi/merges",
+ "archive_url": "https://api.github.com/repos/DevSlop/Pixi/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/DevSlop/Pixi/downloads",
+ "issues_url": "https://api.github.com/repos/DevSlop/Pixi/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/DevSlop/Pixi/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/DevSlop/Pixi/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/DevSlop/Pixi/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/DevSlop/Pixi/labels{/name}",
+ "releases_url": "https://api.github.com/repos/DevSlop/Pixi/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/DevSlop/Pixi/deployments",
+ "created_at": "2018-04-27T17:49:11Z",
+ "updated_at": "2021-04-28T12:48:18Z",
+ "pushed_at": "2020-09-04T10:17:22Z",
+ "git_url": "git://github.com/DevSlop/Pixi.git",
+ "ssh_url": "git@github.com:DevSlop/Pixi.git",
+ "clone_url": "https://github.com/DevSlop/Pixi.git",
+ "svn_url": "https://github.com/DevSlop/Pixi",
+ "homepage": null,
+ "size": 19776,
+ "stargazers_count": 43,
+ "watchers_count": 43,
+ "language": "JavaScript",
+ "has_issues": true,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 39,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 25,
+ "license": {
+ "key": "apache-2.0",
+ "name": "Apache License 2.0",
+ "spdx_id": "Apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "node_id": "MDc6TGljZW5zZTI="
+ },
+ "forks": 39,
+ "open_issues": 25,
+ "watchers": 43,
+ "default_branch": "master"
+ },
+ "source": {
+ "id": 131328028,
+ "node_id": "MDEwOlJlcG9zaXRvcnkxMzEzMjgwMjg=",
+ "name": "Pixi",
+ "full_name": "DevSlop/Pixi",
+ "private": false,
+ "owner": {
+ "login": "DevSlop",
+ "id": 38781597,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4NzgxNTk3",
+ "avatar_url": "https://avatars.githubusercontent.com/u/38781597?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/DevSlop",
+ "html_url": "https://github.com/DevSlop",
+ "followers_url": "https://api.github.com/users/DevSlop/followers",
+ "following_url": "https://api.github.com/users/DevSlop/following{/other_user}",
+ "gists_url": "https://api.github.com/users/DevSlop/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/DevSlop/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/DevSlop/subscriptions",
+ "organizations_url": "https://api.github.com/users/DevSlop/orgs",
+ "repos_url": "https://api.github.com/users/DevSlop/repos",
+ "events_url": "https://api.github.com/users/DevSlop/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/DevSlop/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/DevSlop/Pixi",
+ "description": "The Pixi module is a MEAN Stack web app with wildly insecure APIs!",
+ "fork": false,
+ "url": "https://api.github.com/repos/DevSlop/Pixi",
+ "forks_url": "https://api.github.com/repos/DevSlop/Pixi/forks",
+ "keys_url": "https://api.github.com/repos/DevSlop/Pixi/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/DevSlop/Pixi/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/DevSlop/Pixi/teams",
+ "hooks_url": "https://api.github.com/repos/DevSlop/Pixi/hooks",
+ "issue_events_url": "https://api.github.com/repos/DevSlop/Pixi/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/DevSlop/Pixi/events",
+ "assignees_url": "https://api.github.com/repos/DevSlop/Pixi/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/DevSlop/Pixi/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/DevSlop/Pixi/tags",
+ "blobs_url": "https://api.github.com/repos/DevSlop/Pixi/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/DevSlop/Pixi/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/DevSlop/Pixi/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/DevSlop/Pixi/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/DevSlop/Pixi/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/DevSlop/Pixi/languages",
+ "stargazers_url": "https://api.github.com/repos/DevSlop/Pixi/stargazers",
+ "contributors_url": "https://api.github.com/repos/DevSlop/Pixi/contributors",
+ "subscribers_url": "https://api.github.com/repos/DevSlop/Pixi/subscribers",
+ "subscription_url": "https://api.github.com/repos/DevSlop/Pixi/subscription",
+ "commits_url": "https://api.github.com/repos/DevSlop/Pixi/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/DevSlop/Pixi/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/DevSlop/Pixi/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/DevSlop/Pixi/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/DevSlop/Pixi/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/DevSlop/Pixi/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/DevSlop/Pixi/merges",
+ "archive_url": "https://api.github.com/repos/DevSlop/Pixi/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/DevSlop/Pixi/downloads",
+ "issues_url": "https://api.github.com/repos/DevSlop/Pixi/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/DevSlop/Pixi/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/DevSlop/Pixi/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/DevSlop/Pixi/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/DevSlop/Pixi/labels{/name}",
+ "releases_url": "https://api.github.com/repos/DevSlop/Pixi/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/DevSlop/Pixi/deployments",
+ "created_at": "2018-04-27T17:49:11Z",
+ "updated_at": "2021-04-28T12:48:18Z",
+ "pushed_at": "2020-09-04T10:17:22Z",
+ "git_url": "git://github.com/DevSlop/Pixi.git",
+ "ssh_url": "git@github.com:DevSlop/Pixi.git",
+ "clone_url": "https://github.com/DevSlop/Pixi.git",
+ "svn_url": "https://github.com/DevSlop/Pixi",
+ "homepage": null,
+ "size": 19776,
+ "stargazers_count": 43,
+ "watchers_count": 43,
+ "language": "JavaScript",
+ "has_issues": true,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 39,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 25,
+ "license": {
+ "key": "apache-2.0",
+ "name": "Apache License 2.0",
+ "spdx_id": "Apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "node_id": "MDc6TGljZW5zZTI="
+ },
+ "forks": 39,
+ "open_issues": 25,
+ "watchers": 43,
+ "default_branch": "master"
+ },
+ "network_count": 39,
+ "subscribers_count": 0
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
new file mode 100644
index 0000000000..eb7e54671c
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
@@ -0,0 +1,61 @@
+[
+ {
+ "number": 1,
+ "created_at": "2021-05-17T14:55:01Z",
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/1",
+ "html_url": "https://github.com/hub4j-test-org/Pixi/security/code-scanning/1",
+ "state": "dismissed",
+ "dismissed_by": {
+ "login": "akashRindhe",
+ "id": 14114123,
+ "node_id": "MDQ6VXNlcjE0MTE0MTIz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14114123?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/akashRindhe",
+ "html_url": "https://github.com/akashRindhe",
+ "followers_url": "https://api.github.com/users/akashRindhe/followers",
+ "following_url": "https://api.github.com/users/akashRindhe/following{/other_user}",
+ "gists_url": "https://api.github.com/users/akashRindhe/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/akashRindhe/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/akashRindhe/subscriptions",
+ "organizations_url": "https://api.github.com/users/akashRindhe/orgs",
+ "repos_url": "https://api.github.com/users/akashRindhe/repos",
+ "events_url": "https://api.github.com/users/akashRindhe/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/akashRindhe/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "dismissed_at": "2021-05-18T01:45:16Z",
+ "dismissed_reason": "used in tests",
+ "rule": {
+ "id": "js/angular/disabling-sce",
+ "severity": "warning",
+ "description": "Disabling SCE",
+ "name": "js/angular/disabling-sce"
+ },
+ "tool": {
+ "name": "CodeQL",
+ "guid": null,
+ "version": "2.5.4"
+ },
+ "most_recent_instance": {
+ "ref": "refs/heads/master",
+ "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
+ "environment": "{\"language\":\"javascript\"}",
+ "state": "dismissed",
+ "commit_sha": "b3cfb0474bb3d5b5cd499a17e448281abbd256d7",
+ "message": {
+ "text": "Disabling SCE is strongly discouraged."
+ },
+ "location": {
+ "path": "app/pixi.html",
+ "start_line": 179,
+ "end_line": 179,
+ "start_column": 4,
+ "end_column": 31
+ },
+ "classifications": []
+ },
+ "instances_url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/1/instances"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/repos_hub4j-test-org_pixi_code-scanning_alerts_1_instances-4.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/repos_hub4j-test-org_pixi_code-scanning_alerts_1_instances-4.json
new file mode 100644
index 0000000000..8f4e6965c7
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/repos_hub4j-test-org_pixi_code-scanning_alerts_1_instances-4.json
@@ -0,0 +1,20 @@
+[
+ {
+ "ref": "refs/heads/master",
+ "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
+ "environment": "{\"language\":\"javascript\"}",
+ "state": "open",
+ "commit_sha": "b3cfb0474bb3d5b5cd499a17e448281abbd256d7",
+ "message": {
+ "text": "Disabling SCE is strongly discouraged."
+ },
+ "location": {
+ "path": "app/pixi.html",
+ "start_line": 179,
+ "end_line": 179,
+ "start_column": 4,
+ "end_column": 31
+ },
+ "classifications": []
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/user-1.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/user-1.json
new file mode 100644
index 0000000000..039ef9bf05
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/__files/user-1.json
@@ -0,0 +1,46 @@
+{
+ "login": "akashRindhe",
+ "id": 14114123,
+ "node_id": "MDQ6VXNlcjE0MTE0MTIz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14114123?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/akashRindhe",
+ "html_url": "https://github.com/akashRindhe",
+ "followers_url": "https://api.github.com/users/akashRindhe/followers",
+ "following_url": "https://api.github.com/users/akashRindhe/following{/other_user}",
+ "gists_url": "https://api.github.com/users/akashRindhe/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/akashRindhe/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/akashRindhe/subscriptions",
+ "organizations_url": "https://api.github.com/users/akashRindhe/orgs",
+ "repos_url": "https://api.github.com/users/akashRindhe/repos",
+ "events_url": "https://api.github.com/users/akashRindhe/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/akashRindhe/received_events",
+ "type": "User",
+ "site_admin": false,
+ "name": "Akash Rindhe",
+ "company": null,
+ "blog": "",
+ "location": "Singapore",
+ "email": null,
+ "hireable": null,
+ "bio": null,
+ "twitter_username": null,
+ "public_repos": 10,
+ "public_gists": 0,
+ "followers": 0,
+ "following": 6,
+ "created_at": "2015-09-03T18:07:43Z",
+ "updated_at": "2021-05-18T02:04:49Z",
+ "private_gists": 0,
+ "total_private_repos": 4,
+ "owned_private_repos": 4,
+ "disk_usage": 25766,
+ "collaborators": 1,
+ "two_factor_authentication": true,
+ "plan": {
+ "name": "free",
+ "space": 976562499,
+ "collaborators": 0,
+ "private_repos": 10000
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/repos_hub4j-test-org_pixi-2.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/repos_hub4j-test-org_pixi-2.json
new file mode 100644
index 0000000000..2767224e1f
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/repos_hub4j-test-org_pixi-2.json
@@ -0,0 +1,47 @@
+{
+ "id": "739d3462-2e22-426c-a77c-d20fd076943a",
+ "name": "repos_hub4j-test-org_pixi",
+ "request": {
+ "url": "/repos/hub4j-test-org/Pixi",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_hub4j-test-org_pixi-2.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Wed, 19 May 2021 13:19:07 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"798dc78bb4c7a5f7af29dd24986abff44807dbd0601e8a2e0b5768a9e86d236f\"",
+ "Last-Modified": "Mon, 17 May 2021 14:50:01 GMT",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4997",
+ "X-RateLimit-Reset": "1621433945",
+ "X-RateLimit-Used": "3",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "ECF6:0F89:98810:A70AE:60A5104A"
+ }
+ },
+ "uuid": "739d3462-2e22-426c-a77c-d20fd076943a",
+ "persistent": true,
+ "insertionIndex": 2
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
new file mode 100644
index 0000000000..23306dde16
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
@@ -0,0 +1,46 @@
+{
+ "id": "b402a154-73bd-4924-8b91-4f24595619b8",
+ "name": "repos_hub4j-test-org_pixi_code-scanning_alerts",
+ "request": {
+ "url": "/repos/hub4j-test-org/Pixi/code-scanning/alerts?state=dismissed&per_page=1",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_hub4j-test-org_pixi_code-scanning_alerts-3.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Wed, 19 May 2021 13:19:08 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"9a1d2adc0632ce1ed356060f568dde4d49ff9bb466dbd8dd178c2d7f2deb168a\"",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4996",
+ "X-RateLimit-Reset": "1621433945",
+ "X-RateLimit-Used": "4",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "ECF6:0F89:98830:A70D5:60A5104B"
+ }
+ },
+ "uuid": "b402a154-73bd-4924-8b91-4f24595619b8",
+ "persistent": true,
+ "insertionIndex": 3
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts_1_instances-4.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts_1_instances-4.json
new file mode 100644
index 0000000000..43f9c37ddc
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts_1_instances-4.json
@@ -0,0 +1,46 @@
+{
+ "id": "80a85afe-0843-4749-a7fc-9ff3bfef9d98",
+ "name": "repos_hub4j-test-org_pixi_code-scanning_alerts_1_instances",
+ "request": {
+ "url": "/repos/hub4j-test-org/Pixi/code-scanning/alerts/1/instances",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_hub4j-test-org_pixi_code-scanning_alerts_1_instances-4.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Wed, 19 May 2021 13:19:08 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"c919e1cdca3a115eeb46d88ad4f4f4ca2cf3a73f1ef3f8759d3f1912d0501847\"",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4995",
+ "X-RateLimit-Reset": "1621433945",
+ "X-RateLimit-Used": "5",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "ECF6:0F89:98841:A70E9:60A5104C"
+ }
+ },
+ "uuid": "80a85afe-0843-4749-a7fc-9ff3bfef9d98",
+ "persistent": true,
+ "insertionIndex": 4
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/user-1.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/user-1.json
new file mode 100644
index 0000000000..23870c743a
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertInstanceTest/wiremock/testListAlertInstances/mappings/user-1.json
@@ -0,0 +1,47 @@
+{
+ "id": "3791c749-1861-498d-91c0-ae1cb17c4d13",
+ "name": "user",
+ "request": {
+ "url": "/user",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "user-1.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Wed, 19 May 2021 13:19:05 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"b3db1d8dfd0cef27934c732c74e2d774a7869d6c1b525a4b22e050220ee9aa33\"",
+ "Last-Modified": "Tue, 18 May 2021 02:04:49 GMT",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4999",
+ "X-RateLimit-Reset": "1621433945",
+ "X-RateLimit-Used": "1",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "ECF6:0F89:987DE:A707B:60A51049"
+ }
+ },
+ "uuid": "3791c749-1861-498d-91c0-ae1cb17c4d13",
+ "persistent": true,
+ "insertionIndex": 1
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/repos_hub4j-test-org_pixi-2.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/repos_hub4j-test-org_pixi-2.json
new file mode 100644
index 0000000000..ca64db2873
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/repos_hub4j-test-org_pixi-2.json
@@ -0,0 +1,332 @@
+{
+ "id": 368222117,
+ "node_id": "MDEwOlJlcG9zaXRvcnkzNjgyMjIxMTc=",
+ "name": "Pixi",
+ "full_name": "hub4j-test-org/Pixi",
+ "private": false,
+ "owner": {
+ "login": "hub4j-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/hub4j-test-org",
+ "html_url": "https://github.com/hub4j-test-org",
+ "followers_url": "https://api.github.com/users/hub4j-test-org/followers",
+ "following_url": "https://api.github.com/users/hub4j-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/hub4j-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/hub4j-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/hub4j-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/hub4j-test-org/orgs",
+ "repos_url": "https://api.github.com/users/hub4j-test-org/repos",
+ "events_url": "https://api.github.com/users/hub4j-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/hub4j-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/hub4j-test-org/Pixi",
+ "description": "Used for running code scanning test cases",
+ "fork": true,
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi",
+ "forks_url": "https://api.github.com/repos/hub4j-test-org/Pixi/forks",
+ "keys_url": "https://api.github.com/repos/hub4j-test-org/Pixi/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/hub4j-test-org/Pixi/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/hub4j-test-org/Pixi/teams",
+ "hooks_url": "https://api.github.com/repos/hub4j-test-org/Pixi/hooks",
+ "issue_events_url": "https://api.github.com/repos/hub4j-test-org/Pixi/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/hub4j-test-org/Pixi/events",
+ "assignees_url": "https://api.github.com/repos/hub4j-test-org/Pixi/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/hub4j-test-org/Pixi/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/hub4j-test-org/Pixi/tags",
+ "blobs_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/hub4j-test-org/Pixi/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/hub4j-test-org/Pixi/languages",
+ "stargazers_url": "https://api.github.com/repos/hub4j-test-org/Pixi/stargazers",
+ "contributors_url": "https://api.github.com/repos/hub4j-test-org/Pixi/contributors",
+ "subscribers_url": "https://api.github.com/repos/hub4j-test-org/Pixi/subscribers",
+ "subscription_url": "https://api.github.com/repos/hub4j-test-org/Pixi/subscription",
+ "commits_url": "https://api.github.com/repos/hub4j-test-org/Pixi/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/hub4j-test-org/Pixi/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/hub4j-test-org/Pixi/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/hub4j-test-org/Pixi/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/hub4j-test-org/Pixi/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/hub4j-test-org/Pixi/merges",
+ "archive_url": "https://api.github.com/repos/hub4j-test-org/Pixi/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/hub4j-test-org/Pixi/downloads",
+ "issues_url": "https://api.github.com/repos/hub4j-test-org/Pixi/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/hub4j-test-org/Pixi/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/hub4j-test-org/Pixi/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/hub4j-test-org/Pixi/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/hub4j-test-org/Pixi/labels{/name}",
+ "releases_url": "https://api.github.com/repos/hub4j-test-org/Pixi/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/hub4j-test-org/Pixi/deployments",
+ "created_at": "2021-05-17T14:48:31Z",
+ "updated_at": "2021-05-17T14:50:01Z",
+ "pushed_at": "2021-05-17T14:49:58Z",
+ "git_url": "git://github.com/hub4j-test-org/Pixi.git",
+ "ssh_url": "git@github.com:hub4j-test-org/Pixi.git",
+ "clone_url": "https://github.com/hub4j-test-org/Pixi.git",
+ "svn_url": "https://github.com/hub4j-test-org/Pixi",
+ "homepage": "",
+ "size": 19772,
+ "stargazers_count": 0,
+ "watchers_count": 0,
+ "language": "JavaScript",
+ "has_issues": false,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 0,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 0,
+ "license": {
+ "key": "apache-2.0",
+ "name": "Apache License 2.0",
+ "spdx_id": "Apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "node_id": "MDc6TGljZW5zZTI="
+ },
+ "forks": 0,
+ "open_issues": 0,
+ "watchers": 0,
+ "default_branch": "master",
+ "permissions": {
+ "admin": true,
+ "push": true,
+ "pull": true
+ },
+ "temp_clone_token": "",
+ "allow_squash_merge": true,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "delete_branch_on_merge": false,
+ "organization": {
+ "login": "hub4j-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/hub4j-test-org",
+ "html_url": "https://github.com/hub4j-test-org",
+ "followers_url": "https://api.github.com/users/hub4j-test-org/followers",
+ "following_url": "https://api.github.com/users/hub4j-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/hub4j-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/hub4j-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/hub4j-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/hub4j-test-org/orgs",
+ "repos_url": "https://api.github.com/users/hub4j-test-org/repos",
+ "events_url": "https://api.github.com/users/hub4j-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/hub4j-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "parent": {
+ "id": 131328028,
+ "node_id": "MDEwOlJlcG9zaXRvcnkxMzEzMjgwMjg=",
+ "name": "Pixi",
+ "full_name": "DevSlop/Pixi",
+ "private": false,
+ "owner": {
+ "login": "DevSlop",
+ "id": 38781597,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4NzgxNTk3",
+ "avatar_url": "https://avatars.githubusercontent.com/u/38781597?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/DevSlop",
+ "html_url": "https://github.com/DevSlop",
+ "followers_url": "https://api.github.com/users/DevSlop/followers",
+ "following_url": "https://api.github.com/users/DevSlop/following{/other_user}",
+ "gists_url": "https://api.github.com/users/DevSlop/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/DevSlop/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/DevSlop/subscriptions",
+ "organizations_url": "https://api.github.com/users/DevSlop/orgs",
+ "repos_url": "https://api.github.com/users/DevSlop/repos",
+ "events_url": "https://api.github.com/users/DevSlop/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/DevSlop/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/DevSlop/Pixi",
+ "description": "The Pixi module is a MEAN Stack web app with wildly insecure APIs!",
+ "fork": false,
+ "url": "https://api.github.com/repos/DevSlop/Pixi",
+ "forks_url": "https://api.github.com/repos/DevSlop/Pixi/forks",
+ "keys_url": "https://api.github.com/repos/DevSlop/Pixi/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/DevSlop/Pixi/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/DevSlop/Pixi/teams",
+ "hooks_url": "https://api.github.com/repos/DevSlop/Pixi/hooks",
+ "issue_events_url": "https://api.github.com/repos/DevSlop/Pixi/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/DevSlop/Pixi/events",
+ "assignees_url": "https://api.github.com/repos/DevSlop/Pixi/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/DevSlop/Pixi/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/DevSlop/Pixi/tags",
+ "blobs_url": "https://api.github.com/repos/DevSlop/Pixi/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/DevSlop/Pixi/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/DevSlop/Pixi/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/DevSlop/Pixi/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/DevSlop/Pixi/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/DevSlop/Pixi/languages",
+ "stargazers_url": "https://api.github.com/repos/DevSlop/Pixi/stargazers",
+ "contributors_url": "https://api.github.com/repos/DevSlop/Pixi/contributors",
+ "subscribers_url": "https://api.github.com/repos/DevSlop/Pixi/subscribers",
+ "subscription_url": "https://api.github.com/repos/DevSlop/Pixi/subscription",
+ "commits_url": "https://api.github.com/repos/DevSlop/Pixi/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/DevSlop/Pixi/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/DevSlop/Pixi/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/DevSlop/Pixi/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/DevSlop/Pixi/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/DevSlop/Pixi/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/DevSlop/Pixi/merges",
+ "archive_url": "https://api.github.com/repos/DevSlop/Pixi/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/DevSlop/Pixi/downloads",
+ "issues_url": "https://api.github.com/repos/DevSlop/Pixi/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/DevSlop/Pixi/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/DevSlop/Pixi/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/DevSlop/Pixi/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/DevSlop/Pixi/labels{/name}",
+ "releases_url": "https://api.github.com/repos/DevSlop/Pixi/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/DevSlop/Pixi/deployments",
+ "created_at": "2018-04-27T17:49:11Z",
+ "updated_at": "2021-04-28T12:48:18Z",
+ "pushed_at": "2020-09-04T10:17:22Z",
+ "git_url": "git://github.com/DevSlop/Pixi.git",
+ "ssh_url": "git@github.com:DevSlop/Pixi.git",
+ "clone_url": "https://github.com/DevSlop/Pixi.git",
+ "svn_url": "https://github.com/DevSlop/Pixi",
+ "homepage": null,
+ "size": 19776,
+ "stargazers_count": 43,
+ "watchers_count": 43,
+ "language": "JavaScript",
+ "has_issues": true,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 39,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 25,
+ "license": {
+ "key": "apache-2.0",
+ "name": "Apache License 2.0",
+ "spdx_id": "Apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "node_id": "MDc6TGljZW5zZTI="
+ },
+ "forks": 39,
+ "open_issues": 25,
+ "watchers": 43,
+ "default_branch": "master"
+ },
+ "source": {
+ "id": 131328028,
+ "node_id": "MDEwOlJlcG9zaXRvcnkxMzEzMjgwMjg=",
+ "name": "Pixi",
+ "full_name": "DevSlop/Pixi",
+ "private": false,
+ "owner": {
+ "login": "DevSlop",
+ "id": 38781597,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4NzgxNTk3",
+ "avatar_url": "https://avatars.githubusercontent.com/u/38781597?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/DevSlop",
+ "html_url": "https://github.com/DevSlop",
+ "followers_url": "https://api.github.com/users/DevSlop/followers",
+ "following_url": "https://api.github.com/users/DevSlop/following{/other_user}",
+ "gists_url": "https://api.github.com/users/DevSlop/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/DevSlop/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/DevSlop/subscriptions",
+ "organizations_url": "https://api.github.com/users/DevSlop/orgs",
+ "repos_url": "https://api.github.com/users/DevSlop/repos",
+ "events_url": "https://api.github.com/users/DevSlop/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/DevSlop/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/DevSlop/Pixi",
+ "description": "The Pixi module is a MEAN Stack web app with wildly insecure APIs!",
+ "fork": false,
+ "url": "https://api.github.com/repos/DevSlop/Pixi",
+ "forks_url": "https://api.github.com/repos/DevSlop/Pixi/forks",
+ "keys_url": "https://api.github.com/repos/DevSlop/Pixi/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/DevSlop/Pixi/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/DevSlop/Pixi/teams",
+ "hooks_url": "https://api.github.com/repos/DevSlop/Pixi/hooks",
+ "issue_events_url": "https://api.github.com/repos/DevSlop/Pixi/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/DevSlop/Pixi/events",
+ "assignees_url": "https://api.github.com/repos/DevSlop/Pixi/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/DevSlop/Pixi/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/DevSlop/Pixi/tags",
+ "blobs_url": "https://api.github.com/repos/DevSlop/Pixi/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/DevSlop/Pixi/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/DevSlop/Pixi/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/DevSlop/Pixi/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/DevSlop/Pixi/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/DevSlop/Pixi/languages",
+ "stargazers_url": "https://api.github.com/repos/DevSlop/Pixi/stargazers",
+ "contributors_url": "https://api.github.com/repos/DevSlop/Pixi/contributors",
+ "subscribers_url": "https://api.github.com/repos/DevSlop/Pixi/subscribers",
+ "subscription_url": "https://api.github.com/repos/DevSlop/Pixi/subscription",
+ "commits_url": "https://api.github.com/repos/DevSlop/Pixi/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/DevSlop/Pixi/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/DevSlop/Pixi/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/DevSlop/Pixi/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/DevSlop/Pixi/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/DevSlop/Pixi/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/DevSlop/Pixi/merges",
+ "archive_url": "https://api.github.com/repos/DevSlop/Pixi/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/DevSlop/Pixi/downloads",
+ "issues_url": "https://api.github.com/repos/DevSlop/Pixi/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/DevSlop/Pixi/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/DevSlop/Pixi/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/DevSlop/Pixi/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/DevSlop/Pixi/labels{/name}",
+ "releases_url": "https://api.github.com/repos/DevSlop/Pixi/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/DevSlop/Pixi/deployments",
+ "created_at": "2018-04-27T17:49:11Z",
+ "updated_at": "2021-04-28T12:48:18Z",
+ "pushed_at": "2020-09-04T10:17:22Z",
+ "git_url": "git://github.com/DevSlop/Pixi.git",
+ "ssh_url": "git@github.com:DevSlop/Pixi.git",
+ "clone_url": "https://github.com/DevSlop/Pixi.git",
+ "svn_url": "https://github.com/DevSlop/Pixi",
+ "homepage": null,
+ "size": 19776,
+ "stargazers_count": 43,
+ "watchers_count": 43,
+ "language": "JavaScript",
+ "has_issues": true,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 39,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 25,
+ "license": {
+ "key": "apache-2.0",
+ "name": "Apache License 2.0",
+ "spdx_id": "Apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "node_id": "MDc6TGljZW5zZTI="
+ },
+ "forks": 39,
+ "open_issues": 25,
+ "watchers": 43,
+ "default_branch": "master"
+ },
+ "network_count": 39,
+ "subscribers_count": 0
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
new file mode 100644
index 0000000000..eb7e54671c
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
@@ -0,0 +1,61 @@
+[
+ {
+ "number": 1,
+ "created_at": "2021-05-17T14:55:01Z",
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/1",
+ "html_url": "https://github.com/hub4j-test-org/Pixi/security/code-scanning/1",
+ "state": "dismissed",
+ "dismissed_by": {
+ "login": "akashRindhe",
+ "id": 14114123,
+ "node_id": "MDQ6VXNlcjE0MTE0MTIz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14114123?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/akashRindhe",
+ "html_url": "https://github.com/akashRindhe",
+ "followers_url": "https://api.github.com/users/akashRindhe/followers",
+ "following_url": "https://api.github.com/users/akashRindhe/following{/other_user}",
+ "gists_url": "https://api.github.com/users/akashRindhe/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/akashRindhe/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/akashRindhe/subscriptions",
+ "organizations_url": "https://api.github.com/users/akashRindhe/orgs",
+ "repos_url": "https://api.github.com/users/akashRindhe/repos",
+ "events_url": "https://api.github.com/users/akashRindhe/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/akashRindhe/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "dismissed_at": "2021-05-18T01:45:16Z",
+ "dismissed_reason": "used in tests",
+ "rule": {
+ "id": "js/angular/disabling-sce",
+ "severity": "warning",
+ "description": "Disabling SCE",
+ "name": "js/angular/disabling-sce"
+ },
+ "tool": {
+ "name": "CodeQL",
+ "guid": null,
+ "version": "2.5.4"
+ },
+ "most_recent_instance": {
+ "ref": "refs/heads/master",
+ "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
+ "environment": "{\"language\":\"javascript\"}",
+ "state": "dismissed",
+ "commit_sha": "b3cfb0474bb3d5b5cd499a17e448281abbd256d7",
+ "message": {
+ "text": "Disabling SCE is strongly discouraged."
+ },
+ "location": {
+ "path": "app/pixi.html",
+ "start_line": 179,
+ "end_line": 179,
+ "start_column": 4,
+ "end_column": 31
+ },
+ "classifications": []
+ },
+ "instances_url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/1/instances"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/repos_hub4j-test-org_pixi_code-scanning_alerts_1-4.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/repos_hub4j-test-org_pixi_code-scanning_alerts_1-4.json
new file mode 100644
index 0000000000..4fcfe3a0aa
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/repos_hub4j-test-org_pixi_code-scanning_alerts_1-4.json
@@ -0,0 +1,86 @@
+{
+ "number": 1,
+ "created_at": "2021-05-17T14:55:01Z",
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/1",
+ "html_url": "https://github.com/hub4j-test-org/Pixi/security/code-scanning/1",
+ "state": "dismissed",
+ "dismissed_by": {
+ "login": "akashRindhe",
+ "id": 14114123,
+ "node_id": "MDQ6VXNlcjE0MTE0MTIz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14114123?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/akashRindhe",
+ "html_url": "https://github.com/akashRindhe",
+ "followers_url": "https://api.github.com/users/akashRindhe/followers",
+ "following_url": "https://api.github.com/users/akashRindhe/following{/other_user}",
+ "gists_url": "https://api.github.com/users/akashRindhe/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/akashRindhe/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/akashRindhe/subscriptions",
+ "organizations_url": "https://api.github.com/users/akashRindhe/orgs",
+ "repos_url": "https://api.github.com/users/akashRindhe/repos",
+ "events_url": "https://api.github.com/users/akashRindhe/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/akashRindhe/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "dismissed_at": "2021-05-18T01:45:16Z",
+ "dismissed_reason": "used in tests",
+ "rule": {
+ "id": "js/angular/disabling-sce",
+ "severity": "warning",
+ "description": "Disabling SCE",
+ "name": "js/angular/disabling-sce",
+ "full_description": "Disabling strict contextual escaping (SCE) can cause security vulnerabilities.",
+ "tags": [
+ "frameworks/angularjs",
+ "maintainability",
+ "security"
+ ],
+ "help": "# Disabling SCE\nAngularJS is secure by default through automated sanitization and filtering of untrusted values that could cause vulnerabilities such as XSS. Strict Contextual Escaping (SCE) is an execution mode in AngularJS that provides this security mechanism.\n\nDisabling SCE in an AngularJS application is strongly discouraged. It is even more discouraged to disable SCE in a library, since it is an application-wide setting.\n\n\n## Recommendation\nDo not disable SCE.\n\n\n## Example\nThe following example shows an AngularJS application that disables SCE in order to dynamically construct an HTML fragment, which is later inserted into the DOM through `$scope.html`.\n\n\n```javascript\nangular.module('app', [])\n .config(function($sceProvider) {\n $sceProvider.enabled(false); // BAD\n }).controller('controller', function($scope) {\n // ...\n $scope.html = '';\n });\n\n```\nThis is problematic, since it disables SCE for the entire AngularJS application.\n\nInstead, just mark the dynamically constructed HTML fragment as safe using `$sce.trustAsHtml`, before assigning it to `$scope.html`:\n\n\n```javascript\nangular.module('app', [])\n .controller('controller', function($scope, $sce) {\n // ...\n // GOOD (but should use the templating system instead)\n $scope.html = $sce.trustAsHtml(''); \n });\n\n```\nPlease note that this example is for illustrative purposes only; use the AngularJS templating system to dynamically construct HTML when possible.\n\n\n## References\n* AngularJS Developer Guide: [Strict Contextual Escaping](https://docs.angularjs.org/api/ng/service/$sce)\n* AngularJS Developer Guide: [Can I disable SCE completely?](https://docs.angularjs.org/api/ng/service/$sce#can-i-disable-sce-completely-).\n"
+ },
+ "tool": {
+ "name": "CodeQL",
+ "guid": null,
+ "version": "2.5.4"
+ },
+ "most_recent_instance": {
+ "ref": "refs/heads/master",
+ "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
+ "environment": "{\"language\":\"javascript\"}",
+ "state": "dismissed",
+ "commit_sha": "b3cfb0474bb3d5b5cd499a17e448281abbd256d7",
+ "message": {
+ "text": "Disabling SCE is strongly discouraged."
+ },
+ "location": {
+ "path": "app/pixi.html",
+ "start_line": 179,
+ "end_line": 179,
+ "start_column": 4,
+ "end_column": 31
+ },
+ "classifications": []
+ },
+ "instances_url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/1/instances",
+ "instances": [
+ {
+ "ref": "refs/heads/master",
+ "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
+ "environment": "{\"language\":\"javascript\"}",
+ "state": "dismissed",
+ "commit_sha": "b3cfb0474bb3d5b5cd499a17e448281abbd256d7",
+ "message": {
+ "text": "Disabling SCE is strongly discouraged."
+ },
+ "location": {
+ "path": "app/pixi.html",
+ "start_line": 179,
+ "end_line": 179,
+ "start_column": 4,
+ "end_column": 31
+ },
+ "classifications": []
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/user-1.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/user-1.json
new file mode 100644
index 0000000000..5dc3a6b70b
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/__files/user-1.json
@@ -0,0 +1,46 @@
+{
+ "login": "akashRindhe",
+ "id": 14114123,
+ "node_id": "MDQ6VXNlcjE0MTE0MTIz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14114123?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/akashRindhe",
+ "html_url": "https://github.com/akashRindhe",
+ "followers_url": "https://api.github.com/users/akashRindhe/followers",
+ "following_url": "https://api.github.com/users/akashRindhe/following{/other_user}",
+ "gists_url": "https://api.github.com/users/akashRindhe/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/akashRindhe/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/akashRindhe/subscriptions",
+ "organizations_url": "https://api.github.com/users/akashRindhe/orgs",
+ "repos_url": "https://api.github.com/users/akashRindhe/repos",
+ "events_url": "https://api.github.com/users/akashRindhe/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/akashRindhe/received_events",
+ "type": "User",
+ "site_admin": false,
+ "name": "Akash Rindhe",
+ "company": null,
+ "blog": "",
+ "location": "Singapore",
+ "email": null,
+ "hireable": null,
+ "bio": null,
+ "twitter_username": null,
+ "public_repos": 10,
+ "public_gists": 0,
+ "followers": 0,
+ "following": 6,
+ "created_at": "2015-09-03T18:07:43Z",
+ "updated_at": "2021-05-17T14:48:09Z",
+ "private_gists": 0,
+ "total_private_repos": 4,
+ "owned_private_repos": 4,
+ "disk_usage": 24553,
+ "collaborators": 1,
+ "two_factor_authentication": true,
+ "plan": {
+ "name": "free",
+ "space": 976562499,
+ "collaborators": 0,
+ "private_repos": 10000
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/repos_hub4j-test-org_pixi-2.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/repos_hub4j-test-org_pixi-2.json
new file mode 100644
index 0000000000..55ff3cc82e
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/repos_hub4j-test-org_pixi-2.json
@@ -0,0 +1,47 @@
+{
+ "id": "eaf33f02-185f-4be9-a97b-924271e6e7c5",
+ "name": "repos_hub4j-test-org_pixi",
+ "request": {
+ "url": "/repos/hub4j-test-org/Pixi",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_hub4j-test-org_pixi-2.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Tue, 18 May 2021 01:47:57 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"798dc78bb4c7a5f7af29dd24986abff44807dbd0601e8a2e0b5768a9e86d236f\"",
+ "Last-Modified": "Mon, 17 May 2021 14:50:01 GMT",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4989",
+ "X-RateLimit-Reset": "1621305488",
+ "X-RateLimit-Used": "11",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C5B4:3979:DD47:15200:60A31CCC"
+ }
+ },
+ "uuid": "eaf33f02-185f-4be9-a97b-924271e6e7c5",
+ "persistent": true,
+ "insertionIndex": 2
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
new file mode 100644
index 0000000000..5b8fed5a77
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
@@ -0,0 +1,46 @@
+{
+ "id": "60d5109b-44b1-4891-94f2-10cb944b54a8",
+ "name": "repos_hub4j-test-org_pixi_code-scanning_alerts",
+ "request": {
+ "url": "/repos/hub4j-test-org/Pixi/code-scanning/alerts?state=dismissed&per_page=1",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_hub4j-test-org_pixi_code-scanning_alerts-3.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Tue, 18 May 2021 01:47:57 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"9a1d2adc0632ce1ed356060f568dde4d49ff9bb466dbd8dd178c2d7f2deb168a\"",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4988",
+ "X-RateLimit-Reset": "1621305488",
+ "X-RateLimit-Used": "12",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C5B4:3979:DD51:1520E:60A31CCD"
+ }
+ },
+ "uuid": "60d5109b-44b1-4891-94f2-10cb944b54a8",
+ "persistent": true,
+ "insertionIndex": 3
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts_1-4.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts_1-4.json
new file mode 100644
index 0000000000..1bf9bdf4a3
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts_1-4.json
@@ -0,0 +1,46 @@
+{
+ "id": "4f2360f2-1657-4c11-815a-9ec1cd813ff2",
+ "name": "repos_hub4j-test-org_pixi_code-scanning_alerts_1",
+ "request": {
+ "url": "/repos/hub4j-test-org/Pixi/code-scanning/alerts/1",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_hub4j-test-org_pixi_code-scanning_alerts_1-4.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Tue, 18 May 2021 01:47:58 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"14c49b996528874d4e190e109c9ece7d5a6c8b43fb2a91f816c65bdf1a5532b5\"",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4987",
+ "X-RateLimit-Reset": "1621305488",
+ "X-RateLimit-Used": "13",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C5B4:3979:DD58:15215:60A31CCD"
+ }
+ },
+ "uuid": "4f2360f2-1657-4c11-815a-9ec1cd813ff2",
+ "persistent": true,
+ "insertionIndex": 4
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/user-1.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/user-1.json
new file mode 100644
index 0000000000..3227dd2fc9
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testGetCodeScanningAlert/mappings/user-1.json
@@ -0,0 +1,47 @@
+{
+ "id": "d4353d07-0834-491b-8748-1572b1f98ccf",
+ "name": "user",
+ "request": {
+ "url": "/user",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "user-1.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Tue, 18 May 2021 01:47:55 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"b4c807fe770ee29631ba93ab998f014ce7ad3cefa967fb0ad843c2a9bf18b97a\"",
+ "Last-Modified": "Mon, 17 May 2021 14:48:09 GMT",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4991",
+ "X-RateLimit-Reset": "1621305488",
+ "X-RateLimit-Used": "9",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C5B4:3979:DD3B:151F0:60A31CCB"
+ }
+ },
+ "uuid": "d4353d07-0834-491b-8748-1572b1f98ccf",
+ "persistent": true,
+ "insertionIndex": 1
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/repos_hub4j-test-org_pixi-2.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/repos_hub4j-test-org_pixi-2.json
new file mode 100644
index 0000000000..ca64db2873
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/repos_hub4j-test-org_pixi-2.json
@@ -0,0 +1,332 @@
+{
+ "id": 368222117,
+ "node_id": "MDEwOlJlcG9zaXRvcnkzNjgyMjIxMTc=",
+ "name": "Pixi",
+ "full_name": "hub4j-test-org/Pixi",
+ "private": false,
+ "owner": {
+ "login": "hub4j-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/hub4j-test-org",
+ "html_url": "https://github.com/hub4j-test-org",
+ "followers_url": "https://api.github.com/users/hub4j-test-org/followers",
+ "following_url": "https://api.github.com/users/hub4j-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/hub4j-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/hub4j-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/hub4j-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/hub4j-test-org/orgs",
+ "repos_url": "https://api.github.com/users/hub4j-test-org/repos",
+ "events_url": "https://api.github.com/users/hub4j-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/hub4j-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/hub4j-test-org/Pixi",
+ "description": "Used for running code scanning test cases",
+ "fork": true,
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi",
+ "forks_url": "https://api.github.com/repos/hub4j-test-org/Pixi/forks",
+ "keys_url": "https://api.github.com/repos/hub4j-test-org/Pixi/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/hub4j-test-org/Pixi/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/hub4j-test-org/Pixi/teams",
+ "hooks_url": "https://api.github.com/repos/hub4j-test-org/Pixi/hooks",
+ "issue_events_url": "https://api.github.com/repos/hub4j-test-org/Pixi/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/hub4j-test-org/Pixi/events",
+ "assignees_url": "https://api.github.com/repos/hub4j-test-org/Pixi/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/hub4j-test-org/Pixi/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/hub4j-test-org/Pixi/tags",
+ "blobs_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/hub4j-test-org/Pixi/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/hub4j-test-org/Pixi/languages",
+ "stargazers_url": "https://api.github.com/repos/hub4j-test-org/Pixi/stargazers",
+ "contributors_url": "https://api.github.com/repos/hub4j-test-org/Pixi/contributors",
+ "subscribers_url": "https://api.github.com/repos/hub4j-test-org/Pixi/subscribers",
+ "subscription_url": "https://api.github.com/repos/hub4j-test-org/Pixi/subscription",
+ "commits_url": "https://api.github.com/repos/hub4j-test-org/Pixi/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/hub4j-test-org/Pixi/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/hub4j-test-org/Pixi/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/hub4j-test-org/Pixi/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/hub4j-test-org/Pixi/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/hub4j-test-org/Pixi/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/hub4j-test-org/Pixi/merges",
+ "archive_url": "https://api.github.com/repos/hub4j-test-org/Pixi/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/hub4j-test-org/Pixi/downloads",
+ "issues_url": "https://api.github.com/repos/hub4j-test-org/Pixi/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/hub4j-test-org/Pixi/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/hub4j-test-org/Pixi/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/hub4j-test-org/Pixi/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/hub4j-test-org/Pixi/labels{/name}",
+ "releases_url": "https://api.github.com/repos/hub4j-test-org/Pixi/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/hub4j-test-org/Pixi/deployments",
+ "created_at": "2021-05-17T14:48:31Z",
+ "updated_at": "2021-05-17T14:50:01Z",
+ "pushed_at": "2021-05-17T14:49:58Z",
+ "git_url": "git://github.com/hub4j-test-org/Pixi.git",
+ "ssh_url": "git@github.com:hub4j-test-org/Pixi.git",
+ "clone_url": "https://github.com/hub4j-test-org/Pixi.git",
+ "svn_url": "https://github.com/hub4j-test-org/Pixi",
+ "homepage": "",
+ "size": 19772,
+ "stargazers_count": 0,
+ "watchers_count": 0,
+ "language": "JavaScript",
+ "has_issues": false,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 0,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 0,
+ "license": {
+ "key": "apache-2.0",
+ "name": "Apache License 2.0",
+ "spdx_id": "Apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "node_id": "MDc6TGljZW5zZTI="
+ },
+ "forks": 0,
+ "open_issues": 0,
+ "watchers": 0,
+ "default_branch": "master",
+ "permissions": {
+ "admin": true,
+ "push": true,
+ "pull": true
+ },
+ "temp_clone_token": "",
+ "allow_squash_merge": true,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "delete_branch_on_merge": false,
+ "organization": {
+ "login": "hub4j-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/hub4j-test-org",
+ "html_url": "https://github.com/hub4j-test-org",
+ "followers_url": "https://api.github.com/users/hub4j-test-org/followers",
+ "following_url": "https://api.github.com/users/hub4j-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/hub4j-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/hub4j-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/hub4j-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/hub4j-test-org/orgs",
+ "repos_url": "https://api.github.com/users/hub4j-test-org/repos",
+ "events_url": "https://api.github.com/users/hub4j-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/hub4j-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "parent": {
+ "id": 131328028,
+ "node_id": "MDEwOlJlcG9zaXRvcnkxMzEzMjgwMjg=",
+ "name": "Pixi",
+ "full_name": "DevSlop/Pixi",
+ "private": false,
+ "owner": {
+ "login": "DevSlop",
+ "id": 38781597,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4NzgxNTk3",
+ "avatar_url": "https://avatars.githubusercontent.com/u/38781597?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/DevSlop",
+ "html_url": "https://github.com/DevSlop",
+ "followers_url": "https://api.github.com/users/DevSlop/followers",
+ "following_url": "https://api.github.com/users/DevSlop/following{/other_user}",
+ "gists_url": "https://api.github.com/users/DevSlop/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/DevSlop/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/DevSlop/subscriptions",
+ "organizations_url": "https://api.github.com/users/DevSlop/orgs",
+ "repos_url": "https://api.github.com/users/DevSlop/repos",
+ "events_url": "https://api.github.com/users/DevSlop/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/DevSlop/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/DevSlop/Pixi",
+ "description": "The Pixi module is a MEAN Stack web app with wildly insecure APIs!",
+ "fork": false,
+ "url": "https://api.github.com/repos/DevSlop/Pixi",
+ "forks_url": "https://api.github.com/repos/DevSlop/Pixi/forks",
+ "keys_url": "https://api.github.com/repos/DevSlop/Pixi/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/DevSlop/Pixi/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/DevSlop/Pixi/teams",
+ "hooks_url": "https://api.github.com/repos/DevSlop/Pixi/hooks",
+ "issue_events_url": "https://api.github.com/repos/DevSlop/Pixi/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/DevSlop/Pixi/events",
+ "assignees_url": "https://api.github.com/repos/DevSlop/Pixi/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/DevSlop/Pixi/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/DevSlop/Pixi/tags",
+ "blobs_url": "https://api.github.com/repos/DevSlop/Pixi/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/DevSlop/Pixi/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/DevSlop/Pixi/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/DevSlop/Pixi/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/DevSlop/Pixi/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/DevSlop/Pixi/languages",
+ "stargazers_url": "https://api.github.com/repos/DevSlop/Pixi/stargazers",
+ "contributors_url": "https://api.github.com/repos/DevSlop/Pixi/contributors",
+ "subscribers_url": "https://api.github.com/repos/DevSlop/Pixi/subscribers",
+ "subscription_url": "https://api.github.com/repos/DevSlop/Pixi/subscription",
+ "commits_url": "https://api.github.com/repos/DevSlop/Pixi/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/DevSlop/Pixi/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/DevSlop/Pixi/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/DevSlop/Pixi/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/DevSlop/Pixi/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/DevSlop/Pixi/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/DevSlop/Pixi/merges",
+ "archive_url": "https://api.github.com/repos/DevSlop/Pixi/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/DevSlop/Pixi/downloads",
+ "issues_url": "https://api.github.com/repos/DevSlop/Pixi/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/DevSlop/Pixi/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/DevSlop/Pixi/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/DevSlop/Pixi/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/DevSlop/Pixi/labels{/name}",
+ "releases_url": "https://api.github.com/repos/DevSlop/Pixi/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/DevSlop/Pixi/deployments",
+ "created_at": "2018-04-27T17:49:11Z",
+ "updated_at": "2021-04-28T12:48:18Z",
+ "pushed_at": "2020-09-04T10:17:22Z",
+ "git_url": "git://github.com/DevSlop/Pixi.git",
+ "ssh_url": "git@github.com:DevSlop/Pixi.git",
+ "clone_url": "https://github.com/DevSlop/Pixi.git",
+ "svn_url": "https://github.com/DevSlop/Pixi",
+ "homepage": null,
+ "size": 19776,
+ "stargazers_count": 43,
+ "watchers_count": 43,
+ "language": "JavaScript",
+ "has_issues": true,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 39,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 25,
+ "license": {
+ "key": "apache-2.0",
+ "name": "Apache License 2.0",
+ "spdx_id": "Apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "node_id": "MDc6TGljZW5zZTI="
+ },
+ "forks": 39,
+ "open_issues": 25,
+ "watchers": 43,
+ "default_branch": "master"
+ },
+ "source": {
+ "id": 131328028,
+ "node_id": "MDEwOlJlcG9zaXRvcnkxMzEzMjgwMjg=",
+ "name": "Pixi",
+ "full_name": "DevSlop/Pixi",
+ "private": false,
+ "owner": {
+ "login": "DevSlop",
+ "id": 38781597,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjM4NzgxNTk3",
+ "avatar_url": "https://avatars.githubusercontent.com/u/38781597?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/DevSlop",
+ "html_url": "https://github.com/DevSlop",
+ "followers_url": "https://api.github.com/users/DevSlop/followers",
+ "following_url": "https://api.github.com/users/DevSlop/following{/other_user}",
+ "gists_url": "https://api.github.com/users/DevSlop/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/DevSlop/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/DevSlop/subscriptions",
+ "organizations_url": "https://api.github.com/users/DevSlop/orgs",
+ "repos_url": "https://api.github.com/users/DevSlop/repos",
+ "events_url": "https://api.github.com/users/DevSlop/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/DevSlop/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/DevSlop/Pixi",
+ "description": "The Pixi module is a MEAN Stack web app with wildly insecure APIs!",
+ "fork": false,
+ "url": "https://api.github.com/repos/DevSlop/Pixi",
+ "forks_url": "https://api.github.com/repos/DevSlop/Pixi/forks",
+ "keys_url": "https://api.github.com/repos/DevSlop/Pixi/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/DevSlop/Pixi/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/DevSlop/Pixi/teams",
+ "hooks_url": "https://api.github.com/repos/DevSlop/Pixi/hooks",
+ "issue_events_url": "https://api.github.com/repos/DevSlop/Pixi/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/DevSlop/Pixi/events",
+ "assignees_url": "https://api.github.com/repos/DevSlop/Pixi/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/DevSlop/Pixi/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/DevSlop/Pixi/tags",
+ "blobs_url": "https://api.github.com/repos/DevSlop/Pixi/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/DevSlop/Pixi/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/DevSlop/Pixi/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/DevSlop/Pixi/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/DevSlop/Pixi/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/DevSlop/Pixi/languages",
+ "stargazers_url": "https://api.github.com/repos/DevSlop/Pixi/stargazers",
+ "contributors_url": "https://api.github.com/repos/DevSlop/Pixi/contributors",
+ "subscribers_url": "https://api.github.com/repos/DevSlop/Pixi/subscribers",
+ "subscription_url": "https://api.github.com/repos/DevSlop/Pixi/subscription",
+ "commits_url": "https://api.github.com/repos/DevSlop/Pixi/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/DevSlop/Pixi/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/DevSlop/Pixi/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/DevSlop/Pixi/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/DevSlop/Pixi/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/DevSlop/Pixi/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/DevSlop/Pixi/merges",
+ "archive_url": "https://api.github.com/repos/DevSlop/Pixi/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/DevSlop/Pixi/downloads",
+ "issues_url": "https://api.github.com/repos/DevSlop/Pixi/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/DevSlop/Pixi/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/DevSlop/Pixi/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/DevSlop/Pixi/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/DevSlop/Pixi/labels{/name}",
+ "releases_url": "https://api.github.com/repos/DevSlop/Pixi/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/DevSlop/Pixi/deployments",
+ "created_at": "2018-04-27T17:49:11Z",
+ "updated_at": "2021-04-28T12:48:18Z",
+ "pushed_at": "2020-09-04T10:17:22Z",
+ "git_url": "git://github.com/DevSlop/Pixi.git",
+ "ssh_url": "git@github.com:DevSlop/Pixi.git",
+ "clone_url": "https://github.com/DevSlop/Pixi.git",
+ "svn_url": "https://github.com/DevSlop/Pixi",
+ "homepage": null,
+ "size": 19776,
+ "stargazers_count": 43,
+ "watchers_count": 43,
+ "language": "JavaScript",
+ "has_issues": true,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 39,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 25,
+ "license": {
+ "key": "apache-2.0",
+ "name": "Apache License 2.0",
+ "spdx_id": "Apache-2.0",
+ "url": "https://api.github.com/licenses/apache-2.0",
+ "node_id": "MDc6TGljZW5zZTI="
+ },
+ "forks": 39,
+ "open_issues": 25,
+ "watchers": 43,
+ "default_branch": "master"
+ },
+ "network_count": 39,
+ "subscribers_count": 0
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
new file mode 100644
index 0000000000..93b427d349
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
@@ -0,0 +1,82 @@
+[
+ {
+ "number": 111,
+ "created_at": "2021-05-17T14:55:01Z",
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/111",
+ "html_url": "https://github.com/hub4j-test-org/Pixi/security/code-scanning/111",
+ "state": "open",
+ "dismissed_by": null,
+ "dismissed_at": null,
+ "dismissed_reason": null,
+ "rule": {
+ "id": "js/unsafe-jquery-plugin",
+ "severity": "warning",
+ "description": "Unsafe jQuery plugin",
+ "name": "js/unsafe-jquery-plugin"
+ },
+ "tool": {
+ "name": "CodeQL",
+ "guid": null,
+ "version": "2.5.4"
+ },
+ "most_recent_instance": {
+ "ref": "refs/heads/master",
+ "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
+ "environment": "{\"language\":\"javascript\"}",
+ "state": "open",
+ "commit_sha": "b3cfb0474bb3d5b5cd499a17e448281abbd256d7",
+ "message": {
+ "text": "Potential XSS vulnerability in the '$.fn.tooltip' plugin."
+ },
+ "location": {
+ "path": "app/public/js/bootstrap.js",
+ "start_line": 3090,
+ "end_line": 3090,
+ "start_column": 27,
+ "end_column": 34
+ },
+ "classifications": []
+ },
+ "instances_url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/111/instances"
+ },
+ {
+ "number": 110,
+ "created_at": "2021-05-17T14:55:01Z",
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/110",
+ "html_url": "https://github.com/hub4j-test-org/Pixi/security/code-scanning/110",
+ "state": "open",
+ "dismissed_by": null,
+ "dismissed_at": null,
+ "dismissed_reason": null,
+ "rule": {
+ "id": "js/unsafe-jquery-plugin",
+ "severity": "warning",
+ "description": "Unsafe jQuery plugin",
+ "name": "js/unsafe-jquery-plugin"
+ },
+ "tool": {
+ "name": "CodeQL",
+ "guid": null,
+ "version": "2.5.4"
+ },
+ "most_recent_instance": {
+ "ref": "refs/heads/master",
+ "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
+ "environment": "{\"language\":\"javascript\"}",
+ "state": "open",
+ "commit_sha": "b3cfb0474bb3d5b5cd499a17e448281abbd256d7",
+ "message": {
+ "text": "Potential XSS vulnerability in the '$.fn.tooltip' plugin."
+ },
+ "location": {
+ "path": "app/public/js/bootstrap.js",
+ "start_line": 3086,
+ "end_line": 3086,
+ "start_column": 18,
+ "end_column": 25
+ },
+ "classifications": []
+ },
+ "instances_url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/110/instances"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-4.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-4.json
new file mode 100644
index 0000000000..93b427d349
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/repos_hub4j-test-org_pixi_code-scanning_alerts-4.json
@@ -0,0 +1,82 @@
+[
+ {
+ "number": 111,
+ "created_at": "2021-05-17T14:55:01Z",
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/111",
+ "html_url": "https://github.com/hub4j-test-org/Pixi/security/code-scanning/111",
+ "state": "open",
+ "dismissed_by": null,
+ "dismissed_at": null,
+ "dismissed_reason": null,
+ "rule": {
+ "id": "js/unsafe-jquery-plugin",
+ "severity": "warning",
+ "description": "Unsafe jQuery plugin",
+ "name": "js/unsafe-jquery-plugin"
+ },
+ "tool": {
+ "name": "CodeQL",
+ "guid": null,
+ "version": "2.5.4"
+ },
+ "most_recent_instance": {
+ "ref": "refs/heads/master",
+ "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
+ "environment": "{\"language\":\"javascript\"}",
+ "state": "open",
+ "commit_sha": "b3cfb0474bb3d5b5cd499a17e448281abbd256d7",
+ "message": {
+ "text": "Potential XSS vulnerability in the '$.fn.tooltip' plugin."
+ },
+ "location": {
+ "path": "app/public/js/bootstrap.js",
+ "start_line": 3090,
+ "end_line": 3090,
+ "start_column": 27,
+ "end_column": 34
+ },
+ "classifications": []
+ },
+ "instances_url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/111/instances"
+ },
+ {
+ "number": 110,
+ "created_at": "2021-05-17T14:55:01Z",
+ "url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/110",
+ "html_url": "https://github.com/hub4j-test-org/Pixi/security/code-scanning/110",
+ "state": "open",
+ "dismissed_by": null,
+ "dismissed_at": null,
+ "dismissed_reason": null,
+ "rule": {
+ "id": "js/unsafe-jquery-plugin",
+ "severity": "warning",
+ "description": "Unsafe jQuery plugin",
+ "name": "js/unsafe-jquery-plugin"
+ },
+ "tool": {
+ "name": "CodeQL",
+ "guid": null,
+ "version": "2.5.4"
+ },
+ "most_recent_instance": {
+ "ref": "refs/heads/master",
+ "analysis_key": ".github/workflows/codeql-analysis.yml:analyze",
+ "environment": "{\"language\":\"javascript\"}",
+ "state": "open",
+ "commit_sha": "b3cfb0474bb3d5b5cd499a17e448281abbd256d7",
+ "message": {
+ "text": "Potential XSS vulnerability in the '$.fn.tooltip' plugin."
+ },
+ "location": {
+ "path": "app/public/js/bootstrap.js",
+ "start_line": 3086,
+ "end_line": 3086,
+ "start_column": 18,
+ "end_column": 25
+ },
+ "classifications": []
+ },
+ "instances_url": "https://api.github.com/repos/hub4j-test-org/Pixi/code-scanning/alerts/110/instances"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/user-1.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/user-1.json
new file mode 100644
index 0000000000..039ef9bf05
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/__files/user-1.json
@@ -0,0 +1,46 @@
+{
+ "login": "akashRindhe",
+ "id": 14114123,
+ "node_id": "MDQ6VXNlcjE0MTE0MTIz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14114123?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/akashRindhe",
+ "html_url": "https://github.com/akashRindhe",
+ "followers_url": "https://api.github.com/users/akashRindhe/followers",
+ "following_url": "https://api.github.com/users/akashRindhe/following{/other_user}",
+ "gists_url": "https://api.github.com/users/akashRindhe/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/akashRindhe/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/akashRindhe/subscriptions",
+ "organizations_url": "https://api.github.com/users/akashRindhe/orgs",
+ "repos_url": "https://api.github.com/users/akashRindhe/repos",
+ "events_url": "https://api.github.com/users/akashRindhe/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/akashRindhe/received_events",
+ "type": "User",
+ "site_admin": false,
+ "name": "Akash Rindhe",
+ "company": null,
+ "blog": "",
+ "location": "Singapore",
+ "email": null,
+ "hireable": null,
+ "bio": null,
+ "twitter_username": null,
+ "public_repos": 10,
+ "public_gists": 0,
+ "followers": 0,
+ "following": 6,
+ "created_at": "2015-09-03T18:07:43Z",
+ "updated_at": "2021-05-18T02:04:49Z",
+ "private_gists": 0,
+ "total_private_repos": 4,
+ "owned_private_repos": 4,
+ "disk_usage": 25766,
+ "collaborators": 1,
+ "two_factor_authentication": true,
+ "plan": {
+ "name": "free",
+ "space": 976562499,
+ "collaborators": 0,
+ "private_repos": 10000
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/repos_hub4j-test-org_pixi-2.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/repos_hub4j-test-org_pixi-2.json
new file mode 100644
index 0000000000..3d6ed9491a
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/repos_hub4j-test-org_pixi-2.json
@@ -0,0 +1,47 @@
+{
+ "id": "9c8052bf-a6fd-45e8-b65e-c54d7075edc0",
+ "name": "repos_hub4j-test-org_pixi",
+ "request": {
+ "url": "/repos/hub4j-test-org/Pixi",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_hub4j-test-org_pixi-2.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Wed, 19 May 2021 13:28:48 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"798dc78bb4c7a5f7af29dd24986abff44807dbd0601e8a2e0b5768a9e86d236f\"",
+ "Last-Modified": "Mon, 17 May 2021 14:50:01 GMT",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4991",
+ "X-RateLimit-Reset": "1621433945",
+ "X-RateLimit-Used": "9",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "816A:2EE1:BD42CD:CF77D9:60A51290"
+ }
+ },
+ "uuid": "9c8052bf-a6fd-45e8-b65e-c54d7075edc0",
+ "persistent": true,
+ "insertionIndex": 2
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
new file mode 100644
index 0000000000..d7a775c4c9
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-3.json
@@ -0,0 +1,47 @@
+{
+ "id": "b0af49bf-af63-425a-83b5-2a65bc77e87e",
+ "name": "repos_hub4j-test-org_pixi_code-scanning_alerts",
+ "request": {
+ "url": "/repos/hub4j-test-org/Pixi/code-scanning/alerts?tool_name=CodeQL&per_page=2",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_hub4j-test-org_pixi_code-scanning_alerts-3.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Wed, 19 May 2021 13:28:49 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"eaffae955592b9800adbebbf37928d028724ebd57307d9afd767cd9f9df7fb7e\"",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4990",
+ "X-RateLimit-Reset": "1621433945",
+ "X-RateLimit-Used": "10",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "816A:2EE1:BD4320:CF7838:60A51290",
+ "Link": "; rel=\"next\", ; rel=\"last\""
+ }
+ },
+ "uuid": "b0af49bf-af63-425a-83b5-2a65bc77e87e",
+ "persistent": true,
+ "insertionIndex": 3
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-4.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-4.json
new file mode 100644
index 0000000000..fd76711943
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/repos_hub4j-test-org_pixi_code-scanning_alerts-4.json
@@ -0,0 +1,47 @@
+{
+ "id": "ea33cf87-3a85-41ac-8285-c2eb29db4460",
+ "name": "repos_hub4j-test-org_pixi_code-scanning_alerts",
+ "request": {
+ "url": "/repos/hub4j-test-org/Pixi/code-scanning/alerts?state=open&per_page=2",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_hub4j-test-org_pixi_code-scanning_alerts-4.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Wed, 19 May 2021 13:28:49 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"eaffae955592b9800adbebbf37928d028724ebd57307d9afd767cd9f9df7fb7e\"",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4989",
+ "X-RateLimit-Reset": "1621433945",
+ "X-RateLimit-Used": "11",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "816A:2EE1:BD4339:CF784E:60A51291",
+ "Link": "; rel=\"next\", ; rel=\"last\""
+ }
+ },
+ "uuid": "ea33cf87-3a85-41ac-8285-c2eb29db4460",
+ "persistent": true,
+ "insertionIndex": 4
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/user-1.json b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/user-1.json
new file mode 100644
index 0000000000..052e6c4692
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHCodeScanningAlertTest/wiremock/testListCodeScanningAlerts/mappings/user-1.json
@@ -0,0 +1,47 @@
+{
+ "id": "b9847f47-a1dd-4ab1-bac4-77dbd80c47cc",
+ "name": "user",
+ "request": {
+ "url": "/user",
+ "method": "GET",
+ "headers": {
+ "Accept": {
+ "equalTo": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
+ }
+ }
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "user-1.json",
+ "headers": {
+ "Server": "GitHub.com",
+ "Date": "Wed, 19 May 2021 13:28:47 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding, Accept, X-Requested-With"
+ ],
+ "ETag": "W/\"b3db1d8dfd0cef27934c732c74e2d774a7869d6c1b525a4b22e050220ee9aa33\"",
+ "Last-Modified": "Tue, 18 May 2021 02:04:49 GMT",
+ "X-OAuth-Scopes": "admin:enterprise, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages",
+ "X-Accepted-OAuth-Scopes": "",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4993",
+ "X-RateLimit-Reset": "1621433945",
+ "X-RateLimit-Used": "7",
+ "X-RateLimit-Resource": "core",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "0",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "816A:2EE1:BD4230:CF7737:60A5128E"
+ }
+ },
+ "uuid": "b9847f47-a1dd-4ab1-bac4-77dbd80c47cc",
+ "persistent": true,
+ "insertionIndex": 1
+}
\ No newline at end of file