aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/web/repository/controller.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-11-09 08:30:02 +0000
committerChristopher Baines <mail@cbaines.net>2019-11-09 08:30:02 +0000
commit5bb4dfdabea34af0bfa03d6430935124f7b60a90 (patch)
tree721c0f53ab02ee73365ae9185ed96da0693ae8a1 /guix-data-service/web/repository/controller.scm
parentfea4dc9385f6f42e7b89f1fafe1a8189f62af9eb (diff)
downloaddata-service-5bb4dfdabea34af0bfa03d6430935124f7b60a90.tar
data-service-5bb4dfdabea34af0bfa03d6430935124f7b60a90.tar.gz
Diffstat (limited to 'guix-data-service/web/repository/controller.scm')
-rw-r--r--guix-data-service/web/repository/controller.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/guix-data-service/web/repository/controller.scm b/guix-data-service/web/repository/controller.scm
index 23e3559..cdc89d6 100644
--- a/guix-data-service/web/repository/controller.scm
+++ b/guix-data-service/web/repository/controller.scm
@@ -111,6 +111,42 @@
branch-name
package-name
package-versions))))))
+ (('GET "repository" repository-id "branch" branch-name "package" package-name "derivation-history")
+ (let ((package-derivations
+ (package-derivations-for-branch conn
+ (string->number repository-id)
+ branch-name
+ "x86_64-linux"
+ "x86_64-linux"
+ package-name)))
+ (case (most-appropriate-mime-type
+ '(application/json text/html)
+ mime-types)
+ ((application/json)
+ (render-json
+ `((versions . ,(list->vector
+ (map (match-lambda
+ ((package-version derivation-file-name
+ first-guix-revision-commit
+ first-datetime
+ last-guix-revision-commit
+ last-datetime)
+ `((version . ,package-version)
+ (derivation . ,derivation-file-name)
+ (first_revision
+ . ((commit . ,first-guix-revision-commit)
+ (datetime . ,first-datetime)))
+ (last_revision
+ . ((commit . ,last-guix-revision-commit)
+ (datetime . ,last-datetime))))))
+ package-versions))))))
+ (else
+ (render-html
+ #:sxml (view-branch-package-derivations
+ repository-id
+ branch-name
+ package-name
+ package-derivations))))))
(('GET "repository" repository-id "branch" branch-name "latest-processed-revision")
(let ((commit-hash
(latest-processed-commit-for-branch conn repository-id branch-name)))