~ruther/guix-local

b7a3ad2922cb407b18fb6c3489158dcbe533c6d3 — Nguyễn Gia Phong 5 months ago 04e9d68
services: gitile: Add git-owner-validation? configuration.

* gnu/services/version-control.scm (gitile-configuration):
  Add git-owner-validation? field.
* doc/guix.text (Version Control Services): Document it.

Change-Id: I7d35e66e512fcaae25a5eac138b0fb2437a7c70c
2 files changed, 14 insertions(+), 4 deletions(-)

M doc/guix.texi
M gnu/services/version-control.scm
M doc/guix.texi => doc/guix.texi +4 -0
@@ 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.


M gnu/services/version-control.scm => gnu/services/version-control.scm +10 -4
@@ 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
    (($ <gitile-configuration> 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
    (($ <gitile-configuration> 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"