summaryrefslogtreecommitdiff
path: root/guix/swh.scm
diff options
context:
space:
mode:
authorzimoun <zimon.toutoune@gmail.com>2021-10-15 00:14:54 +0200
committerLudovic Courtès <ludo@gnu.org>2021-10-15 23:16:28 +0200
commit498cd9bcdbab2edacff9459d2c45d7631d9fb2d5 (patch)
treec6a54069ed1e4c1e576dce67ea13da07c0266fad /guix/swh.scm
parentbd61d62182bfda4a695757ec66810b28e8e1a6d0 (diff)
swh: Allows token from Software Heritage authentication service.
The token is provided using the environment variable GUIX_SWH_TOKEN. * guix/swh.scm (%swh-token): New variable. (call): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'guix/swh.scm')
-rw-r--r--guix/swh.scm11
1 files changed, 11 insertions, 0 deletions
diff --git a/guix/swh.scm b/guix/swh.scm
index 5c41685a24..c7c1c873a2 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -136,6 +137,12 @@
;; Whether to verify the X.509 HTTPS certificate for %SWH-BASE-URL.
(make-parameter #t))
+;; Token from an account to the Software Heritage Authentication service
+;; <https://archive.softwareheritage.org/api/>
+(define %swh-token
+ (make-parameter (and=> (getenv "GUIX_SWH_TOKEN")
+ string->symbol)))
+
(define (swh-url path . rest)
;; URLs returned by the API may be relative or absolute. This has changed
;; without notice before. Handle both cases by detecting whether the path
@@ -246,6 +253,10 @@ FALSE-IF-404? is true, return #f upon 404 responses."
(and ((%allow-request?) url method)
(let*-values (((response port)
(method url #:streaming? #t
+ #:headers
+ (if (%swh-token)
+ `((authorization . (Bearer ,(%swh-token))))
+ '())
#:verify-certificate?
(%verify-swh-certificate?))))
;; See <https://archive.softwareheritage.org/api/#rate-limiting>.