guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 99f85246e199bb9c98a3a0deebe3a257c7ce5ae1
Author: Ludovic Courtès <[email protected]>
AuthorDate: Sun Jun 8 20:02:42 2025 +0200
git authenticate: Do nothing when invoked from the keyring branch.
Fixes <https://issues.guix.gnu.org/78283>.
* guix/scripts/git/authenticate.scm (guix-git-authenticate): Call
‘current-branch’ and do nothing if it returns the keyring branch.
Reported-by: Vagrant Cascadian <[email protected]>
Change-Id: I66c2a3f4babf68ac1df0913db6bc708ac0c7968e
---
guix/scripts/git/authenticate.scm | 55 +++++++++++++++++++++++----------------
1 file changed, 32 insertions(+), 23 deletions(-)
diff --git a/guix/scripts/git/authenticate.scm
b/guix/scripts/git/authenticate.scm
index 5f05428461..c80fde42b4 100644
--- a/guix/scripts/git/authenticate.scm
+++ b/guix/scripts/git/authenticate.scm
@@ -351,26 +351,35 @@ expected COMMIT and SIGNER~%")))
(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))
-
- (if (configured? repository)
- (maybe-upgrade-hooks repository)
- (begin
- (record-configuration repository
- #:commit commit #:signer signer
- #:keyring-reference keyring)
- (install-hooks repository)))
-
- (when (and show-stats? (not (null? stats)))
- (show-stats stats))
-
- (info (G_ "successfully authenticated commit ~a~%")
- (oid->string end))))))
+ (repository-cache-key repository)))
+ (branch (current-branch repository)))
+ ;; Since the keyring branch is not authenticated, exit successfully
+ ;; when invoked on it. This exit status is what the 'post-merge' hook
+ ;; expects when running 'git pull' on that branch, and what the
+ ;; 'pre-push' hook expects when running 'git push' on that branch.
+ (if (and branch (string=? branch keyring))
+ (info (G_ "current branch '~a' is the keyring branch; \
+doing nothing~%")
+ branch)
+ (let ((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)))
+
+ (if (configured? repository)
+ (maybe-upgrade-hooks repository)
+ (begin
+ (record-configuration repository
+ #:commit commit #:signer signer
+ #:keyring-reference keyring)
+ (install-hooks repository)))
+
+ (when (and show-stats? (not (null? stats)))
+ (show-stats stats))
+
+ (info (G_ "successfully authenticated commit ~a~%")
+ (oid->string end))))))))