[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/04: import: github: Fix regression on the /releases retrieval.
From: |
Ludovic Courtès |
Subject: |
03/04: import: github: Fix regression on the /releases retrieval. |
Date: |
Fri, 13 Jan 2017 17:24:41 +0000 (UTC) |
civodul pushed a commit to branch master
in repository guix.
commit 4cd5ec801bb6c82cc1df2c4ac419d89614aa5d1b
Author: Ludovic Courtès <address@hidden>
Date: Fri Jan 13 18:14:19 2017 +0100
import: github: Fix regression on the /releases retrieval.
Fixes a regression introduced in
62bd24db39a86f80242f923eb4cc2f18f3b02c67, which introduced a call to
'hash-table->alist'.
* guix/import/github.scm (json-fetch*): New procedure.
(latest-released-version): Use it.
---
guix/import/github.scm | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/guix/import/github.scm b/guix/import/github.scm
index 01452b1..a41511a 100644
--- a/guix/import/github.scm
+++ b/guix/import/github.scm
@@ -19,16 +19,28 @@
(define-module (guix import github)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-34)
#:use-module (json)
#:use-module (guix utils)
#:use-module ((guix download) #:prefix download:)
#:use-module (guix import utils)
- #:use-module (guix import json)
#:use-module (guix packages)
#:use-module (guix upstream)
+ #:use-module (guix http-client)
#:use-module (web uri)
#:export (%github-updater))
+(define (json-fetch* url)
+ "Return a representation of the JSON resource URL (a list or hash table), or
+#f if URL returns 404."
+ (guard (c ((and (http-get-error? c)
+ (= 404 (http-get-error-code c)))
+ #f)) ;"expected" if package is unknown
+ (let* ((port (http-fetch url))
+ (result (json->scm port)))
+ (close-port port)
+ result)))
+
(define (find-extension url)
"Return the extension of the archive e.g. '.tar.gz' given a URL, or
false if none is recognized"
@@ -125,7 +137,7 @@ the package e.g. 'bedtools2'. Return #f if there is no
releases"
"https://api.github.com/repos/"
(github-user-slash-repository url)
"/releases"))
- (json (json-fetch
+ (json (json-fetch*
(if token
(string-append api-url "?access_token=" token)
api-url))))