Message ID | 20211014213346.3270670-1-zimon.toutoune@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | swh: Allows token from Software Heritage authentication service. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
zimoun <zimon.toutoune@gmail.com> skribis: > The token is provided using the environment variable GUIX_SWH_TOKEN. > > * guix/swh.scm (swh-token): New variable. > (http-get*, http-post*): Use it. [...] > +;; Token from an account to the Software Heritage Authentication service > +;; <https://archive.softwareheritage.org/api/> > +(define swh-token > + (match (getenv "GUIX_SWH_TOKEN") > + (#f #f) > + ((? string-null? s) #f) > + ((? string? s) (string->symbol s)))) Could you turn it into a SRFI-39 parameter? > ;; XXX: Work around a bug in Guile 3.0.2 where #:verify-certificate? would > ;; be ignored (<https://bugs.gnu.org/40486>). > (define* (http-get* uri #:rest rest) > - (apply http-request uri #:method 'GET rest)) > + (apply http-request uri #:method 'GET > + #:headers > + (if swh-token > + `((authorization . (Bearer ,swh-token))) > + '()) > + rest)) > (define* (http-post* uri #:rest rest) > - (apply http-request uri #:method 'POST rest)) > + (apply http-request uri #:method 'POST > + #:headers > + (if swh-token > + `((authorization . (Bearer ,swh-token))) > + '()) > + rest)) These two procedures are meant to go away as soon as Guile > 3.0.2 is required. Could you instead pass #:headers in the ‘call’ procedure, and maybe in ‘vault-fetch’ too? Thanks! Ludo’.
diff --git a/guix/swh.scm b/guix/swh.scm index 5c41685a24..38a4af723a 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. ;;; @@ -153,12 +154,30 @@ (define url url (string-append url "/"))) +;; Token from an account to the Software Heritage Authentication service +;; <https://archive.softwareheritage.org/api/> +(define swh-token + (match (getenv "GUIX_SWH_TOKEN") + (#f #f) + ((? string-null? s) #f) + ((? string? s) (string->symbol s)))) + ;; XXX: Work around a bug in Guile 3.0.2 where #:verify-certificate? would ;; be ignored (<https://bugs.gnu.org/40486>). (define* (http-get* uri #:rest rest) - (apply http-request uri #:method 'GET rest)) + (apply http-request uri #:method 'GET + #:headers + (if swh-token + `((authorization . (Bearer ,swh-token))) + '()) + rest)) (define* (http-post* uri #:rest rest) - (apply http-request uri #:method 'POST rest)) + (apply http-request uri #:method 'POST + #:headers + (if swh-token + `((authorization . (Bearer ,swh-token))) + '()) + rest)) (define %date-regexp ;; Match strings like "2014-11-17T22:09:38+01:00" or