private void setChangeSets(BuildRun buildRun, BuildInfo info) { for (VcsModification change : info.getChanges()) { // See if we have this ChangeSet in the system. ChangeSetFilter filter = new ChangeSetFilter(); String id = change.getId(); filter.reference.add(id); Collection<ChangeSet> changeSetList = config.getV1Instance().get().changeSets(filter); if (changeSetList.isEmpty()) { // We don't have one yet. Create one. StringBuilder name = new StringBuilder(); name.append('\''); name.append(change.getUserName()); if (change.getDate() != null) { name.append("\' on \'"); name.append(new DB.DateTime(change.getDate())); } name.append('\''); Map<String, Object> attributes = new HashMap<String, Object>(); attributes.put("Description", change.getComment()); ChangeSet changeSet = config.getV1Instance().create().changeSet(name.toString(), id, attributes); changeSetList = new ArrayList<ChangeSet>(1); changeSetList.add(changeSet); } Set<PrimaryWorkitem> workitems = determineWorkitems(change.getComment()); associateWithBuildRun(buildRun, changeSetList, workitems); } }
/** * Evaluates BuildRun description. * * @param changes - set of changes affected by this BuildRun. * @return description string. */ public static String getModificationDescription(Iterable<VcsModification> changes) { // Create Set to filter changes unique by User and Comment StringBuilder result = new StringBuilder(256); for (Iterator<VcsModification> it = changes.iterator(); it.hasNext(); ) { VcsModification mod = it.next(); result.append(mod.getUserName()); result.append(": "); result.append(mod.getComment()); if (it.hasNext()) { result.append("<br>"); } } return result.toString(); }