mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 05:20:53 +07:00
get_maintainer.pl: Add git-min-percent option
Allow an option to control the minimum percentage of sign-offs required before being considered a maintainer. git-min-percent has a default value of 5 Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
870020f93a
commit
afa81ee130
@ -27,6 +27,7 @@ my $email_git = 1;
|
|||||||
my $email_git_penguin_chiefs = 0;
|
my $email_git_penguin_chiefs = 0;
|
||||||
my $email_git_min_signatures = 1;
|
my $email_git_min_signatures = 1;
|
||||||
my $email_git_max_maintainers = 5;
|
my $email_git_max_maintainers = 5;
|
||||||
|
my $email_git_min_percent = 5;
|
||||||
my $email_git_since = "1-year-ago";
|
my $email_git_since = "1-year-ago";
|
||||||
my $output_multiline = 1;
|
my $output_multiline = 1;
|
||||||
my $output_separator = ", ";
|
my $output_separator = ", ";
|
||||||
@ -65,6 +66,7 @@ if (!GetOptions(
|
|||||||
'git-chief-penguins!' => \$email_git_penguin_chiefs,
|
'git-chief-penguins!' => \$email_git_penguin_chiefs,
|
||||||
'git-min-signatures=i' => \$email_git_min_signatures,
|
'git-min-signatures=i' => \$email_git_min_signatures,
|
||||||
'git-max-maintainers=i' => \$email_git_max_maintainers,
|
'git-max-maintainers=i' => \$email_git_max_maintainers,
|
||||||
|
'git-min-percent=i' => \$email_git_min_percent,
|
||||||
'git-since=s' => \$email_git_since,
|
'git-since=s' => \$email_git_since,
|
||||||
'm!' => \$email_maintainer,
|
'm!' => \$email_maintainer,
|
||||||
'n!' => \$email_usename,
|
'n!' => \$email_usename,
|
||||||
@ -307,6 +309,7 @@ MAINTAINER field selection options:
|
|||||||
--git-chief-penguins => include ${penguin_chiefs}
|
--git-chief-penguins => include ${penguin_chiefs}
|
||||||
--git-min-signatures => number of signatures required (default: 1)
|
--git-min-signatures => number of signatures required (default: 1)
|
||||||
--git-max-maintainers => maximum maintainers to add (default: 5)
|
--git-max-maintainers => maximum maintainers to add (default: 5)
|
||||||
|
--git-min-percent => minimum percentage of commits required (default: 0)
|
||||||
--git-since => git history to use (default: 1-year-ago)
|
--git-since => git history to use (default: 1-year-ago)
|
||||||
--m => include maintainer(s) if any
|
--m => include maintainer(s) if any
|
||||||
--n => include name 'Full Name <addr\@domain.tld>'
|
--n => include name 'Full Name <addr\@domain.tld>'
|
||||||
@ -497,6 +500,7 @@ sub recent_git_signoffs {
|
|||||||
my $output = "";
|
my $output = "";
|
||||||
my $count = 0;
|
my $count = 0;
|
||||||
my @lines = ();
|
my @lines = ();
|
||||||
|
my $total_sign_offs;
|
||||||
|
|
||||||
if (which("git") eq "") {
|
if (which("git") eq "") {
|
||||||
warn("$P: git not found. Add --nogit to options?\n");
|
warn("$P: git not found. Add --nogit to options?\n");
|
||||||
@ -520,17 +524,26 @@ sub recent_git_signoffs {
|
|||||||
$output =~ s/^\s*//gm;
|
$output =~ s/^\s*//gm;
|
||||||
|
|
||||||
@lines = split("\n", $output);
|
@lines = split("\n", $output);
|
||||||
|
|
||||||
|
$total_sign_offs = 0;
|
||||||
|
foreach my $line (@lines) {
|
||||||
|
if ($line =~ m/([0-9]+)\s+(.*)/) {
|
||||||
|
$total_sign_offs += $1;
|
||||||
|
} else {
|
||||||
|
die("$P: Unexpected git output: ${line}\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
foreach my $line (@lines) {
|
foreach my $line (@lines) {
|
||||||
if ($line =~ m/([0-9]+)\s+(.*)/) {
|
if ($line =~ m/([0-9]+)\s+(.*)/) {
|
||||||
my $sign_offs = $1;
|
my $sign_offs = $1;
|
||||||
$line = $2;
|
$line = $2;
|
||||||
$count++;
|
$count++;
|
||||||
if ($sign_offs < $email_git_min_signatures ||
|
if ($sign_offs < $email_git_min_signatures ||
|
||||||
$count > $email_git_max_maintainers) {
|
$count > $email_git_max_maintainers ||
|
||||||
|
$sign_offs * 100 / $total_sign_offs < $email_git_min_percent) {
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
die("$P: Unexpected git output: ${line}\n");
|
|
||||||
}
|
}
|
||||||
if ($line =~ m/(.+)<(.+)>/) {
|
if ($line =~ m/(.+)<(.+)>/) {
|
||||||
my $git_name = $1;
|
my $git_name = $1;
|
||||||
|
Loading…
Reference in New Issue
Block a user