Skip to content

Commit

Permalink
Merge pull request #131 from ruromero/npm-fix
Browse files Browse the repository at this point in the history
fix: broken links in report for npm
  • Loading branch information
ruromero authored Aug 29, 2023
2 parents c4634c9 + 98f13e0 commit f7adac4
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ private List<TransitiveDependencyReport> getTransitiveDependenciesReport(

List<TransitiveDependencyReport> result = new ArrayList<>();
start.transitive().stream()
.filter(Objects::nonNull)
.forEach(
d -> {
List<Issue> issues = request.issues().get(d.name());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public String fromDiGraph(GraphRequest req) throws JsonProcessingException {
}

private JsonNode addPackages(ObjectNode depGraph, DependencyTree tree) {
Set<com.redhat.exhort.api.PackageRef> allDeps = tree.getAll();
Set<PackageRef> allDeps = tree.getAll();
ObjectNode rootNode = createNode(tree.root(), allDeps);
ArrayNode nodes = mapper.createArrayNode().add(rootNode);
ArrayNode pkgs = mapper.createArrayNode().add(createPkg(tree.root()));
Expand Down
12 changes: 10 additions & 2 deletions src/main/java/com/redhat/exhort/model/DependencyTree.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;

import com.redhat.exhort.api.PackageRef;

Expand Down Expand Up @@ -66,8 +67,15 @@ public int count() {

public Set<PackageRef> getAll() {
Set<PackageRef> result = new HashSet<>(dependencies.keySet());
dependencies.values().forEach(d -> result.addAll(d.transitive()));
return result;
dependencies
.values()
.forEach(
d -> {
if (d.transitive() != null && !d.transitive().isEmpty()) {
result.addAll(d.transitive());
}
});
return result.stream().filter(Objects::nonNull).collect(Collectors.toSet());
}

public static Builder builder() {
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/freemarker/templates/generated/main.js

Large diffs are not rendered by default.

29 changes: 22 additions & 7 deletions ui/src/utils/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,24 @@ export const SYNK_SIGNUP_URL =
const MAVEN_PREFIX = 'pkg:maven';
const MAVEN_URL = 'https://central.sonatype.com/artifact/';

const NPM_PREFIX = 'pkg:npm';
const NPM_URL = 'https://www.npmjs.com/package/';

export const extractDependencyName = (name: string) => {
if (name.startsWith(MAVEN_PREFIX)) {
return name
.substring(0, name.lastIndexOf('@')) // Remove version
.substring(MAVEN_PREFIX.length + 1, name.length) // Remove package prefix
.replace(/\//g, ':');
} else {
return name;
}
if (name.startsWith(NPM_PREFIX)) {
return name
.substring(0, name.lastIndexOf('@')) // Remove version
.substring(NPM_PREFIX.length + 1, name.length) // Remove package prefix
.replace(/\//g, ':');
}
return name;

};

export const extractDependencyUrl = (name: string) => {
Expand All @@ -23,17 +32,23 @@ export const extractDependencyUrl = (name: string) => {
.replace(/@([^@]*)$/, '/$1') // Replace last '@' by '/'
.substring(MAVEN_PREFIX.length + 1, name.length) // Remove package prefix
);
} else {
return name;
}
if (name.startsWith(NPM_PREFIX)) {
return (
NPM_URL +
name
.replace(/@([^@]*)$/, '/v/$1') // Replace last '@' by '/v/'
.substring(NPM_PREFIX.length + 1, name.length + 2) // Remove package prefix
);
}
return name;
};

export const extractDependencyVersion = (name: string) => {
if (name.startsWith(MAVEN_PREFIX)) {
if (name.startsWith(MAVEN_PREFIX) || name.startsWith(NPM_PREFIX)) {
return name.substring(name.lastIndexOf('@') + 1, name.length);
} else {
return name;
}
return name;
};

export const issueLink = (provider: 'snyk' | 'oss-index', issueId: string) => {
Expand Down

0 comments on commit f7adac4

Please sign in to comment.