in src/main/java/jetbrains/buildServer/investigationsAutoAssigner/heuristics/PreviousResponsibleHeuristic.java [37:83]
public HeuristicResult findResponsibleUser(@NotNull HeuristicContext heuristicContext) {
HeuristicResult result = new HeuristicResult();
SBuild sBuild = heuristicContext.getBuild();
SProject sProject = heuristicContext.getProject();
Iterable<STestRun> sTestRuns = heuristicContext.getTestRuns();
HashMap<Long, User> testId2Responsible = myInvestigationsManager.findInAudit(sTestRuns, sProject);
for (STestRun sTestRun : heuristicContext.getTestRuns()) {
STest sTest = sTestRun.getTest();
User responsibleUser = myInvestigationsManager.findPreviousResponsible(sProject, sBuild, sTest);
if (responsibleUser == null) {
responsibleUser = testId2Responsible.get(sTest.getTestNameId());
}
if (shouldSkip(responsibleUser, heuristicContext)) {
continue;
}
if (responsibleUser != null) {
String description = String.format("was previously responsible for the test %s", sTest.getName());
result.addResponsibility(sTestRun, new Responsibility(responsibleUser, description));
}
}
for (BuildProblem buildProblem : heuristicContext.getBuildProblems()) {
String buildProblemType = buildProblem.getBuildProblemData().getType();
if (!BuildProblemsFilter.supportedEverywhereTypes.contains(buildProblemType)) {
continue;
}
User responsibleUser = myInvestigationsManager.findPreviousResponsible(sProject, sBuild, buildProblem);
if (shouldSkip(responsibleUser, heuristicContext)) {
continue;
}
if (responsibleUser != null) {
String description = String.format("was previously responsible for the problem %s`", buildProblemType);
result.addResponsibility(buildProblem, new Responsibility(responsibleUser, description));
}
}
return result;
}