aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model/git-repository.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-06-19 23:12:20 +0100
committerChristopher Baines <mail@cbaines.net>2019-06-19 23:39:53 +0100
commitea80311c496b482e1360b5eee730f7f032c62c3d (patch)
tree49d6f72ea80f3224f4099c756a4a11de104f673f /guix-data-service/model/git-repository.scm
parenta168b23c24c9069ff7dc655d05a241b0c01513b3 (diff)
downloaddata-service-ea80311c496b482e1360b5eee730f7f032c62c3d.tar
data-service-ea80311c496b482e1360b5eee730f7f032c62c3d.tar.gz
Use revision labels on the index page as well
Also flip the branch and revision columns around, and add date information to the branch column.
Diffstat (limited to 'guix-data-service/model/git-repository.scm')
-rw-r--r--guix-data-service/model/git-repository.scm29
1 files changed, 22 insertions, 7 deletions
diff --git a/guix-data-service/model/git-repository.scm b/guix-data-service/model/git-repository.scm
index 463222c..bbb5553 100644
--- a/guix-data-service/model/git-repository.scm
+++ b/guix-data-service/model/git-repository.scm
@@ -1,5 +1,6 @@
(define-module (guix-data-service model git-repository)
#:use-module (ice-9 match)
+ #:use-module (json)
#:use-module (squee)
#:export (all-git-repositories
git-repository-id->url
@@ -44,22 +45,36 @@
(define (guix-revisions-and-jobs-for-git-repository conn git-repository-id)
(define query
"
-SELECT NULL AS id, load_new_guix_revision_jobs.id AS job_id, commit, source
+SELECT NULL AS id, load_new_guix_revision_jobs.id AS job_id,
+ (
+ SELECT json_agg(event)
+ FROM load_new_guix_revision_job_events
+ WHERE load_new_guix_revision_jobs.id = load_new_guix_revision_job_events.job_id
+ ) AS job_events, commit, source
FROM load_new_guix_revision_jobs
WHERE git_repository_id = $1 AND succeeded_at IS NULL AND NOT EXISTS (
SELECT 1 FROM load_new_guix_revision_job_events
WHERE event = 'failure' AND job_id = load_new_guix_revision_jobs.id
)
-UNION
-SELECT id, NULL, commit, NULL
+UNION ALL
+SELECT id, NULL, NULL, commit, NULL
FROM guix_revisions
WHERE git_repository_id = $1
ORDER BY 1 DESC NULLS FIRST, 2 DESC LIMIT 10;")
- (exec-query
- conn
- query
- (list git-repository-id)))
+ (map
+ (match-lambda
+ ((id job_id job_events commit source)
+ (list id
+ job_id
+ (if (string=? "" job_events)
+ '()
+ (vector->list (json-string->scm job_events)))
+ commit source)))
+ (exec-query
+ conn
+ query
+ (list git-repository-id))))
(define (git-repositories-containing-commit conn commit)
(define query