ADD: added post-commit hook for managing issues

This commit is contained in:
Dominik Meyer 2018-09-16 00:07:31 +02:00
parent f8512006c8
commit 6b4192dd74
No known key found for this signature in database
GPG Key ID: B4C312B600606B64

42
bin/git-issue-commit-hook Executable file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env perl
use strict;
use warnings;
use Try::Tiny;
use Git::IssueManager;
use Git::LowLevel;
use utf8;
#
# main program
#
my $manager = Git::IssueManager->new(repository=>Git::LowLevel->new(git_dir=> "."));
warn("IssueManager not yet initialize ignoring commit\n") unless $manager->ready();
exit(0) unless $manager->ready();
my $tag = $manager->tag();
my $help=readpipe("git log -1 HEAD");
my @lines=split /\n/, $help;
my $commit="";
for my $line (@lines)
{
#check for commit
if ($line =~ /^commit\s([0-9abcdef]+)$/)
{
$commit=$1;
}
#search for an issue tag within the commit message
if ($line =~ /($tag-[0-9abcdef]{8})/)
{
my $id=$1;
# check for all possible commit issue commands
if ($line =~ /#close/)
{
$manager->close($id, $commit);
}
}
}