workflows.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Justin Stitt <justinstitt@google.com>
To: Joe Perches <joe@perches.com>
Cc: linux-kernel@vger.kernel.org, Kees Cook <keescook@chromium.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Nathan Chancellor <nathan@kernel.org>,
	Jakub Kicinski <kuba@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	geert@linux-m68k.org, gregkh@linuxfoundation.org,
	workflows@vger.kernel.org, mario.limonciello@amd.com,
	Justin Stitt <justinstitt@google.com>
Subject: [PATCH 3/3] get_maintainer: add patch-only pattern matching type
Date: Wed, 27 Sep 2023 03:19:16 +0000	[thread overview]
Message-ID: <20230927-get_maintainer_add_d-v1-3-28c207229e72@google.com> (raw)
In-Reply-To: <20230927-get_maintainer_add_d-v1-0-28c207229e72@google.com>

Add the "D:" type which behaves the same as "K:" but will only match
content present in a patch file.

To illustrate:

Imagine this entry in MAINTAINERS:

NEW REPUBLIC
M: Han Solo <hansolo@rebelalliance.co>
W: https://www.jointheresistance.org
D: \bstrncpy\b

Our maintainer, Han, will only be added to the recipients if a patch
file is passed to get_maintainer (like what b4 does):
$ ./scripts/get_maintainer.pl 0004-some-change.patch

If the above patch has a `strncpy` present in the subject, commit log or
diff then Han will be to/cc'd.

However, in the event of a file from the tree given like:
$ ./scripts/get_maintainer.pl ./lib/string.c

Han will not be noisily to/cc'd (like a K: type would in this
circumstance)

Note that folks really shouldn't be using get_maintainer on tree files
anyways [1].

[1]: https://lore.kernel.org/all/20230726151515.1650519-1-kuba@kernel.org/
---
 scripts/get_maintainer.pl | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index e679eac96793..f290bf0948f1 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -309,6 +309,7 @@ if ( $tree && !top_of_kernel_tree($lk_path) ) {
 
 my @typevalue = ();
 my %keyword_hash;
+my %patch_keyword_hash;
 my @mfiles         = ();
 my @self_test_info = ();
 
@@ -339,6 +340,9 @@ sub read_maintainer_file {
             elsif ( $type eq "K" ) {
                 $keyword_hash{@typevalue} = $value;
             }
+            elsif ( $type eq "D" ) {
+                $patch_keyword_hash{@typevalue} = $value;
+            }
             push( @typevalue, "$type:$value" );
         }
         elsif ( !( /^\s*$/ || /^\s*\#/ ) ) {
@@ -591,6 +595,11 @@ foreach my $file (@ARGV) {
                         push( @keyword_tvi, $line );
                     }
                 }
+                foreach my $line ( keys %patch_keyword_hash ) {
+                    if ($patch_line =~ m/${patch_prefix}$patch_keyword_hash{$line}/x ) {
+                        push( @keyword_tvi, $line );
+                    }
+                }
             }
         }
         close($patch);

-- 
2.42.0.582.g8ccd20d70d-goog


  parent reply	other threads:[~2023-09-27  4:29 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-27  3:19 [PATCH 0/3] get_maintainer: add patch-only keyword matching Justin Stitt
2023-09-27  3:19 ` [PATCH 1/3] MAINTAINERS: add documentation for D: Justin Stitt
2023-09-27  3:27   ` Joe Perches
2023-09-27  3:30     ` Justin Stitt
2023-09-27 16:06   ` Kees Cook
2023-09-27  3:19 ` Justin Stitt [this message]
2023-09-27  6:14   ` [PATCH 3/3] get_maintainer: add patch-only pattern matching type Greg KH
2023-09-27  6:46     ` Justin Stitt
2023-09-27  8:21       ` Greg KH
2023-09-27 16:15   ` Kees Cook
2023-09-27 19:33     ` Joe Perches
2023-09-27 19:00   ` Joe Perches
     [not found] ` <20230927-get_maintainer_add_d-v1-2-28c207229e72@google.com>
2023-09-27  3:26   ` [PATCH 2/3] get_maintainer: run perltidy Joe Perches
2023-09-27 15:24 ` [PATCH 0/3] get_maintainer: add patch-only keyword matching Nick Desaulniers
2023-09-27 16:01   ` Kees Cook

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230927-get_maintainer_add_d-v1-3-28c207229e72@google.com \
    --to=justinstitt@google.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=joe@perches.com \
    --cc=keescook@chromium.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mario.limonciello@amd.com \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=workflows@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox