in src/main/java/jetbrains/buildServer/investigationsAutoAssigner/representation/AutoAssignerDetailsController.java [66:127]
protected ModelAndView doHandle(@NotNull final HttpServletRequest request,
@NotNull final HttpServletResponse response) {
final long buildId = Long.parseLong(request.getParameter("buildId"));
final int testId = Integer.parseInt(request.getParameter("testId"));
final SBuild build = myServer.findBuildInstanceById(buildId);
if (build == null ||
!userHasPermissions(build) ||
!myCustomParameters.isDefaultSilentModeEnabled(build)) {
return null;
}
@Nullable
Branch branch = build.getBranch();
boolean isDefaultBranch = branch == null || branch.isDefaultBranch();
STestRun sTestRun = build.getBuildStatistics(ALL_TESTS_NO_DETAILS).findTestByTestRunId(testId);
if (sTestRun == null) {
return null;
}
boolean assignShouldNotBeShow = !isDefaultBranch ||
myFlakyTestDetector.isFlaky(sTestRun.getTest().getTestNameId()) ||
isUnderInvestigation(build, sTestRun.getTest());
if (assignShouldNotBeShow &&
!TeamCityProperties.getBoolean(SHOULD_PERSIST_FILTERED_TESTS_DESCRIPTION)) {
return null;
}
final FirstFailedInFixedInCalculator.FFIData ffiData = myStatisticsProvider.calculateFFIData(sTestRun);
@Nullable SBuild firstFailedBuild = myServer.findBuildInstanceById(ffiData.getFirstFailedInId());
Responsibility responsibility = myAssignerArtifactDao.get(firstFailedBuild, sTestRun);
if (responsibility != null) {
final ModelAndView modelAndView = new ModelAndView(myDynamicTestDetailsExtensionPath);
boolean isFilteredTestDescription = TeamCityProperties.getBoolean(SHOULD_PERSIST_FILTERED_TESTS_DESCRIPTION) &&
responsibility.getDescription().startsWith(Constants.ASSIGNEE_FILTERED_DESCRIPTION_PREFIX);
if (assignShouldNotBeShow && !isFilteredTestDescription) {
return null;
}
modelAndView.getModel().put("isFilteredDescription", isFilteredTestDescription);
modelAndView.getModel().put("userId", responsibility.getUser().getId());
modelAndView.getModel().put("userName", responsibility.getUser().getDescriptiveName());
String shownDescription = responsibility.getDescription();
if (firstFailedBuild != null && firstFailedBuild.getBuildId() != buildId && shownDescription.endsWith("build")) {
shownDescription = shownDescription + " with the first test failure";
}
modelAndView.getModel().put("shownDescription", shownDescription);
modelAndView.getModel().put("investigationDescription", responsibility.getDescription());
modelAndView.getModel().put("buildId", buildId);
modelAndView.getModel().put("projectId", build.getProjectId());
modelAndView.getModel().put("test", sTestRun.getTest());
modelAndView.getModel().put("myCssPath", request.getContextPath() + myCssPath);
myStatisticsReporter.reportShownButton();
return modelAndView;
}
return null;
}