diff options
-rw-r--r-- | guix/scripts/git/authenticate.scm | 10 | ||||
-rw-r--r-- | tests/guix-git-authenticate.sh | 9 |
2 files changed, 17 insertions, 2 deletions
diff --git a/guix/scripts/git/authenticate.scm b/guix/scripts/git/authenticate.scm index 3bc72a70b1..5f05428461 100644 --- a/guix/scripts/git/authenticate.scm +++ b/guix/scripts/git/authenticate.scm @@ -233,6 +233,14 @@ known-broken version is installed." (display %pre-push-hook port) (chmod port #o755))))) +(define (ensure-commit-id repository oid) + "If OID refers to an annotated tag, return its target commit; otherwise +return OID." + (let ((obj (object-lookup repository oid))) + (if (= OBJ-TAG (object-type obj)) + (tag-target-id (tag-lookup repository oid)) + oid))) + (define (show-stats stats) "Display STATS, an alist containing commit signing stats as returned by 'authenticate-repository'." @@ -337,7 +345,7 @@ expected COMMIT and SIGNER~%"))) (end (match (assoc-ref options 'end-commit) (#f (reference-target (repository-head repository))) - (oid oid))) + (oid (ensure-commit-id repository oid)))) (history (match (assoc-ref options 'historical-authorizations) (#f '()) (file (call-with-input-file file diff --git a/tests/guix-git-authenticate.sh b/tests/guix-git-authenticate.sh index 7b8951b9aa..6cbb7b59c1 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, 2024 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2020, 2022, 2024-2025 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -53,6 +53,13 @@ guix git authenticate \ --cache-key="$cache_key" --stats \ --end="$v1_2_0_commit" +# Likewise, but pass the OID of the annotated tag 'v1.2.0' instead of that of +# the commit--this mimics what the pre-push hook gets when pushing tags. +v1_2_0_annotated_tag="d5b556eef57321d0be89fdb07db447b2db2718ed" +guix git authenticate \ + --cache-key="$cache_key" --stats \ + --end="$v1_2_0_annotated_tag" + rm "$XDG_CACHE_HOME/guix/authentication/$cache_key" # Commit and signer of the 'v1.0.0' tag. |