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 cb42f880..0ad84cb7 100644 --- a/agent/src/main/java/com/appland/appmap/util/GitUtil.java +++ b/agent/src/main/java/com/appland/appmap/util/GitUtil.java @@ -99,13 +99,20 @@ public Repository getRepository() { public String getRepositoryURL() { try { List remotes = git.remoteList().call(); + if (remotes.isEmpty()) { + return null; + } 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 null; + } return uris.get(0).toASCIIString(); } catch (GitAPIException e) { logger.warn(e); } - return ""; + return null; } public String getBranch() {