From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id 4JsIDZnJUWQ4YAAASxT56A (envelope-from ) for ; Wed, 03 May 2023 04:40:25 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 4CoGDZnJUWTP0AAA9RJhRA (envelope-from ) for ; Wed, 03 May 2023 04:40:25 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D6F74209ED for ; Wed, 3 May 2023 04:40:24 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pu2PZ-0002kK-R6; Tue, 02 May 2023 22:40:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pu2PV-0002k6-Dk for guix-patches@gnu.org; Tue, 02 May 2023 22:40:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pu2PS-0006Or-FR for guix-patches@gnu.org; Tue, 02 May 2023 22:40:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pu2PS-0006x2-Ay for guix-patches@gnu.org; Tue, 02 May 2023 22:40:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#63215] [PATCH mumi 0/2] Cc all issue participants when sending email Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 03 May 2023 02:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63215 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Arun Isaac Cc: 63215@debbugs.gnu.org Received: via spool by 63215-submit@debbugs.gnu.org id=B63215.168308157926685 (code B ref 63215); Wed, 03 May 2023 02:40:02 +0000 Received: (at 63215) by debbugs.gnu.org; 3 May 2023 02:39:39 +0000 Received: from localhost ([127.0.0.1]:45353 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pu2P5-0006wL-66 for submit@debbugs.gnu.org; Tue, 02 May 2023 22:39:39 -0400 Received: from mail-qt1-f180.google.com ([209.85.160.180]:55587) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pu2P1-0006w6-4B for 63215@debbugs.gnu.org; Tue, 02 May 2023 22:39:37 -0400 Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-3f0b30f240eso40481531cf.3 for <63215@debbugs.gnu.org>; Tue, 02 May 2023 19:39:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683081569; x=1685673569; h=mime-version:user-agent:message-id:in-reply-to:date:references :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=bFIXvvkM4ZJe4CYuMlpwfvl/wE2rU8FBH+U0JfdZ+Ko=; b=I1RgsOQerkHQErsV+UDfASpEajaJp5dY9nsdbtxFJMjRkLOBPUNvjMzXwHw/YhLaxS 9YzfyJWi0cOxcmIdP1twfd77YWwKg2AFPKRT6Iz93RGA+wzkXbN38XlYgajScf/QcCVY 0pNAFMPI+c7BpzXIBYsNs8IOCQug2/w1zkv2Gywv6Dj2rIjACZlPqlaXBurcCJZZfoXS 3e71zaOkG/123TXZkG/Zlpft+5eIY1XH9HiOc2N833tS2TzcEqoVL4IbgNu+meJYZl2n OSBp/btacERRJrkv5rTVZi/hNrK5mrDS8GD0/Pp6WgxxWxw+cxiMewzibEDeEdsgfTU5 q2HA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683081569; x=1685673569; h=mime-version:user-agent:message-id:in-reply-to:date:references :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=bFIXvvkM4ZJe4CYuMlpwfvl/wE2rU8FBH+U0JfdZ+Ko=; b=GmRI36P3Os2h/VUv4N6Mqs3OHWCfTgf9c0vErvAoMIjtZVvSERn10Sb3ClAl8LVrtR j3oAFqq17akVZ8xOTRwNatczVsTxPvBDjqXq586YXePmifFnJmNbJSCqVWIiG52BOyWa X9TiLIpff7dj2WbHP0P9dfCk/K4p8EdvueLxBpnNOK0PnC/RzoP0monIW6Ccp4njw6Wf R/7L9/4tw+yFidYa4z7WPyqtsPUNxRfood3AD4vWfAaRwjAR/YRwkAKv8exS2eI/HxX4 Yl1OEO6mXUeiZXAT5DobZrj3M0m7O20m0upeEK0w4y7kFiFhAi6ZSb649gWKYSpJj9Ox flDg== X-Gm-Message-State: AC+VfDyM8rlSkdA5WcSTq+I7rqVsZpnH8XRv/zSDyVPs+yq1WsWlEjH1 wcItqRqO+s0fmJ4/lAz40YRuEN5tsH1OLQ== X-Google-Smtp-Source: ACHHUZ55+4YJimuMUcqr5AClesEOHQ8FBTcJbrldHNuRzoPsw+mV25QKVcpr9abf2Hnetbnty+ok/w== X-Received: by 2002:a05:622a:489:b0:3f0:a108:863b with SMTP id p9-20020a05622a048900b003f0a108863bmr31474568qtx.43.1683081569153; Tue, 02 May 2023 19:39:29 -0700 (PDT) Received: from hurd (dsl-157-118.b2b2c.ca. [66.158.157.118]) by smtp.gmail.com with ESMTPSA id cb7-20020a05622a1f8700b003ee4b5a2dd3sm6511537qtb.21.2023.05.02.19.39.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 May 2023 19:39:28 -0700 (PDT) From: Maxim Cournoyer References: <20230501225158.18612-1-arunisaac@systemreboot.net> <20230501225158.18612-3-arunisaac@systemreboot.net> Date: Tue, 02 May 2023 22:39:27 -0400 In-Reply-To: <20230501225158.18612-3-arunisaac@systemreboot.net> (Arun Isaac's message of "Mon, 1 May 2023 23:51:58 +0100") Message-ID: <87y1m6yw80.fsf_-_@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1683081625; a=rsa-sha256; cv=none; b=mg7MWveoGmXzVi5JuVfNpQI8hQi/zUuqS9AyLHtau5uuZH/Nflgy6cPU36lWsL72H6NmrK 6BVG2C2yDpyzEq/NLocGgA/N1gol1Kx2f7WeeOpuS6PJUKD1i7768dtgXFpv31l/jVNqtP EryDCJcNRCgLOvLqeE6gP1qzvkfnNmi3vh8LGAyggs7q9d6ZIaoekU+Dp36wRsGoXpkyeF f9/mLYqOlmY1MU/nZCu9Te2ap6uzIuBLVSjgwXFiTARBfXokj9C+UsYGctwxQAbBIPAFlN ePSUxIXgxfdJSZBYJLsdCPA/7kp8lxHGvFCJRSq4Vkq2NWG54c1vgESEt0XTJg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20221208 header.b=I1RgsOQe; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1683081625; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=bFIXvvkM4ZJe4CYuMlpwfvl/wE2rU8FBH+U0JfdZ+Ko=; b=pGyb3TzHu1QR/7kYAWQFsfZ2jR7WgrUAMPsWl3daj0UqaMHDwTmfMM/1lVYQBeyerRG+Ud F/On2eA2pab3SY3G1DaHh5VKS5QKBQ8FmobuwT8OwKj9Cpl5ZVtbIUoipnwRyqDHGJn/Mj nV2G2WTjRD5bsQuVjQblmY+jH7/p9I/Q12HgEfJ2py0IMsEC0oi9Hy0NlmCgvdNUM0qZVK fe3EENAQh4sZcGLYprELM1SeCT/enGjlVZPfE0qCsciRcOSGuul78Bh4m0z8LCAL0HQaBa Z1OrGQXasUxl3t8yd22oQoj82sqrnKAtZWL2nKC0sTD1ghn2ZZdnJZqKcm6ruQ== X-Migadu-Spam-Score: -2.90 X-Spam-Score: -2.90 X-Migadu-Queue-Id: D6F74209ED X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20221208 header.b=I1RgsOQe; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-TUID: OXb/lBRZd2tf Hi Arun, Arun Isaac writes: > * mumi/client.scm: Import (srfi srfi-1). > (reply-email-headers): New function. > (send-email): Call reply-email-headers. > * tests/client.scm ("send patches to existing issue", "send single > patch to existing issue"): Stub reply-email-headers. > ("send patch to existing issue and Cc other participants"): New test. Great series! > --- > mumi/client.scm | 35 +++++++++++++++++++++++++++++++---- > tests/client.scm | 24 ++++++++++++++++++++++++ > 2 files changed, 55 insertions(+), 4 deletions(-) > > diff --git a/mumi/client.scm b/mumi/client.scm > index 2750836..f0e4321 100644 > --- a/mumi/client.scm > +++ b/mumi/client.scm > @@ -18,6 +18,7 @@ > > (define-module (mumi client) > #:use-module (rnrs io ports) > + #:use-module (srfi srfi-1) > #:use-module (srfi srfi-19) > #:use-module (srfi srfi-26) > #:use-module (srfi srfi-43) > @@ -236,15 +237,41 @@ OPTIONS. Return the message ID of the first email sent." > (display (get-string-all port)) > message-id))))) > > +(define (reply-email-headers issue-number) > + "Return an association list of email headers when replying to > +ISSUE-NUMBER." > + (let ((messages > + (assoc-ref > + (assoc-ref > + (graphql-http-get (graphql-endpoint) > + `(document > + (query (#(issue #:number ,issue-number) > + (messages (from name address) > + date))))) > + "issue") > + "messages"))) > + ;; When sending email to an issue, we Cc all issue participants. > + ;; TODO: Also add an In-Reply-To header. > + `((cc . ,(delete-duplicates > + (map (lambda (message) > + (let ((from (assoc-ref message "from"))) > + (string-append (assoc-ref from "name") > + " <" (assoc-ref from "address") ">"))) > + (vector->list messages))))))) > + > (define (send-email patches) > "Send PATCHES via email." > (if (current-issue-number) > ;; If an issue is current, send patches to that issue's email > ;; address. > - (git-send-email (string-append (number->string (current-issue-number)) > - "@" > - (client-config 'debbugs-host)) > - patches) > + (let ((issue-number (current-issue-number))) > + (git-send-email (string-append (number->string issue-number) > + "@" > + (client-config 'debbugs-host)) > + patches > + (map (cut string-append "--cc=" <>) > + (assq-ref (reply-email-headers issue-number) > + 'cc)))) I was thinking looking at this, with X-Debbugs-Cc headers now being added automatically by Git for members of a team, there could be duplication between X-Debbugs-Cc and the participannts retrieved from the messages above. To ensure participants do not receive duplicate replies, it'd be probably best to stick to using X-Debbugs-Cc with all interactions with Debbugs; this way a duplicate header is (hopefully) ignored by Debbugs itself. Does that make sense? -- Thanks, Maxim