protected WebHookHistoryItem(WebHookConfig whc, WebHookExecutionStats webHookExecutionStats, SBuildType sBuildType, WebHookErrorStatus errorStatus) { this.projectId = sBuildType.getProjectId(); this.buildTypeId = sBuildType.getBuildTypeId(); this.buildTypeName = sBuildType.getName(); this.buildTypeExternalId = sBuildType.getExternalId(); this.webHookConfig = whc; this.webHookExecutionStats = webHookExecutionStats; this.timestamp = findTimeStamp(webHookExecutionStats); this.webhookErrorStatus = checkAndSetHttpStatusInfo(errorStatus); }
@Override public void buildFinished(SRunningBuild build) { super.buildFinished(build); SBuildType type = build.getBuildType(); if (type != null) { CustomDataStorage checkConfigChanges = type.getCustomDataStorage(CustomDataStorageKeys.CHECKOUT_CONFIGURATION_CHANGE_HISTORY); String oldCheckoutConfigurationName = checkConfigChanges.getValue(type.getBuildTypeId()); if (StringUtils.isNotBlank(oldCheckoutConfigurationName)) { type.setCheckoutType(BuildTypeDescriptor.CheckoutType.valueOf(oldCheckoutConfigurationName)); checkConfigChanges.putValue(type.getBuildTypeId(), null); } } }
public static String getInternalBuildId(SBuildType buildType){ try { return buildType.getInternalId(); } catch (NoSuchMethodError ex) { return buildType.getBuildTypeId(); } }
public static String getExternalBuildId(SBuildType buildType){ try { return buildType.getExternalId(); } catch (NoSuchMethodError ex) { return buildType.getBuildTypeId(); } }
/** * Used by RepsonsiblityChanged. * Therefore, does not have access to a specific build instance. * @param server * @param buildType * @param state */ private void populateCommonContent(VariableResolverFactory variableResolverFactory, SBuildServer server, SBuildType buildType, BuildStateEnum state, Map<String,String> templates) { setNotifyType(state.getShortName()); setBuildRunners(buildType.getBuildRunners()); setBuildFullName(buildType.getFullName()); setBuildName(buildType.getName()); setBuildTypeId(TeamCityIdResolver.getBuildTypeId(buildType)); setBuildInternalTypeId(TeamCityIdResolver.getInternalBuildId(buildType)); setBuildExternalTypeId(TeamCityIdResolver.getExternalBuildId(buildType)); setProjectName(buildType.getProjectName()); setProjectId(TeamCityIdResolver.getProjectId(buildType.getProject())); setProjectInternalId(TeamCityIdResolver.getInternalProjectId(buildType.getProject())); setProjectExternalId(TeamCityIdResolver.getExternalProjectId(buildType.getProject())); setRootUrl(StringUtils.stripTrailingSlash(server.getRootUrl()) + "/"); setBuildStatusUrl(getRootUrl() + "viewLog.html?buildTypeId=" + buildType.getBuildTypeId() + "&buildId=lastFinished"); setBuildStateDescription(state.getDescriptionSuffix()); }
@Override protected void fillModel(Map<String,Object> model, HttpServletRequest request, @NotNull SBuildType buildType, SUser user) { List<ProjectAndBuildWebhooksBean> projectAndParents = new ArrayList<>(); List<SProject> parentProjects = buildType.getProject().getProjectPath(); for (SProject projectParent : parentProjects){ projectAndParents.add( ProjectAndBuildWebhooksBean.newInstance( projectParent, (WebHookProjectSettings) this.myProjectSettingsManager.getSettings(projectParent.getProjectId(), "webhooks"), buildType, user.isPermissionGrantedForProject(projectParent.getProjectId(), Permission.EDIT_PROJECT), myWebAddressTransformer ) ); } model.put("projectAndParents", projectAndParents); model.put("projectId", buildType.getProject().getProjectId()); model.put("projectExternalId", TeamCityIdResolver.getExternalProjectId(buildType.getProject())); model.put("projectName", buildType.getProject().getName()); model.put("buildTypeId", buildType.getBuildTypeId()); model.put("buildExternalId", TeamCityIdResolver.getExternalBuildId(buildType)); model.put("buildName", buildType.getName()); model.put("items", myWebHookHistoryRepository.findHistoryItemsForBuildType(buildType.getBuildTypeId(), 1, 50)); }
when(projectSettingsManager.getSettings(sRunningBuild.getProjectId(), "webhooks")).thenReturn(webHookProjectSettings); when(build2.getBuildTypeId()).thenReturn("bt2"); when(build2.getInternalId()).thenReturn("bt2"); when(build2.getName()).thenReturn("This is Build 2"); when(build3.getBuildTypeId()).thenReturn("bt3"); when(build3.getInternalId()).thenReturn("bt3"); when(build3.getName()).thenReturn("This is Build 3"); ((MockSProject) sProject).addANewBuildTypeToTheMock(build2); ((MockSProject) sProject).addANewBuildTypeToTheMock(build3);
public static ProjectHistoryBean getBuildHistory(SBuildType type) { Date now = new Date(); List<ProjectHistoryItemBean> finishedBuilds = new ArrayList<>(); List<SFinishedBuild> builds = type.getHistory(); for (int i = 0; i < builds.size(); i++) { finishedBuilds.add(ProjectHistoryItemBean.build(now, builds.get(i))); if (i > MAX_BUILDS_PER_BUILD_TYPE){ break; } } return new ProjectHistoryBean(type.getProjectId(), type.getBuildTypeId(), finishedBuilds); }
/** * Used by RepsonsiblityChanged. * Therefore, does not have access to a specific build instance. * @param server * @param buildType * @param state */ private void populateCommonContent(SBuildServer server, SBuildType buildType, BuildStateEnum state) { setBuildFullName(buildType.getFullName()); setBuildName(buildType.getName()); setBuildTypeId(TeamCityIdResolver.getBuildTypeId(buildType)); setBuildStatusUrl(server.getRootUrl() + "/viewLog.html?buildTypeId=" + buildType.getBuildTypeId() + "&buildId=lastFinished"); }
private static void addSlackNotificationConfigHolder(ProjectSlackNotificationsBean bean, List<SBuildType> projectBuildTypes, SlackNotificationConfig config, SlackNotificationMainSettings mainSettings) { SlacknotificationConfigAndBuildTypeListHolder holder = new SlacknotificationConfigAndBuildTypeListHolder(config, mainSettings); for (SBuildType sBuildType : projectBuildTypes){ holder.addSlackNotificationBuildType(new SlacknotificationBuildTypeEnabledStatusBean( sBuildType.getBuildTypeId(), sBuildType.getName(), config.isEnabledForBuildType(sBuildType) ) ); } bean.slackNotificationList.put(holder.getUniqueKey(), holder); } }
public String getBuildTypeId() { return this.sBuildType.getBuildTypeId(); }
public static ProjectAndBuildSlacknotificationsBean newInstance (SProject project, SlackNotificationProjectSettings settings, SBuildType sBuild) { ProjectAndBuildSlacknotificationsBean bean = new ProjectAndBuildSlacknotificationsBean(); bean.project = project; bean.slackNotificationProjectSettings = settings; bean.projectSlacknotifications = settings.getProjectSlackNotificationsAsList(); bean.buildSlacknotifications = new ArrayList<BuildSlacknotificationsBean>(); if (sBuild != null && sBuild.getProjectId().equals(project.getProjectId())){ bean.buildSlacknotifications.add(new BuildSlacknotificationsBean(sBuild, settings.getBuildSlackNotificationsAsList(sBuild))); } return bean; }
SBuildType sBuildType = TeamCityIdResolver.findBuildTypeById(this.myServer.getProjectManager(), request.getParameter("buildTypeId")); if (sBuildType != null){ SProject project = sBuildType.getProject(); if (project != null){ params.put("projectExternalId", TeamCityIdResolver.getExternalProjectId(project)); params.put("haveBuild", "true"); params.put("buildName", sBuildType.getName()); params.put("buildExternalId", TeamCityIdResolver.getExternalBuildId(sBuildType)); params.put("buildTypeList", project.getBuildTypes());
public TemplateNotFoundException(BuildStateEnum buildState, SBuildType buildType, String templateId, String nonBranchOrBranch) { super("Template '" + templateId + "' was not found for build state '" + buildState.getShortName() + "'", TEMPLATE_NOT_FOUND_ERROR_CODE); this.buildState = buildState; this.projectId = buildType.getProjectId(); this.buildTypeId = buildType.getInternalId(); this.templateFormat = ""; this.templateId = templateId; this.nonBranchOrBranch = nonBranchOrBranch; }
private void addBuildTypeData(WebHookHistoryItem item) { item.setBuildTypeName(myProjectManager.findBuildTypeById(item.getBuildTypeId()).getName()); item.setBuildTypeExternalId(myProjectManager.findBuildTypeById(item.getBuildTypeId()).getExternalId()); }
public String getBuildName(){ return sBuildType.getName(); }
@Override public void fillModel(@NotNull Map<String, Object> model, @NotNull HttpServletRequest request, @NotNull SBuildType buildType, @Nullable SUser user) { String buildTypeId = buildType.getBuildTypeId(); List<SBuildRunnerDescriptor> buildRunner = getReleaseManagementRunners(buildType); if (buildRunner.isEmpty()) { VcsRootInstance instance = buildType.getVcsRootInstances().get(0); managementConfig.setGitVcs(instance.getVcsName().equals("jetbrains.git")); managementConfig.setSvnVcs(instance.getVcsName().equals("svn"));
BuildStateEnum buildState) { setBuildResult(sRunningBuild, previousBuild, buildState); setBuildFullName(sRunningBuild.getBuildType().getFullName()); setBuildName(sRunningBuild.getBuildType().getName()); if (sRunningBuild.getTriggeredBy().getUser() != null) { setTriggeredBySlackUserId(sRunningBuild.getTriggeredBy().getUser().getPropertyValue(SlackNotificator.USERID_KEY)); setBuildDescriptionWithLinkSyntax(String.format("<" + getBuildStatusUrl() + "|" + getBuildResult() + " - " + sRunningBuild.getBuildType().getFullName() + " #" + sRunningBuild.getBuildNumber() + branchSuffix + ">"));
BuildTypeDescriptor.CheckoutType existingCheckType = buildType.getCheckoutType(); if (!BuildTypeDescriptor.CheckoutType.ON_AGENT.equals(existingCheckType)) { if (buildType.isTemplateBased()) { errors.addError("runError", "For Release Management to work the checkout type must be 'On Agent'. Please change the checkout type in template or detach template for automatic change."); errors.serialize(responseElement); return; buildType.setCheckoutType(BuildTypeDescriptor.CheckoutType.ON_AGENT); CustomDataStorage checkChangeHistory = buildType.getCustomDataStorage(CustomDataStorageKeys.CHECKOUT_CONFIGURATION_CHANGE_HISTORY); checkChangeHistory.putValue(buildTypeId, existingCheckType.name());
public static String getExternalBuildIdOrNull(SBuildType buildType){ try { return buildType.getExternalId(); } catch (NoSuchMethodError ex) { return null; } }