From 6287d4ef8ff8ae61e44d6b044fb2df3b7bf953eb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 5 May 2026 18:47:33 +0000 Subject: [PATCH 1/3] Initial plan From 5a406a922f2c83e1b495d192788af1807f969775 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 5 May 2026 18:50:54 +0000 Subject: [PATCH 2/3] Fix IndexOutOfBoundsException in GitUtil.getRepositoryURL when no remotes exist Agent-Logs-Url: https://github.com/getappmap/appmap-java/sessions/2575e3fc-ec41-4655-ab8e-0d6c7f3670b7 Co-authored-by: kgilpin <86395+kgilpin@users.noreply.github.com> --- agent/src/main/java/com/appland/appmap/util/GitUtil.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/agent/src/main/java/com/appland/appmap/util/GitUtil.java b/agent/src/main/java/com/appland/appmap/util/GitUtil.java index cb42f880..36cd0a52 100644 --- a/agent/src/main/java/com/appland/appmap/util/GitUtil.java +++ b/agent/src/main/java/com/appland/appmap/util/GitUtil.java @@ -99,8 +99,15 @@ public Repository getRepository() { public String getRepositoryURL() { try { List remotes = git.remoteList().call(); + if (remotes.isEmpty()) { + return ""; + } Optional originConfig = remotes.stream().filter(r -> r.getName().equals("origin")).findFirst(); - List uris = originConfig.isPresent() ? originConfig.get().getURIs() : remotes.get(0).getURIs(); + RemoteConfig remote = originConfig.orElseGet(() -> remotes.get(0)); + List uris = remote.getURIs(); + if (uris.isEmpty()) { + return ""; + } return uris.get(0).toASCIIString(); } catch (GitAPIException e) { logger.warn(e); From 5956839f6665ade2bed844455831c56b4f6d7cba Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 5 May 2026 19:01:56 +0000 Subject: [PATCH 3/3] Return null from getRepositoryURL when no remotes; skip writing repository key in serializer Agent-Logs-Url: https://github.com/getappmap/appmap-java/sessions/9269e403-28ed-4394-be5f-17ca657e822a Co-authored-by: kgilpin <86395+kgilpin@users.noreply.github.com> --- .../java/com/appland/appmap/record/AppMapSerializer.java | 7 +++++-- agent/src/main/java/com/appland/appmap/util/GitUtil.java | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/agent/src/main/java/com/appland/appmap/record/AppMapSerializer.java b/agent/src/main/java/com/appland/appmap/record/AppMapSerializer.java index 7d7959d8..e1732b1c 100644 --- a/agent/src/main/java/com/appland/appmap/record/AppMapSerializer.java +++ b/agent/src/main/java/com/appland/appmap/record/AppMapSerializer.java @@ -185,8 +185,11 @@ private void writeMetadata(GitUtil git, Metadata metadata) throws IOException { this.json.writeKey("git"); this.json.startObject(); { - this.json.writeKey("repository"); - this.json.writeValue(git.getRepositoryURL()); + String repositoryURL = git.getRepositoryURL(); + if (repositoryURL != null) { + this.json.writeKey("repository"); + this.json.writeValue(repositoryURL); + } this.json.writeKey("branch"); this.json.writeValue(git.getBranch()); this.json.writeKey("commit"); diff --git a/agent/src/main/java/com/appland/appmap/util/GitUtil.java b/agent/src/main/java/com/appland/appmap/util/GitUtil.java index 36cd0a52..0ad84cb7 100644 --- a/agent/src/main/java/com/appland/appmap/util/GitUtil.java +++ b/agent/src/main/java/com/appland/appmap/util/GitUtil.java @@ -100,19 +100,19 @@ public String getRepositoryURL() { try { List remotes = git.remoteList().call(); if (remotes.isEmpty()) { - return ""; + return null; } Optional originConfig = remotes.stream().filter(r -> r.getName().equals("origin")).findFirst(); RemoteConfig remote = originConfig.orElseGet(() -> remotes.get(0)); List uris = remote.getURIs(); if (uris.isEmpty()) { - return ""; + return null; } return uris.get(0).toASCIIString(); } catch (GitAPIException e) { logger.warn(e); } - return ""; + return null; } public String getBranch() {