import: github: Catch HTTP 403 error during fetch.
* guix/import/github.scm (json-fetch*): Catch 403 HTTP error that may be raised if a github token has not been set. Signed-off-by: Mathieu OTHACEHE <m.othacehe@gmail.com> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
11f3885bb5
commit
d18b79fed8
|
@ -32,10 +32,13 @@
|
||||||
|
|
||||||
(define (json-fetch* url)
|
(define (json-fetch* url)
|
||||||
"Return a representation of the JSON resource URL (a list or hash table), or
|
"Return a representation of the JSON resource URL (a list or hash table), or
|
||||||
#f if URL returns 404."
|
#f if URL returns 403 or 404."
|
||||||
(guard (c ((and (http-get-error? c)
|
(guard (c ((and (http-get-error? c)
|
||||||
(= 404 (http-get-error-code c)))
|
(let ((error (http-get-error-code c)))
|
||||||
#f)) ;"expected" if package is unknown
|
(or (= 403 error)
|
||||||
|
(= 404 error))))
|
||||||
|
#f)) ;; "expected" if there is an authentification error (403),
|
||||||
|
;; or if package is unknown (404).
|
||||||
;; Note: github.com returns 403 if we omit a 'User-Agent' header.
|
;; Note: github.com returns 403 if we omit a 'User-Agent' header.
|
||||||
(let* ((port (http-fetch url))
|
(let* ((port (http-fetch url))
|
||||||
(result (json->scm port)))
|
(result (json->scm port)))
|
||||||
|
|
Loading…
Reference in New Issue