From patchwork Sun Jul 11 18:29:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bert Peters X-Patchwork-Id: 1943 Return-Path: Delivered-To: patchwork@archlinux.org Received: from mail.archlinux.org [95.216.189.61] by patchwork.archlinux.org with IMAP (fetchmail-6.4.19) for (single-drop); Sun, 11 Jul 2021 18:30:40 +0000 (UTC) Received: from mail.archlinux.org by mail.archlinux.org with LMTP id GF5TJ88462C7ogEAK+/4rw (envelope-from ) for ; Sun, 11 Jul 2021 18:30:39 +0000 Received: from lists.archlinux.org (lists.archlinux.org [IPv6:2a01:4f9:c010:9eb4::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.archlinux.org (Postfix) with ESMTPS id 6E92C70366C; Sun, 11 Jul 2021 18:30:38 +0000 (UTC) Received: from lists.archlinux.org (localhost [IPv6:::1]) by lists.archlinux.org (Postfix) with ESMTP id E1008234D51; Sun, 11 Jul 2021 18:30:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.archlinux.org; s=dkim-rsa; t=1626028238; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=WWUfeTSlXR/yKwQA5LsAkHqUUvdedv6MxQYaiNMw4nk=; b=SVCNvUhcwPjYYeV4v3qOyBg/XNiWXKq5MlHjAcSX2y+eUaY1XfkrowYvcgEs8Oa+8m4cv2 wa5ZlxiB+SZivK3LOrpvwFMDjlLdlX/vm9tZ7lj1ZoHkcWTbVytx7B35ZRudqMJzVaw2Ax yjcLtMTVyBbf98FynbO+TcOkZ+F2nuIU44Mhlc5u5AtWEbaAae6kJHR1UwxTKxKBeJqD4J Gcl3CdWeFXa8SNnSUFu/vCQljoerp2/31jPHwMbDyzfdpO1TpNf7V+s1CSM3kFfjboMMNZ IcDp3QjE453nKZoXz08XugI6iMps/6gVXyQVCxg7FHzOUYKSBAdHwKjXdtMCDRszgm/4vC 5tRVe6lyco25C8A+xqa1E6IVM9e2vjvSXQLEebe9ZFDRVflNPT/JpBku/9C4W3EXkZlZgT nCSyfF5TSLj0xhfPldW0hX5hdb1CFCpEj6eo+K5G5qNmFoYFewKORs3VGABXM8smns72im NsQ2jc+5Ejm+m7kCdxlaUj/oL59xOM4YIoBmrnjAsnrJn1RN9XlDlMBmS33CSCR3kRFLYh 2fM+SNYdc28ZafP4GGGZ/W9A4lKjtBO5DmAouCbKoSgH3L91rPpwHM5JhcMDX9URWaDe1E z90RsE29pbSoIHF5w5rltMdSoYuAiircN+EUU0E5F9OzxjCXNyTMw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=lists.archlinux.org; s=dkim-ed25519; t=1626028238; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=WWUfeTSlXR/yKwQA5LsAkHqUUvdedv6MxQYaiNMw4nk=; b=z7rWYWIRGmEJE0nYQSVO1pBK20f6S+H3/RI10mjSx6hhvN28Ttl26/goUMyiJFVgi/4UFq K0zl15Vx/2vAM6Cw== X-Original-To: aur-dev@lists.archlinux.org Delivered-To: aur-dev@lists.archlinux.org Received: from charon.bertptrs.nl (charon.bertptrs.nl [37.97.134.152]) by lists.archlinux.org (Postfix) with ESMTPS id 09EE6234D43 for ; Sun, 11 Jul 2021 18:30:36 +0000 (UTC) Received: from dione.bertptrs.nl (143-174-166-62.ftth.glasoperator.nl [62.166.174.143]) by charon.bertptrs.nl (Postfix) with ESMTPSA id DD533E0D43; Sun, 11 Jul 2021 20:30:34 +0200 (CEST) To: aur-dev@lists.archlinux.org Subject: [PATCH v3] Send request notifications to co-maintainers Date: Sun, 11 Jul 2021 20:29:17 +0200 Message-Id: <20210711182916.59048-1-bert@bertptrs.nl> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,UNPARSEABLE_RELAY,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on charon.bertptrs.nl X-BeenThere: aur-dev@lists.archlinux.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: "Arch User Repository \(AUR\) Development" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Bert Peters via aur-dev From: Bert Peters Reply-To: "Arch User Repository \(AUR\) Development" Cc: Bert Peters Errors-To: aur-dev-bounces@lists.archlinux.org Sender: "aur-dev" Authentication-Results: mail.archlinux.org; dkim=pass header.d=lists.archlinux.org header.s=dkim-rsa header.b=SVCNvUhc; dkim=pass header.d=lists.archlinux.org header.s=dkim-ed25519 header.b=z7rWYWIR; dmarc=pass (policy=none) header.from=archlinux.org; spf=pass (mail.archlinux.org: domain of aur-dev-bounces@lists.archlinux.org designates 2a01:4f9:c010:9eb4::1 as permitted sender) smtp.mailfrom=aur-dev-bounces@lists.archlinux.org X-Rspamd-Queue-Id: 6E92C70366C X-Spamd-Result: default: False [0.09 / 15.00]; HAS_REPLYTO(0.00)[aur-dev@lists.archlinux.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a01:4f9:c010:9eb4::1:c]; R_MISSING_CHARSET(2.50)[]; REPLYTO_ADDR_EQ_FROM(0.00)[]; BROKEN_CONTENT_TYPE(1.50)[]; RCVD_DKIM_ARC_DNSWL_MED(-0.50)[]; RCVD_COUNT_THREE(0.00)[4]; DKIM_TRACE(0.00)[lists.archlinux.org:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[archlinux.org,none]; RCVD_IN_DNSWL_MED(-0.20)[2a01:4f9:c010:9eb4::1:from]; MAILLIST(-0.20)[mailman]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:24940, ipnet:2a01:4f9::/32, country:DE]; FROM_NEQ_ENVFROM(0.00)[aur-dev@lists.archlinux.org,aur-dev-bounces@lists.archlinux.org]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[lists.archlinux.org:s=dkim-rsa,lists.archlinux.org:s=dkim-ed25519]; FROM_HAS_DN(0.00)[]; DWL_DNSWL_MED(-2.00)[archlinux.org:dkim]; TAGGED_RCPT(0.00)[aur-dev]; PREVIOUSLY_DELIVERED(0.00)[aur-dev@lists.archlinux.org]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; NEURAL_HAM(-0.00)[-1.000]; FORGED_SENDER_MAILLIST(0.00)[] X-Rspamd-Server: mail.archlinux.org This is in addition to the current recipients. Co-maintainers should also be made aware when their package has pending requests. --- This version addresses an issue in the previous patch that caused notifications to fail if the package has no co-maintainers. In addition, I've added a unit test that checks the new desired behaviour. aurweb/scripts/notify.py | 6 ++++++ test/t2500-notify.t | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/aurweb/scripts/notify.py b/aurweb/scripts/notify.py index 7f8e7168..1fb4707b 100755 --- a/aurweb/scripts/notify.py +++ b/aurweb/scripts/notify.py @@ -435,9 +435,12 @@ class RequestOpenNotification(Notification): cur = conn.execute('SELECT DISTINCT Users.Email FROM PackageRequests ' + 'INNER JOIN PackageBases ' + 'ON PackageBases.ID = PackageRequests.PackageBaseID ' + + 'LEFT JOIN PackageComaintainers ' + + 'ON PackageComaintainers.PackageBaseID = PackageRequests.PackageBaseID ' + 'INNER JOIN Users ' + 'ON Users.ID = PackageRequests.UsersID ' + 'OR Users.ID = PackageBases.MaintainerUID ' + + 'OR Users.ID = PackageComaintainers.UsersID ' + 'WHERE PackageRequests.ID = ? AND ' + 'Users.Suspended = 0', [reqid]) self._to = aurweb.config.get('options', 'aur_request_ml') @@ -492,9 +495,12 @@ class RequestCloseNotification(Notification): cur = conn.execute('SELECT DISTINCT Users.Email FROM PackageRequests ' + 'INNER JOIN PackageBases ' + 'ON PackageBases.ID = PackageRequests.PackageBaseID ' + + 'LEFT JOIN PackageComaintainers ' + + 'ON PackageComaintainers.PackageBaseID = PackageRequests.PackageBaseID ' + 'INNER JOIN Users ' + 'ON Users.ID = PackageRequests.UsersID ' + 'OR Users.ID = PackageBases.MaintainerUID ' + + 'OR Users.ID = PackageComaintainers.UsersID ' + 'WHERE PackageRequests.ID = ? AND ' + 'Users.Suspended = 0', [reqid]) self._to = aurweb.config.get('options', 'aur_request_ml') diff --git a/test/t2500-notify.t b/test/t2500-notify.t index 713b31e3..c0592c91 100755 --- a/test/t2500-notify.t +++ b/test/t2500-notify.t @@ -369,6 +369,23 @@ test_expect_success 'Test subject and body of request close notifications (auto- test_cmp actual expected ' +test_expect_success 'Test Cc of request close notification with co-maintainer.' ' + cat <<-EOD | sqlite3 aur.db && + /* Use package base IDs which can be distinguished from user IDs. */ + INSERT INTO PackageComaintainers (PackageBaseID, UsersID, Priority) VALUES (1001, 3, 1); + EOD + >sendmail.out && + "$NOTIFY" request-close 0 3001 accepted && + grep ^Cc: sendmail.out >actual && + cat <<-EOD >expected && + Cc: user@localhost, tu@localhost, dev@localhost + EOD + test_cmp actual expected && + cat <<-EOD | sqlite3 aur.db + DELETE FROM PackageComaintainers; + EOD +' + test_expect_success 'Test subject and body of request close notifications with closure comment.' ' cat <<-EOD | sqlite3 aur.db && UPDATE PackageRequests SET ClosureComment = "This is a test closure comment." WHERE ID = 3001;