in src/main/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitUploadPack.java [58:83]
public void onBeginNegotiate(
Repository repository,
Project project,
String remoteHost,
UploadPack up,
Collection<? extends ObjectId> wants,
int cntOffered)
throws ValidationException {
String key;
CurrentUser u = user.get();
if (u.isIdentifiedUser()) {
key = Integer.toString(u.asIdentifiedUser().getAccountId().get());
} else {
key = remoteHost;
}
try {
RateLimiter limiter = uploadPackPerHour.get(key);
if (limiter != null && !limiter.acquirePermit()) {
throw new RateLimitException(
MessageFormat.format(limitExceededMsgFormat, limiter.permitsPerHour()));
}
} catch (ExecutionException e) {
log.warn("Cannot get rate limits for {}: {}", key, e);
}
}