in src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocWebLink.java [96:133]
public String getFileUrl(String projectName, String revision, String fileName, boolean framed) {
FormatterProvider formatter = formatters.get(projectName, fileName);
if (formatter == null) {
return null;
}
Project.NameKey p = new Project.NameKey(projectName);
try (Repository repo = repoManager.openRepository(p)) {
ObjectId revId = repo.resolve(revision);
if (revId == null) {
return null;
}
Resource rsc = docCache.get(formatter, p, fileName, revId, null, null);
if (rsc != Resource.NOT_FOUND) {
StringBuilder url = new StringBuilder();
if (framed) {
url.append("#/x/");
} else {
url.append("plugins/");
}
url.append(pluginName);
url.append(XDocServlet.PATH_PREFIX);
url.append(Url.encode(projectName));
if (revision != null && !Constants.HEAD.equals(revision)) {
url.append("/rev/");
url.append(Url.encode(revision));
}
url.append("/");
url.append(fileName);
return url.toString();
} else {
return null;
}
} catch (IOException e) {
log.error("Failed to check for project documentation", e);
return null;
}
}