#!/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); } } }