@Override protected void fillModel(Map<String,Object> model, HttpServletRequest request, @NotNull SProject project, SUser user) { List<ProjectAndBuildWebhooksBean> projectAndParents = new ArrayList<>(); List<SProject> parentProjects = project.getProjectPath(); model.put("permissionError", ""); for (SProject projectParent : parentProjects){ projectAndParents.add( ProjectAndBuildWebhooksBean.newInstance( projectParent, (WebHookProjectSettings) this.myProjectSettingsManager.getSettings(projectParent.getProjectId(), "webhooks"), null, user.isPermissionGrantedForProject(projectParent.getProjectId(), Permission.EDIT_PROJECT), myWebAddressTransformer ) ); } model.put("projectAndParents", projectAndParents); model.put("projectId", project.getProjectId()); model.put("projectExternalId", TeamCityIdResolver.getExternalProjectId(project)); model.put("projectName", project.getName()); model.put("items", myWebHookHistoryRepository.findHistoryItemsForProject(project.getProjectId(), 1, 50)); }
/** * Finds builds that belong the referenced project. Uses new method getOwnBuildTypes() if available. * Does not find builds in sub-projects. * @param project * @return List of BuildTypes corresponding to what is configured in the project. */ public static List<SBuildType> getOwnBuildTypes(SProject project) { try { return project.getOwnBuildTypes(); } catch (NoSuchMethodError ex){ return project.getBuildTypes(); } }
public static String getExternalProjectId(SProject project){ try { return project.getExternalId(); } catch (NoSuchMethodError ex) { return project.getProjectId(); } }
private String getSensibleProjectName(SProject project){ if (project.getProjectId().equals("_Root")) { return project.getProjectId(); } return project.getName(); } }
public static String getInternalProjectId(SProject project){ return project.getProjectId(); }
mySettings.getSettings(project.getProjectId(), SLACK_NOTIFICATIONS); params.put("hasPermission", myUser.isPermissionGrantedForProject(project.getProjectId(), Permission.EDIT_PROJECT)); params.put(PROJECT_ID, project.getProjectId()); params.put("buildTypeList", project.getBuildTypes()); params.put("projectExternalId", TeamCityIdResolver.getExternalProjectId(project)); params.put("projectName", project.getName()); mySettings.getSettings(project.getProjectId(), SLACK_NOTIFICATIONS); params.put("hasPermission", myUser.isPermissionGrantedForProject(project.getProjectId(), Permission.EDIT_PROJECT)); params.put(PROJECT_ID, project.getProjectId()); params.put("haveProject", "true"); params.put("projectName", project.getName()); 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()); params.put(NO_SLACK_NOTIFICATIONS, configs.isEmpty()); params.put(SLACK_NOTIFICATIONS, !configs.isEmpty());
&& (myUser.isPermissionGrantedForProject(myProject.getProjectId(), Permission.EDIT_PROJECT))){ if ((request.getParameter("submitAction") != null ) && (request.getParameter("submitAction").equals("removeWebHook")) && (request.getParameter("removedWebHookId") != null)){ WebHookUpdateResult result = projSettings.deleteWebHook(request.getParameter("removedWebHookId"), myProject.getProjectId()); if(result.isUpdated()){ myProject.persist(); params.put(PARAMS_MESSAGES_KEY, "<errors /><webhook action='delete' id='" + result.getWebHookConfig().getUniqueKey() + "'/>"); } else { WebHookUpdateResult result = projSettings.addNewWebHook(myProject.getProjectId(), myProject.getExternalId(), request.getParameter("URL"), enabled, states,request.getParameter("payloadFormat"), request.getParameter("payloadTemplate"), buildTypeAll, buildTypeSubProjects, buildTypes, webHookAuthConfig); if(result.isUpdated()){ myProject.persist(); params.put(PARAMS_MESSAGES_KEY, "<errors /><webhook action='new' id='" + result.getWebHookConfig().getUniqueKey() + "'/>"); } else { WebHookUpdateResult result = projSettings.updateWebHook(myProject.getProjectId(),request.getParameter("webHookId"), request.getParameter("URL"), enabled, states, request.getParameter("payloadFormat"), request.getParameter("payloadTemplate"), buildTypeAll, buildTypeSubProjects, buildTypes, webHookAuthConfig); if(result.isUpdated()){ myProject.persist(); params.put(PARAMS_MESSAGES_KEY, "<errors /><webhook action='update' id='" + result.getWebHookConfig().getUniqueKey() + "'/>"); } else { params.put("projectId", project.getProjectId()); params.put("projectExternalId", TeamCityIdResolver.getExternalProjectId(project));
List<SProject> projects = new ArrayList<>(); SProject myProject = myBuildServer.getProjectManager().findProjectById(projectId); projects.addAll(myProject.getProjectPath()); for (SProject project : projects){ WebHookProjectSettings projSettings = (WebHookProjectSettings) mySettings.getSettings(project.getProjectId(), WEBHOOKS_SETTINGS_ATTRIBUTE_NAME); if (projSettings.isEnabled()){ for (WebHookConfig whc : projSettings.getWebHooksConfigs()){ if (whc.isEnabledForSubProjects() == false && !myProject.getProjectId().equals(project.getProjectId())){ + ":: subprojects not enabled. myProject is: " + myProject.getProjectId() + ". webhook project is: " + project.getProjectId()); whc.setProjectExternalId(project.getExternalId()); whc.setProjectInternalId(project.getProjectId()); configs.add(whc); } else {
&& (myUser.isPermissionGrantedForProject(myProject.getProjectId(), Permission.EDIT_PROJECT))){ if ((request.getParameter(SUBMIT_ACTION) != null ) && ("removeSlackNotification".equals(request.getParameter(SUBMIT_ACTION))) && (request.getParameter("removedSlackNotificationId") != null)){ projSettings.deleteSlackNotification(request.getParameter("removedSlackNotificationId"), myProject.getProjectId()); if(projSettings.updateSuccessful()){ myProject.persist(); params.put(MESSAGES, ERRORS_TAG); } else { projSettings.addNewSlackNotification(myProject.getProjectId(), request.getParameter("token"), request.getParameter(CHANNEL), request.getParameter("team"), enabled, states, buildTypeAll, buildTypeSubProjects, buildTypes, mentionChannelEnabled, mentionSlackUserEnabled, mentionHereEnabled, mentionWhoTriggeredEnabled); if(projSettings.updateSuccessful()){ myProject.persist(); params.put(MESSAGES, ERRORS_TAG); } else { projSettings.updateSlackNotification(myProject.getProjectId(), request.getParameter("token"), request.getParameter(SLACK_NOTIFICATION_ID), request.getParameter(CHANNEL), enabled, states, buildTypeAll, buildTypeSubProjects, buildTypes, mentionChannelEnabled, mentionSlackUserEnabled, mentionHereEnabled, mentionWhoTriggeredEnabled, content); if(projSettings.updateSuccessful()){ myProject.persist(); params.put(MESSAGES, ERRORS_TAG); } else { params.put(PROJECT_ID, project.getProjectId()); params.put("projectExternalId", TeamCityIdResolver.getExternalProjectId(project)); params.put("projectName", project.getName());
List<SProject> projects = new ArrayList<SProject>(); SProject myProject = myBuildServer.getProjectManager().findProjectById(projectId); projects.addAll(myProject.getProjectPath()); for (SProject project : projects){ SlackNotificationProjectSettings projSettings = (SlackNotificationProjectSettings) mySettings.getSettings(project.getProjectId(), SLACKNOTIFICATIONS_SETTINGS_ATTRIBUTE_NAME); if (projSettings.isEnabled()){ for (SlackNotificationConfig whc : projSettings.getSlackNotificationsConfigs()){ if (whc.isEnabledForSubProjects() == false && !myProject.getProjectId().equals(project.getProjectId())){ + ":: subprojects not enabled. myProject is: " + myProject.getProjectId() + ". slacknotifications project is: " + project.getProjectId());
public static ProjectHistoryBean getProjectHistory(SProject project) { Date now = new Date(); List<ProjectHistoryItemBean> finishedBuilds = new ArrayList<>(); List<SBuildType> buildTypes = project.getOwnBuildTypes(); for (SBuildType type : buildTypes){ 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(project.getProjectId(), finishedBuilds); }
public static String getExternalProjectIdOrNull(SProject project){ try { return project.getExternalId(); } catch (NoSuchMethodError ex) { return null; } }
@Override protected void fillModel(Map<String, Object> model, HttpServletRequest httpServletRequest, SProject sProject, SUser sUser) { SlackProjectSettings slackProjectSettings = (SlackProjectSettings) projectSettingsManager.getSettings(sProject.getProjectId(), SlackProjectSettingsFactory.SETTINGS_KEY); String channel = slackConfigProcessor.getDefaultChannel() ; boolean enabled = true ; String logoUrl = "" ; if( slackProjectSettings != null && slackProjectSettings.getChannel() != null && slackProjectSettings.getChannel().length() > 0 ) { channel = slackProjectSettings.getChannel() ; } if( slackProjectSettings != null && slackProjectSettings.getLogoUrl() != null && slackProjectSettings.getLogoUrl().length() > 0 ) { logoUrl = slackProjectSettings.getLogoUrl(); } if( slackProjectSettings != null ) { enabled = slackProjectSettings.isEnabled(); } model.put("configDir" , sProject.getConfigDirectory().toString()); model.put("channel" , channel ); model.put("enabled" , enabled ); model.put("logoUrl" , logoUrl ); } }
public String getProjectName() { return this.project.getName(); }
public static String getInternalProjectId(SProject project){ return project.getProjectId(); }
mySettings.getSettings(project.getProjectId(), "webhooks"); params.put("hasPermission", myUser.isPermissionGrantedForProject(project.getProjectId(), Permission.EDIT_PROJECT)); params.put("projectId", project.getProjectId()); params.put("buildTypeList", project.getBuildTypes()); params.put("projectExternalId", TeamCityIdResolver.getExternalProjectId(project)); params.put("projectName", getProjectName(TeamCityIdResolver.getExternalProjectId(project), project.getName())); mySettings.getSettings(project.getProjectId(), "webhooks"); params.put("hasPermission", myUser.isPermissionGrantedForProject(project.getProjectId(), Permission.EDIT_PROJECT)); myManager.getRegisteredFormats()).getTemplateList()); params.put("webHooksDisabled", !projSettings.isEnabled()); params.put("projectId", project.getProjectId()); params.put("haveProject", "true"); params.put("projectName", getProjectName(TeamCityIdResolver.getExternalProjectId(project), project.getName())); 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()); params.put("noWebHooks", bean.getWebHookList().isEmpty()); params.put("webHooks", ! bean.getWebHookList().isEmpty());
public String getSensibleProjectName(){ if (project.getProjectId().equals("_Root")) { return project.getProjectId(); } return project.getName(); }
private WebHookConfig findWebHookWithId(String projectExternalId, String webHookConfigUniqueId) throws WebHookConfigNotFoundException { SProject myProject = myServer.getProjectManager().findProjectByExternalId(projectExternalId); for (SProject project : myProject.getProjectPath()){ WebHookProjectSettings projSettings = (WebHookProjectSettings) myProjectSettingsManager.getSettings(project.getProjectId(), WebHookListener.WEBHOOKS_SETTINGS_ATTRIBUTE_NAME); if (projSettings.isEnabled()){ for (WebHookConfig whc : projSettings.getWebHooksConfigs()){ if (whc.isEnabledForSubProjects() == false && !myProject.getProjectId().equals(project.getProjectId())){ // Sub-projects are disabled and we are a subproject. if (Loggers.SERVER.isDebugEnabled()){ Loggers.SERVER.debug(this.getClass().getSimpleName() + ":getListOfEnabledWebHooks() " + ":: subprojects not enabled. myProject is: " + myProject.getProjectId() + ". webhook project is: " + project.getProjectId()); } continue; } if (whc.getUniqueKey().equals(webHookConfigUniqueId)) { if (myWebHookPayloadManager.isRegisteredFormat(whc.getPayloadFormat())){ return whc.copy(); } else { throw new WebHookConfigNotFoundException("No registered Payload Handler for " + whc.getPayloadFormat()); } } } } else { Loggers.SERVER.debug("WebHookUserRequestedExecutorImpl :: WebHooks are disasbled for " + projectExternalId); } } throw new WebHookConfigNotFoundException(String.format("Webhook Configuration %s was not found", webHookConfigUniqueId)); }
public static String getExternalProjectIdOrNull(SProject project){ try { return project.getExternalId(); } catch (NoSuchMethodError ex) { LOGGER.log(Level.INFO,ex.getMessage(),ex); return null; } }
public String getFullName() { return this.project.getName() + " :: " + this.name; }