Search in sources :

Example 1 with AffectedFile

use of hudson.scm.ChangeLogSet.AffectedFile in project jenkins-hipchat-plugin by jlewallen.

the class ActiveNotifier method getChanges.

String getChanges(AbstractBuild r) {
    if (!r.hasChangeSetComputed()) {
        logger.info("No change set computed...");
        return null;
    }
    ChangeLogSet changeSet = r.getChangeSet();
    List<Entry> entries = new LinkedList<Entry>();
    Set<AffectedFile> files = new HashSet<AffectedFile>();
    for (Object o : changeSet.getItems()) {
        Entry entry = (Entry) o;
        logger.info("Entry " + o);
        entries.add(entry);
        files.addAll(entry.getAffectedFiles());
    }
    if (entries.isEmpty()) {
        logger.info("Empty change...");
        return null;
    }
    Set<String> authors = new HashSet<String>();
    for (Entry entry : entries) {
        authors.add(entry.getAuthor().getDisplayName());
    }
    MessageBuilder message = new MessageBuilder(notifier, r);
    message.append("Started by changes from ");
    message.append(StringUtils.join(authors, ", "));
    message.append(" (");
    message.append(files.size());
    message.append(" file(s) changed)");
    return message.appendOpenLink().toString();
}
Also used : AffectedFile(hudson.scm.ChangeLogSet.AffectedFile) Entry(hudson.scm.ChangeLogSet.Entry) ChangeLogSet(hudson.scm.ChangeLogSet) LinkedList(java.util.LinkedList) HashSet(java.util.HashSet)

Aggregations

ChangeLogSet (hudson.scm.ChangeLogSet)1 AffectedFile (hudson.scm.ChangeLogSet.AffectedFile)1 Entry (hudson.scm.ChangeLogSet.Entry)1 HashSet (java.util.HashSet)1 LinkedList (java.util.LinkedList)1