App-Git-IssueManager

 view release on metacpan or  search on metacpan

bin/git-issue-commit-hook  view on Meta::CPAN

#!/usr/bin/env perl
# ABSTRACT: post-commit hook for managing git issues
# PODNAME: git-issue-commit-hook
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);
    }
  }
}

__END__

=pod

=encoding UTF-8

=head1 NAME

git-issue-commit-hook - post-commit hook for managing git issues

=head1 VERSION

version 0.2

=head1 AUTHOR

Dominik Meyer <dmeyer@federationhq.de>

=head1 COPYRIGHT AND LICENSE

This software is Copyright (c) 2018 by Dominik Meyer.



( run in 0.641 second using v1.01-cache-2.11-cpan-39bf76dae61 )