HipChat notification: add support for Mercurial inputs for determining who might have broken the build.
[?]
Aug 7, 2013, 8:53 AM
IBW53PUCYRU75DHCKT4VFGN3B2QNRD6U2WTAQDHJOYEHUHPCXF2QCDependencies
- [2]
NB2VOKIRInclude names of committers in HipChat notifications - [3]
JAH3UPWASupport revision control systems via plugins - [4]
ZDEHAFHVAdd a plugin for HipChat notification
Change contents
- replacement in src/lib/Hydra/Plugin/HipChatNotification.pm at line 48
next unless $curInput->type eq "git";next unless ($curInput->type eq "git" || $curInput->type eq "hg"); - edit in src/lib/Hydra/Plugin/MercurialInput.pm at line 13
}sub _parseValue {my ($value) = @_;(my $uri, my $id) = split ' ', $value;$id = defined $id ? $id : "default";return ($uri, $id);}sub _clonePath {my ($uri) = @_;my $cacheDir = getSCMCacheDir . "/hg";mkpath($cacheDir);return $cacheDir . "/" . sha256_hex($uri); - replacement in src/lib/Hydra/Plugin/MercurialInput.pm at line 34
(my $uri, my $id) = split ' ', $value;(my $uri, my $id) = _parseValue($value); - replacement in src/lib/Hydra/Plugin/MercurialInput.pm at line 41
my $cacheDir = getSCMCacheDir . "/hg";mkpath($cacheDir);my $clonePath = $cacheDir . "/" . sha256_hex($uri);my $clonePath = _clonePath($uri); - edit in src/lib/Hydra/Plugin/MercurialInput.pm at line 98
}sub getCommits {my ($self, $type, $value, $rev1, $rev2) = @_;return [] if $type ne "hg";return [] unless $rev1 =~ /^[0-9a-f]+$/;return [] unless $rev2 =~ /^[0-9a-f]+$/;my ($uri, $id) = _parseValue($value);my $clonePath = _clonePath($uri);chdir $clonePath or die $!;my $out;IPC::Run::run(["hg", "log", "--template", "{node|short}\t{author|person}\t{author|email}\n", "-r", "$rev1:$rev2", $clonePath], \undef, \$out)or die "cannot get mercurial logs: $?";my $res = [];foreach my $line (split /\n/, $out) {if ($line ne "") {my ($revision, $author, $email) = split "\t", $line;push @$res, { revision => $revision, author => $author, email => $email };}}return $res; - edit in src/lib/Hydra/Plugin/MercurialInput.pm at line 127