} else {
filePath = java.net.URLDecoder.decode(filePath, "UTF-8");
}
}
if (projectName != null) {
NameKey projName = NameKey.parse(projectName);
ProjectControl control;
try {
control = projControlFactory.controlFor(projName);
if (!control.isVisible()) {
log.debug("Project not visible!");
resp.sendError(HttpServletResponse.SC_UNAUTHORIZED, "You need to be logged in to see private projects");
return;
}
} catch (NoSuchProjectException e1) {
resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "No such project exists.");
}
}
if (projectName == null || refName == null || filePath == null) {
resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "You need to provide a projectName, refName and filePath.");
return;
} else {
NameKey projName = NameKey.parse(projectName);
Repository repo = repoManager.openRepository(projName);
Ref head = repo.getRef(refName);
RevWalk walk = new RevWalk(repo);
RevCommit commit = walk.parseCommit(head.getObjectId());
RevTree tree = commit.getTree();