in src/main/java/com/googlesource/gerrit/plugins/lfs/auth/LfsSshAuth.java [47:78]
public String authenticate(CurrentUser user, List<String> args) throws Failure {
if (args.size() != 2) {
throw new UnloggedFailure(1, "Unexpected number of arguments");
}
try {
URL url = new URL(canonicalWebUrl);
String path = url.getPath();
String project = args.get(0);
if (project.startsWith("/")) {
project = project.substring(1);
}
String operation = args.get(1);
StringBuilder href =
new StringBuilder(url.getProtocol())
.append("://")
.append(url.getAuthority())
.append(path)
.append(path.endsWith("/") ? "" : "/")
.append(project)
.append("/info/lfs");
LfsSshRequestAuthorizer.SshAuthInfo info = auth.generateAuthInfo(user, project, operation);
ExpiringAction action = new ExpiringAction(href.toString(), info);
return gson.toJson(action);
} catch (MalformedURLException e) {
throw new Failure(
1,
"Server configuration error: "
+ "forming Git LFS endpoint URL from canonicalWebUrl ["
+ canonicalWebUrl
+ "] failed.");
}
}