The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

#!/usr/bin/perl
use strict;
my $issue = qr/^ [[] [A-Z][A-Z0-9]+ - \d+ .* [\]]/xms;
my $merge = qr/^ Merge /xms;
my $revert = qr/^ Revert /xms;
my $regen = qr/^ Regen /xms;
my $pom = qr/^ POM /xms;
my $good = qr/ $issue | $merge | $revert | $regen | $pom /xms;
open my $fh, "<", $ARGV[0] or die "Can't read commit message!: $!\n";
my $msg = do { local $/; <$fh> };
if ( $msg !~ /$good/xms ) {
warn <<"MESSAGE";
Bad message! '$ARGV[0]'
Messages should be:
[JIRA-NNN]
Merge ...
Revert ...
Regen ...
POM ...
MESSAGE
exit 1;
}
exit 0;