aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service')
-rw-r--r--guix-data-service/web/controller.scm2
-rw-r--r--guix-data-service/web/repository/controller.scm5
-rw-r--r--guix-data-service/web/repository/html.scm34
3 files changed, 40 insertions, 1 deletions
diff --git a/guix-data-service/web/controller.scm b/guix-data-service/web/controller.scm
index f8903c9..5a89ed7 100644
--- a/guix-data-service/web/controller.scm
+++ b/guix-data-service/web/controller.scm
@@ -289,6 +289,8 @@
(count-derivations conn))))
(('GET "revision" args ...)
(delegate-to revision-controller))
+ (('GET "repositories")
+ (delegate-to repository-controller))
(('GET "repository" _ ...)
(delegate-to repository-controller))
(('GET "gnu" "store" filename)
diff --git a/guix-data-service/web/repository/controller.scm b/guix-data-service/web/repository/controller.scm
index 30e7ffd..aaf763c 100644
--- a/guix-data-service/web/repository/controller.scm
+++ b/guix-data-service/web/repository/controller.scm
@@ -42,6 +42,11 @@
(uri-path (request-uri request)))
(match method-and-path-components
+ (('GET "repositories")
+ (let ((git-repositories (all-git-repositories conn)))
+ (render-html
+ #:sxml
+ (view-git-repositories git-repositories))))
(('GET "repository" id)
(match (select-git-repository conn id)
((label url cgit-url-base)
diff --git a/guix-data-service/web/repository/html.scm b/guix-data-service/web/repository/html.scm
index 4503f08..b001be7 100644
--- a/guix-data-service/web/repository/html.scm
+++ b/guix-data-service/web/repository/html.scm
@@ -21,12 +21,44 @@
#:use-module (ice-9 match)
#:use-module (guix-data-service web html-utils)
#:use-module (guix-data-service web view html)
- #:export (view-git-repository
+ #:export (view-git-repositories
+ view-git-repository
view-branches
view-branch
view-branch-package
view-branch-package-derivations))
+(define* (view-git-repositories git-repositories)
+ (layout
+ #:body
+ `(,(header)
+ (div
+ (@ (class "container"))
+ (div
+ (@ (class "row"))
+ (div
+ (@ (class "col-md-12"))
+ (h1 "Git repositories")))
+ ,@(map
+ (match-lambda
+ ((id label url cgit-base-url)
+ `(div
+ (@ (class "row"))
+ (div
+ (@ (class "col-md-12"))
+ (h3 ,url)
+ (a (@ (href ,(string-append "/repository/" (number->string id))))
+ "View repository")
+ (dl
+ (@ (class "dl-horizontal"))
+ (dt "Label")
+ (dd ,label)
+ (dt "URL")
+ (dd ,url)
+ (dt "cgit base URL")
+ (dd ,cgit-base-url))))))
+ git-repositories)))))
+
(define* (view-git-repository git-repository-id
label url cgit-url-base
branches-with-most-recent-commits)