All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org,
	"Philippe Mathieu-Daudé" <philmd@oss.qualcomm.com>,
	"Fabiano Rosas" <farosas@suse.de>
Subject: Re: [PATCH v2 2/2] get_maintainer: add ability to report Git Lab handle
Date: Wed, 24 Jun 2026 14:15:53 +0100	[thread overview]
Message-ID: <87ik78krjq.fsf@draig.linaro.org> (raw)
In-Reply-To: <20260624122936.2706393-3-berrange@redhat.com> ("Daniel P. Berrangé"'s message of "Wed, 24 Jun 2026 13:29:36 +0100")

Daniel P. Berrangé <berrange@redhat.com> writes:

> With the GitLab mapping files from the previous commit, the
> get_manitainer.pl script is now able to report the gitlab
> handle for each maintainer/reviewer when displaying output.
>
> For example:
>
>   $ ./scripts/get_maintainer.pl -f hw/scsi/lsi53c895a.c
>   Paolo Bonzini <pbonzini@redhat.com> (supporter:SCSI, gitlab:@bonzini)
>   Fam Zheng <fam@euphon.net> (reviewer:SCSI, gitlab:@famzheng)
>   qemu-devel@nongnu.org (open list:All patches CC here)

I suspect it gets tripped up by utf-8 stuff:

  ➜  ./scripts/get_maintainer.pl -f contrib/gitdm/aliases 
  "Alex Bennée" <alex.bennee@linaro.org> (odd fixer:GIT Data Mining C...)
  qemu-devel@nongnu.org (open list:All patches CC here)

misses my tag.

However I think this approach is much cleaner. The other option would be
embedding @refs in the M: line:

  M: Alex Bennée <alex.bennee@linaro.org> @stsquad

and letting the script handle it. But I didn't want to hack on
get_maintainer.pl which is why I started playing with a python version.
However I need to add some features to it to reach usable parity with
the perl script.

>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  scripts/get_maintainer.pl | 42 +++++++++++++++++++++++++++++++++++----
>  1 file changed, 38 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
> index 76be402e11..1f518b6792 100755
> --- a/scripts/get_maintainer.pl
> +++ b/scripts/get_maintainer.pl
> @@ -365,6 +365,31 @@ sub read_mailmap {
>      close($mailmap_file);
>  }
>  
> +my %gitlabmap;
> +
> +read_gitlabmap(".gitlab-map-auto");
> +read_gitlabmap(".gitlab-map-manual");
> +
> +sub read_gitlabmap {
> +    my $mapfile = shift;
> +    open MAP, "<$mapfile"
> +	or die "cannot open $mapfile: $!";
> +
> +    while (<MAP>) {
> +	next if /^#/;
> +	next if /^\s*$/;
> +
> +	if (/^(\S+)\t(.*)$/) {
> +	    my $handle = $1;
> +	    my $realname = $2;
> +
> +	    $gitlabmap{$realname} = $handle;
> +	}
> +    }
> +
> +    close MAP;
> +}
> +
>  ## use the filenames on the command line or find the filenames in the patchfiles
>  
>  my @files = ();
> @@ -1077,10 +1102,15 @@ sub push_email_address {
>  	return 0;
>      }
>  
> +    my $gitlab_handle;
> +    if (exists $gitlabmap{$name}) {
> +	$gitlab_handle = $gitlabmap{$name};
> +    }
> +
>      if (!$email_remove_duplicates) {
> -	push(@email_to, [format_email($name, $address, $email_usename), $role]);
> +	push(@email_to, [format_email($name, $address, $email_usename), $role, $gitlab_handle]);
>      } elsif (!email_inuse($name, $address)) {
> -	push(@email_to, [format_email($name, $address, $email_usename), $role]);
> +	push(@email_to, [format_email($name, $address, $email_usename), $role, $gitlab_handle]);
>  	$email_hash_name{lc($name)}++ if ($name ne "");
>  	$email_hash_address{lc($address)}++;
>      }
> @@ -2026,10 +2056,14 @@ sub merge_email {
>      my %saw;
>  
>      for (@_) {
> -	my ($address, $role) = @$_;
> +	my ($address, $role, $gitlab_handle) = @$_;
>  	if (!$saw{$address}) {
>  	    if ($output_roles) {
> -		push(@lines, "$address ($role)");
> +		if (defined $gitlab_handle) {
> +		    push(@lines, "$address ($role, gitlab:\@$gitlab_handle)");
> +		} else {
> +		    push(@lines, "$address ($role)");
> +		}
>  	    } else {
>  		push(@lines, $address);
>  	    }

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


  reply	other threads:[~2026-06-24 13:16 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-24 12:29 [PATCH v2 0/2] Record maintainer/reviewer Git Lab handles Daniel P. Berrangé
2026-06-24 12:29 ` [PATCH v2 1/2] gitlab: introduce files mapping GitLab accounts to real names Daniel P. Berrangé
2026-06-24 13:09   ` Philippe Mathieu-Daudé
2026-06-24 13:11   ` Alex Bennée
2026-06-24 13:41   ` Fabiano Rosas
2026-06-24 16:43     ` Daniel P. Berrangé
2026-06-24 12:29 ` [PATCH v2 2/2] get_maintainer: add ability to report Git Lab handle Daniel P. Berrangé
2026-06-24 13:15   ` Alex Bennée [this message]
2026-06-24 13:19 ` [PATCH v2 0/2] Record maintainer/reviewer Git Lab handles Philippe Mathieu-Daudé
2026-06-24 17:38   ` Daniel P. Berrangé

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=87ik78krjq.fsf@draig.linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=farosas@suse.de \
    --cc=philmd@oss.qualcomm.com \
    --cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.