Subject: Re: bug#51216: [PATCH 0/1] swh: Allows token from Software Heritage authentication service.

From: Ludovic Courtès <[email-masked]>
Date: Thu, 14 Oct 2021 23:46:46 +0200

zimoun <[email-masked]> 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’.