diff --git a/doc/guix.texi b/doc/guix.texi index c7ac849ccc..aeecf81061 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -42781,6 +42781,10 @@ The location of the repositories. Note that only public repositories will be shown by Gitile. To make a repository public, add an empty @file{git-daemon-export-ok} file at the root of that repository. +@item @code{git-owner-validation?} (default: @code{#t}) +Whether to check for the service user's ownership of repositories. +By default, Git will refuse to process a repository owned by another user. + @item @code{base-git-url} The base git url that will be used to show clone commands. diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm index 93038c8286..a7f40812a6 100644 --- a/gnu/services/version-control.scm +++ b/gnu/services/version-control.scm @@ -86,7 +86,8 @@ gitile-configuration-port gitile-configuration-database gitile-configuration-repositories - gitile-configuration-git-base-url + gitile-configuration-git-owner-validation? + gitile-configuration-base-git-url gitile-configuration-index-title gitile-configuration-intro gitile-configuration-footer @@ -503,6 +504,8 @@ provide a web interface to view selected repositories."))) (default "/var/lib/gitile/gitile-db.sql")) (repositories gitile-configuration-repositories (default "/var/lib/gitolite/repositories")) + (git-owner-validation? gitile-configuration-git-owner-validation? + (default #t)) (base-git-url gitile-configuration-base-git-url) (index-title gitile-configuration-index-title (default "Index")) @@ -512,7 +515,8 @@ provide a web interface to view selected repositories."))) (default '())) (nginx gitile-configuration-nginx)) -(define (gitile-config-file host port database repositories base-git-url +(define (gitile-config-file host port database repositories + git-owner-validation? base-git-url index-title intro footer) (define build #~(write `(config @@ -520,6 +524,7 @@ provide a web interface to view selected repositories."))) (host #$host) (database #$database) (repositories #$repositories) + (git-owner-validation? #$git-owner-validation?) (base-git-url #$base-git-url) (index-title #$index-title) (intro #$intro) @@ -531,7 +536,7 @@ provide a web interface to view selected repositories."))) (define gitile-nginx-server-block (match-lambda (($ package host port database repositories - base-git-url index-title intro footer nginx) + git-owner-validation? base-git-url index-title intro footer nginx) (list (nginx-server-configuration (inherit nginx) (locations @@ -557,7 +562,7 @@ provide a web interface to view selected repositories."))) (define gitile-shepherd-service (match-lambda (($ package host port database repositories - base-git-url index-title intro footer nginx) + git-owner-validation? base-git-url index-title intro footer nginx) (list (shepherd-service (provision '(gitile)) (requirement '(loopback)) @@ -567,6 +572,7 @@ provide a web interface to view selected repositories."))) `(,#$gitile "-c" #$(gitile-config-file host port database repositories + git-owner-validation? base-git-url index-title intro footer)) #:user "gitile"