From patchwork Sun Apr 7 20:38:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 62827 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 97B1127BBEA; Sun, 7 Apr 2024 21:40:16 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 2BD0527BBE2 for ; Sun, 7 Apr 2024 21:40:15 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rtZJ4-00018D-TM; Sun, 07 Apr 2024 16:40:02 -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 1rtZJ3-00016m-H1 for guix-patches@gnu.org; Sun, 07 Apr 2024 16:40:01 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rtZJ3-0005xb-88; Sun, 07 Apr 2024 16:40:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rtZJ7-000136-FI; Sun, 07 Apr 2024 16:40:05 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#69780] [PATCH v2 1/5] git authenticate: Record introduction and keyring in =?utf-8?b?4oCYLmdpdC9jb25maWfigJku?= Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Sun, 07 Apr 2024 20:40:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69780 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69780@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 69780-submit@debbugs.gnu.org id=B69780.17125223503689 (code B ref 69780); Sun, 07 Apr 2024 20:40:05 +0000 Received: (at 69780) by debbugs.gnu.org; 7 Apr 2024 20:39:10 +0000 Received: from localhost ([127.0.0.1]:44798 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZIB-0000wv-GQ for submit@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52302) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZI4-0000uz-Qy for 69780@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:04 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rtZHs-0005pf-Hr; Sun, 07 Apr 2024 16:38:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=oqJNVJ9Omjr3msnY+I1fJlXhe/OVASngH3+fDfyPJEQ=; b=YsbCbbt2jK60c7U4ehuX 1uhapllChxoGUqETn6uLOAXLBu6psqrVA7Cduwd2+9BnfxtnH7lzQboMO600VXRguVV6pJbL5+aB/ mAQkGZ9bYQnE0wyFf+ehk9KtGAGcEP6fKDj8vgqPtso+wBRZLBpT3aIWJGq1fjN49w5mIYBQSXNif Wb0eaT08ZY18MyK2dcCDMYnruj9E1txkb7plWxsqsLHsAy8CiWyTIfq6Q/eTz1J8aZkN90AaBpLGL 05y3Z76H+asdYxHm3hqU5UwmCNjoZJxVxPAKw45M1y3t7bnhfswPiv8uL48XCrbAyM8SVagqGbUJD Hv8gFKkETK5ovw==; From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Sun, 7 Apr 2024 22:38:26 +0200 Message-ID: <4d37936c1b3aed95ca72de2ba112033bafefc2de.1712522118.git.ludo@gnu.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * guix/scripts/git/authenticate.scm (%default-options): Remove ‘keyring-reference’. (config-value, configured-introduction, configured-keyring-reference) (configured?, record-configuration, current-branch): New procedures. (guix-git-authenticate)[missing-arguments]: New procedure. Use ‘configured-introduction’ when zero arguments are given. Use ‘configured-keyring-reference’ when ‘-k’ is not passed. Add call to ‘record-configuration’. * doc/guix.texi (Invoking guix git authenticate): Document it. Change-Id: I66e111a83f50407b52da71662629947f83a78bbc --- doc/guix.texi | 28 +++++- guix/scripts/git/authenticate.scm | 147 +++++++++++++++++++++++------- tests/guix-git-authenticate.sh | 9 +- 3 files changed, 150 insertions(+), 34 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index acfe60b47a..6ff0e76d97 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7667,6 +7667,8 @@ Invoking guix git authenticate @section Invoking @command{guix git authenticate} @cindex @command{guix git authenticate} +@cindex authentication, of Git checkouts +@cindex Git checkout authentication The @command{guix git authenticate} command authenticates a Git checkout following the same rule as for channels (@pxref{channel-authentication, @@ -7686,13 +7688,35 @@ Invoking guix git authenticate guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}] @end example +@cindex introduction, for Git authentication By default, this command authenticates the Git checkout in the current directory; it outputs nothing and exits with exit code zero on success and non-zero on failure. @var{commit} above denotes the first commit where authentication takes place, and @var{signer} is the OpenPGP fingerprint of public key used to sign @var{commit}. Together, they -form a ``channel introduction'' (@pxref{channel-authentication, channel -introduction}). The options below allow you to fine-tune the process. +form a @dfn{channel introduction} (@pxref{channel-authentication, channel +introduction}). On your first successful run, the introduction is +recorded in the @file{.git/config} file of your checkout, allowing you +to omit them from subsequent invocations: + +@example +guix git authenticate [@var{options}@dots{}] +@end example + +Should you have branches that require different introductions, you can +specify them directly in @file{.git/config}. For example, if the branch +called @code{personal-fork} has a different introduction than other +branches, you can extend @file{.git/config} along these lines: + +@smallexample +[guix "authentication-personal-fork"] + introduction-commit = cabba936fd807b096b48283debdcddccfea3900d + introduction-signer = C0FF EECA BBA9 E6A8 0D1D E643 A2A0 6DF2 A33A 54FA + keyring = keyring +@end smallexample + +The command-line options described below allow you to fine-tune the +process. @table @code @item --repository=@var{directory} diff --git a/guix/scripts/git/authenticate.scm b/guix/scripts/git/authenticate.scm index def4879e96..a606f1c146 100644 --- a/guix/scripts/git/authenticate.scm +++ b/guix/scripts/git/authenticate.scm @@ -31,6 +31,7 @@ (define-module (guix scripts git authenticate) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-37) + #:use-module (srfi srfi-71) #:use-module (ice-9 format) #:use-module (ice-9 match) #:export (guix-git-authenticate)) @@ -73,8 +74,79 @@ (define %options (alist-cons 'show-stats? #t result))))) (define %default-options - '((directory . ".") - (keyring-reference . "keyring"))) + '((directory . "."))) + +(define (current-branch repository) + "Return the name of the checked out branch of REPOSITORY or #f if it could +not be determined." + (and (not (repository-head-detached? repository)) + (let* ((head (repository-head repository)) + (name (reference-name head))) + (and (string-prefix? "refs/heads/" name) + (string-drop name (string-length "refs/heads/")))))) + +(define (config-value repository key) + "Return the config value associated with KEY in the 'guix.authentication' or +'guix.authentication-BRANCH' name space in REPOSITORY, or #f if no such config +was found." + (let-syntax ((false-if-git-error + (syntax-rules () + ((_ exp) + (catch 'git-error (lambda () exp) (const #f)))))) + (let* ((config (repository-config repository)) + (branch (current-branch repository))) + ;; First try the BRANCH-specific value, then the generic one.` + (or (and branch + (false-if-git-error + (config-entry-value + (config-get-entry config + (string-append "guix.authentication-" + branch "." key))))) + (false-if-git-error + (config-entry-value + (config-get-entry config + (string-append "guix.authentication." + key)))))))) + +(define (configured-introduction repository) + "Return two values: the commit and signer fingerprint (strings) as +configured in REPOSITORY. Error out if one or both were missing." + (let* ((commit (config-value repository "introduction-commit")) + (signer (config-value repository "introduction-signer"))) + (unless (and commit signer) + (leave (G_ "unknown introductory commit and signer~%"))) + (values commit signer))) + +(define (configured-keyring-reference repository) + "Return the keyring reference configured in REPOSITORY or #f if missing." + (config-value repository "keyring")) + +(define (configured? repository) + "Return true if REPOSITORY already container introduction info in its +'config' file." + (and (config-value repository "introduction-commit") + (config-value repository "introduction-signer"))) + +(define* (record-configuration repository + #:key commit signer keyring-reference) + "Record COMMIT, SIGNER, and KEYRING-REFERENCE in the 'config' file of +REPOSITORY." + (define config + (repository-config repository)) + + ;; Guile-Git < 0.7.0 lacks 'set-config-string'. + (if (module-defined? (resolve-interface '(git)) 'set-config-string) + (begin + (set-config-string config "guix.authentication.introduction-commit" + commit) + (set-config-string config "guix.authentication.introduction-signer" + signer) + (set-config-string config "guix.authentication.keyring" + keyring-reference) + (info (G_ "introduction and keyring recorded \ +in repository configuration file~%"))) + (warning (G_ "could not record introduction and keyring configuration\ + (Guile-Git too old?)~%")))) (define (show-stats stats) "Display STATS, an alist containing commit signing stats as returned by @@ -158,35 +230,48 @@ (define (guix-git-authenticate . args) (progress-reporter/bar (length commits)) progress-reporter/silent)) + (define (missing-arguments) + (leave (G_ "wrong number of arguments; \ +expected COMMIT and SIGNER~%"))) + (with-error-handling (with-git-error-handling - (match (command-line-arguments options) - ((commit signer) - (let* ((directory (assoc-ref options 'directory)) - (show-stats? (assoc-ref options 'show-stats?)) - (keyring (assoc-ref options 'keyring-reference)) - (repository (repository-open directory)) - (end (match (assoc-ref options 'end-commit) - (#f (reference-target - (repository-head repository))) - (oid oid))) - (history (match (assoc-ref options 'historical-authorizations) - (#f '()) - (file (call-with-input-file file - read-authorizations)))) - (cache-key (or (assoc-ref options 'cache-key) - (repository-cache-key repository)))) - (define stats - (authenticate-repository repository (string->oid commit) - (openpgp-fingerprint* signer) - #:end end - #:keyring-reference keyring - #:historical-authorizations history - #:cache-key cache-key - #:make-reporter make-reporter)) + (let* ((directory (assoc-ref options 'directory)) + (show-stats? (assoc-ref options 'show-stats?)) + (repository (repository-open directory)) + (commit signer (match (command-line-arguments options) + ((commit signer) + (values commit signer)) + (() + (configured-introduction repository)) + (_ + (missing-arguments)))) + (keyring (or (assoc-ref options 'keyring-reference) + (configured-keyring-reference repository) + "keyring")) + (end (match (assoc-ref options 'end-commit) + (#f (reference-target + (repository-head repository))) + (oid oid))) + (history (match (assoc-ref options 'historical-authorizations) + (#f '()) + (file (call-with-input-file file + read-authorizations)))) + (cache-key (or (assoc-ref options 'cache-key) + (repository-cache-key repository)))) + (define stats + (authenticate-repository repository (string->oid commit) + (openpgp-fingerprint* signer) + #:end end + #:keyring-reference keyring + #:historical-authorizations history + #:cache-key cache-key + #:make-reporter make-reporter)) - (when (and show-stats? (not (null? stats))) - (show-stats stats)))) - (_ - (leave (G_ "wrong number of arguments; \ -expected COMMIT and SIGNER~%"))))))) + (unless (configured? repository) + (record-configuration repository + #:commit commit #:signer signer + #:keyring-reference keyring)) + + (when (and show-stats? (not (null? stats))) + (show-stats stats)))))) diff --git a/tests/guix-git-authenticate.sh b/tests/guix-git-authenticate.sh index ec89f941e6..7b8951b9aa 100644 --- a/tests/guix-git-authenticate.sh +++ b/tests/guix-git-authenticate.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2020, 2022 Ludovic Courtès +# Copyright © 2020, 2022, 2024 Ludovic Courtès # # This file is part of GNU Guix. # @@ -46,6 +46,13 @@ guix git authenticate "$intro_commit" "$intro_signer" \ --cache-key="$cache_key" --stats \ --end="$v1_2_0_commit" +# Check a commit that came soon after v1.2.0. No need to repeat $intro_commit +# and $intro_signer because it should have been recorded in '.git/config'. +after_v1_2_0="be4d9527b55b6829e33a6e0727496af25927a786" +guix git authenticate \ + --cache-key="$cache_key" --stats \ + --end="$v1_2_0_commit" + rm "$XDG_CACHE_HOME/guix/authentication/$cache_key" # Commit and signer of the 'v1.0.0' tag. From patchwork Sun Apr 7 20:38:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 62829 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 5001D27BBEC; Sun, 7 Apr 2024 21:40:27 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id CE46727BBE2 for ; Sun, 7 Apr 2024 21:40:26 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rtZJ5-00018b-IY; Sun, 07 Apr 2024 16:40:03 -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 1rtZJ4-00017c-8m for guix-patches@gnu.org; Sun, 07 Apr 2024 16:40:02 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rtZJ3-0005xm-U8; Sun, 07 Apr 2024 16:40:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rtZJ8-00013C-3o; Sun, 07 Apr 2024 16:40:06 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#69780] [PATCH v2 2/5] git authenticate: Discover the repository. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Sun, 07 Apr 2024 20:40:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69780 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69780@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 69780-submit@debbugs.gnu.org id=B69780.17125223513696 (code B ref 69780); Sun, 07 Apr 2024 20:40:06 +0000 Received: (at 69780) by debbugs.gnu.org; 7 Apr 2024 20:39:11 +0000 Received: from localhost ([127.0.0.1]:44802 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZIE-0000xR-Aq for submit@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40928) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZI6-0000v2-F6 for 69780@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:05 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rtZHt-0005px-VS; Sun, 07 Apr 2024 16:38:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=cvGa88s4XJOzrayXoaISyWAvNilcSrEZUuWaY33U+Qc=; b=GmcFKdTR7EdoGqUa45mU 1tuQO0nGxf6XNWa0fZHYEkS3Po3Ig+mW13fo2OkJvPdAKKy8MIr/PjoUFQtpWO7Mdn41u/DKHwObj zrOXe1DOUOWSdR7SWiFrk6VJnz0dztTfjVUL5dMAA/3VxiiswqMyCbizz0U1synvkBtUfT1lJj49L XSBTkURnPOPu6EJPBTsoLDGF5yo3J0tnsH600mF2FxjXzDNbwF0ikMMvJqNvr9aFnz00zs9nniXl4 iWjUgXUKkY7X+yfBTjO5tjbC8xCCCo89C15A0T19D4Pj9Uy8dOGfELsnP6p0XhLF4fLAZS1qQmCY6 Jq1MBPEReYAEDA==; From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Sun, 7 Apr 2024 22:38:27 +0200 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches This allows one to run ‘guix git authenticate’ from a sub-directory of the checkout. * guix/scripts/git/authenticate.scm (%default-options): Remove ‘directory’ key. (guix-git-authenticate): Use ‘repository-discover’ when ‘directory’ option is missing. Change-Id: Ifada00d559254971ed7eeb8c0a8d4ae74ff3defc --- guix/scripts/git/authenticate.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/guix/scripts/git/authenticate.scm b/guix/scripts/git/authenticate.scm index a606f1c146..d81a0e1ffb 100644 --- a/guix/scripts/git/authenticate.scm +++ b/guix/scripts/git/authenticate.scm @@ -74,7 +74,7 @@ (define %options (alist-cons 'show-stats? #t result))))) (define %default-options - '((directory . "."))) + '()) (define (current-branch repository) "Return the name of the checked out branch of REPOSITORY or #f if it could @@ -236,9 +236,9 @@ (define (guix-git-authenticate . args) (with-error-handling (with-git-error-handling - (let* ((directory (assoc-ref options 'directory)) - (show-stats? (assoc-ref options 'show-stats?)) - (repository (repository-open directory)) + (let* ((show-stats? (assoc-ref options 'show-stats?)) + (repository (repository-open (or (assoc-ref options 'directory) + (repository-discover ".")))) (commit signer (match (command-line-arguments options) ((commit signer) (values commit signer)) From patchwork Sun Apr 7 20:38:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 62826 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 9DA9B27BBEA; Sun, 7 Apr 2024 21:40:04 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 4489A27BBE2 for ; Sun, 7 Apr 2024 21:40:04 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rtZJ3-00016q-Jo; Sun, 07 Apr 2024 16:40:01 -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 1rtZJ2-00016Z-89 for guix-patches@gnu.org; Sun, 07 Apr 2024 16:40:00 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rtZJ1-0005xF-Vh; Sun, 07 Apr 2024 16:39:59 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rtZJ8-00013L-Hy; Sun, 07 Apr 2024 16:40:06 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#69780] [PATCH v2 3/5] git authenticate: Print something upon success. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Sun, 07 Apr 2024 20:40:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69780 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69780@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 69780-submit@debbugs.gnu.org id=B69780.17125223513703 (code B ref 69780); Sun, 07 Apr 2024 20:40:06 +0000 Received: (at 69780) by debbugs.gnu.org; 7 Apr 2024 20:39:11 +0000 Received: from localhost ([127.0.0.1]:44804 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZIE-0000xZ-Vt for submit@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40942) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZI8-0000v5-UX for 69780@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:05 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rtZHw-0005qN-L8; Sun, 07 Apr 2024 16:38:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=W1TVkAHGT8uhCnv3nOKyNq86MujsZ5rUiOrufkQ61f0=; b=grBAuy+bosBvGt3ALTqG GRnzQ8Rx8sy5wKy2K0IeqFSyGz9HpMK2vmgcacxPTua8GQT3CkoPf8UFPs8lYAw5PWybFNZBhP5PL DQVc2tvYs76x/wwjR10x2NT7BS30R43NaWtYJqOCZzAm1wEUXB9v5j3L5O/QhYYOGOt6pV8P/2xPr ZwpIO6euF4KFz4OTKRNxg6wfw8bBfb0uGxHKcBoKdCN5PL7hOyslO9BhYCaMcws5gs31sxpnUyHxX 2qcXaqAt5pCodETY7VDVantZN1K7o6grawOt3Ay8XsgbfC98gOWuRjMeJ+XRXHwJMf0eol5UMTlZI S6tdSPU9Zqfs3Q==; From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Sun, 7 Apr 2024 22:38:28 +0200 Message-ID: <879165ecce50db273ef575073a215e5da7cdd126.1712522119.git.ludo@gnu.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Until now the command would be silent and exit with 0. * guix/scripts/git/authenticate.scm (guix-git-authenticate): Print something upon success. Change-Id: I08d086c35df6ac74ee847df0479660293c68987d --- guix/scripts/git/authenticate.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/scripts/git/authenticate.scm b/guix/scripts/git/authenticate.scm index d81a0e1ffb..0797cba0b6 100644 --- a/guix/scripts/git/authenticate.scm +++ b/guix/scripts/git/authenticate.scm @@ -274,4 +274,7 @@ (define (guix-git-authenticate . args) #:keyring-reference keyring)) (when (and show-stats? (not (null? stats))) - (show-stats stats)))))) + (show-stats stats)) + + (info (G_ "successfully authenticated commit ~a~%") + (oid->string end)))))) From patchwork Sun Apr 7 20:38:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 62828 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id E151527BBEA; Sun, 7 Apr 2024 21:40:20 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id F2E3227BBE2 for ; Sun, 7 Apr 2024 21:40:19 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rtZJ6-00019b-20; Sun, 07 Apr 2024 16:40:04 -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 1rtZJ4-00017b-9S for guix-patches@gnu.org; Sun, 07 Apr 2024 16:40:02 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rtZJ3-0005xn-Um; Sun, 07 Apr 2024 16:40:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rtZJ8-00013T-W1; Sun, 07 Apr 2024 16:40:07 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#69780] [PATCH v2 4/5] git authenticate: Install pre-push and post-checkout hooks. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Sun, 07 Apr 2024 20:40:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69780 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69780@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 69780-submit@debbugs.gnu.org id=B69780.17125223553713 (code B ref 69780); Sun, 07 Apr 2024 20:40:06 +0000 Received: (at 69780) by debbugs.gnu.org; 7 Apr 2024 20:39:15 +0000 Received: from localhost ([127.0.0.1]:44806 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZIF-0000xg-B3 for submit@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZI9-0000vN-Pc for 69780@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:06 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rtZHx-0005qU-G3; Sun, 07 Apr 2024 16:38:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=8ZAmKgn+xiBZV4lMXqIvlvuj3DrSx3JRkOaDsBKL2YY=; b=SKwuXANgVrYFqXqtuipG OVgujT3zBe55yYUpfQihdIvOZZaLhqwmPCQHefpwWqna1/hCj7dhVr2XeqNFAg6KTEcg4QP7SHamd zShj8ghRaTc6puolB8wIw0Cqru8QInYcmF4he8Sld8IgKHfY8npW31+8ZDx3kA6QZGB3mFbBR5PuW rY5pDHUQp73Lm5llvJa7vAtEdqtxRhaDi+vSQnDN4KWG3JGI4MxNYofTQqOL0+iAxEfweF71LbKU8 MvegS6TGo7msAif9R6N3HDJ1Px0yGEq6BvvcMl++SJQNlVKNoJu/Eia3ZubSzgwCGa0+1pTguNpAw abjrZIsxrQ1mIw==; From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Sun, 7 Apr 2024 22:38:29 +0200 Message-ID: <8361a793c4b4e18115c0e68e6065a7846e759795.1712522119.git.ludo@gnu.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * guix/scripts/git/authenticate.scm (install-hooks): New procedure. (guix-git-authenticate): Use it. * doc/guix.texi (Invoking guix git authenticate): Document it. Change-Id: I4464a33193186e85b476a12740e54412bd58429c --- doc/guix.texi | 5 ++++ guix/scripts/git/authenticate.scm | 49 ++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 6ff0e76d97..9db0ff865d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7715,6 +7715,11 @@ Invoking guix git authenticate keyring = keyring @end smallexample +The first run also attempts to install pre-push and post-merge hooks, +such that @command{guix git authenticate} is invoked as soon as you run +@command{git push}, @command{git pull}, and related commands; it does +not overwrite preexisting hooks though. + The command-line options described below allow you to fine-tune the process. diff --git a/guix/scripts/git/authenticate.scm b/guix/scripts/git/authenticate.scm index 0797cba0b6..e3ecb67c89 100644 --- a/guix/scripts/git/authenticate.scm +++ b/guix/scripts/git/authenticate.scm @@ -148,6 +148,52 @@ (define* (record-configuration repository (warning (G_ "could not record introduction and keyring configuration\ (Guile-Git too old?)~%")))) +(define (install-hooks repository) + "Attempt to install in REPOSITORY hooks that invoke 'guix git authenticate'. +Bail out if one of these already exists." + ;; Guile-Git < 0.7.0 lacks 'repository-common-directory'. + (if (module-defined? (resolve-interface '(git)) + 'repository-common-directory) + (let () + (define directory + (repository-common-directory repository)) + + (define pre-push-hook + (in-vicinity directory "hooks/pre-push")) + + (define post-merge-hook + (in-vicinity directory "hooks/post-merge")) + + (if (or (file-exists? pre-push-hook) + (file-exists? post-merge-hook)) + (begin + (warning (G_ "not overriding pre-existing hooks '~a' and '~a'~%") + pre-push-hook post-merge-hook) + (display-hint (G_ "Consider running @command{guix git authenticate} +from your pre-push and post-merge hooks so your repository is automatically +authenticated before you push and when you pull updates."))) + (begin + (call-with-output-file pre-push-hook + (lambda (port) + (format port "#!/bin/sh +# Installed by 'guix git authenticate'. +set -e +while read local_ref local_oid remote_ref remote_oid +do + guix git authenticate --end=\"$local_oid\" +done\n") + (chmod port #o755))) + (call-with-output-file post-merge-hook + (lambda (port) + (format port "#!/bin/sh +# Installed by 'guix git authenticate'. +exec guix git authenticate\n") + (chmod port #o755))) + (info (G_ "installed hooks '~a' and '~a'~%") + pre-push-hook post-merge-hook)))) + (warning (G_ "cannot determine where to install hooks\ + (Guile-Git too old?)~%")))) + (define (show-stats stats) "Display STATS, an alist containing commit signing stats as returned by 'authenticate-repository'." @@ -271,7 +317,8 @@ (define (guix-git-authenticate . args) (unless (configured? repository) (record-configuration repository #:commit commit #:signer signer - #:keyring-reference keyring)) + #:keyring-reference keyring) + (install-hooks repository)) (when (and show-stats? (not (null? stats))) (show-stats stats)) From patchwork Sun Apr 7 20:38:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 62830 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 0EEA327BBEA; Sun, 7 Apr 2024 21:40:37 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 55E0F27BBE2 for ; Sun, 7 Apr 2024 21:40:36 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rtZJ7-0001AP-AL; Sun, 07 Apr 2024 16:40:05 -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 1rtZJ5-00018G-0W for guix-patches@gnu.org; Sun, 07 Apr 2024 16:40:03 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rtZJ4-00062D-OF for guix-patches@gnu.org; Sun, 07 Apr 2024 16:40:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rtZJ9-00013h-E6; Sun, 07 Apr 2024 16:40:07 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#69780] [PATCH v2 5/5] DRAFT news: Add entry for =?utf-8?b?4oCY?= =?utf-8?b?Z3VpeA==?= git =?utf-8?b?YXV0aGVudGljYXRl4oCZ?= changes. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: pelzflorian@pelzflorian.de, julien@lepiller.eu, guix-patches@gnu.org Resent-Date: Sun, 07 Apr 2024 20:40:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69780 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69780@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Florian Pelz , Florian Pelz , Julien Lepiller X-Debbugs-Original-Xcc: Florian Pelz , Julien Lepiller Received: via spool by 69780-submit@debbugs.gnu.org id=B69780.17125223563721 (code B ref 69780); Sun, 07 Apr 2024 20:40:07 +0000 Received: (at 69780) by debbugs.gnu.org; 7 Apr 2024 20:39:16 +0000 Received: from localhost ([127.0.0.1]:44808 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZIK-0000xx-6L for submit@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40960) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rtZIB-0000vt-LC for 69780@debbugs.gnu.org; Sun, 07 Apr 2024 16:39:09 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rtZHy-0005qc-IU; Sun, 07 Apr 2024 16:38:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=4fLRJrLDyDZvl6Z8//xN/a7w1GF3IKZy+IiuWLkW5ek=; b=Pd0gdF7rR4tWGRPKoCp/ DMLf72FzgnDiu47EY7wE3UjUNvcesIXXYZFpZVDv+uzEuI6BPswyxPvMCh7kZ0ceJNegVTJhbZsQJ L/VbxRa9HZc9vkD35PeBgEmihUPPZacQ3rzt5Rn9Mec3Oj1F8ayM8gGR/2rw2wrnH/Rtxbp0XO1xD Ecy3vE+xI5Mtx2wxn7JtdcKGEP51UQo7LSlE6SiQ6MT+/dx6gGIj++Yzpf0OpKQpB+tSzAqcwPZMj fF9kWBhCUPnO/QhYPajMFUUQ5cq6xGQf+XRBdxjc2AKvFcfioJqtabVA3Q97JcKqTq9tztmfvDyRv 5zfHSnmA8etdMA==; From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Sun, 7 Apr 2024 22:38:30 +0200 Message-ID: <191a72c762b9453dbff0e4ac21beb3b1d394dd56.1712522119.git.ludo@gnu.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * etc/news.scm: Add entry. Change-Id: I661a0c0bfc373b87a70508ad9a735315c96ba4a5 Co-authored-by: Florian Pelz Change-Id: Ibafef9d432df163948c4884279d4ce2579ed0312 --- etc/news.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/etc/news.scm b/etc/news.scm index 9443475455..e9fde35346 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -31,6 +31,50 @@ (channel-news (version 0) + (entry (commit "TODO") + (title + (en "@command{guix git authenticate} usage simplified") + (de "@command{guix git authenticate} ist leichter nutzbar") + (fr "@command{guix git authenticate} simplifiée")) + (body + (en "Usage of the @command{guix git authenticate} command has been +simplified. The command is useful to channel authors and to developers +willing to validate the provenance of their code. + +On your first use, @command{guix git authenticate} will now record the commit +and signer (the @dfn{introduction}) in the @file{.git/config} file of your +repository so that you don't have to pass them on the command line in +subsequent runs. It will also install pre-push and post-merge hooks, +unless preexisting hooks are found. + +Run @command{info \"(guix) Invoking guix authenticate\"} for more info.") + (de "Der Befehl @command{guix git authenticate} kann jetzt einfacher +benutzt werden. Mit dem Befehl können Kanalautoren und Entwickler die +Provenienz ihres Codes überprüfen. + +Beim ersten Gebrauch speichert @command{guix git authenticate} Commit und +Unterzeichner (wie in der @dfn{Kanaleinführung}) in der Datei +@file{.git/config} Ihres Repositorys, so dass Sie sie bei späteren +Ausführungen nicht mehr auf der Befehlszeile angeben müssen. Auch werden +Git-Hooks für pre-push und post-merge installiert, wenn es bisher keine +Hooks dieser Art gibt. + +Führen Sie @command{info \"(guix.de) Aufruf von guix git authenticate\"} +aus, wenn Sie mehr wissen wollen.") + (fr "L'utilisation de la commande @command{guix git authenticate} a +été simplifiée. Cette commande est utile aux auteur·rices de canaux et aux +développeur·euses souhaitant pouvoir valider l'origine de leur code. + +À la première utilisation, @command{guix git authenticate} enregistre +désormais le commit et signataire (l'@dfn{introduction}) dans le fichier +@file{.git/config} du dépôt, ce qui permet de ne pas avoir à les spécifier sur +la ligne de commande les fois suivantes. La commande installe aussi des +crochets « pre-push » et « post-merge », sauf si des crochets préexistants +sont trouvés. + +Lancer @command{info \"(guix.fr) Invoquer guix git authenticate\"} pour en +savoir plus."))) + (entry (commit "523f3def65ab061a87f4fc9e6f9008e6a78fafb5") (title (en "GNOME updated to version 44 with a more modular desktop service")