summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Volf <~@wolfsden.cz>2025-04-01 00:10:20 +0200
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2025-04-03 21:16:24 +0900
commit85e6371a3fed83701d74dfc71fe27ec93987be71 (patch)
tree83254c6fdae40d5fe070aeab5e72bcaa41de38a5
parent24396e8327d02f46e50b58a31545f26e21be5425 (diff)
services: gitolite-service-type: Allow setting the admin name.
* gnu/services/version-control.scm (<gitolite-configuration>): Add admin-name field. (gitolite-activation): Use it. * doc/guix.texi (Version Control Services): Document it. Remove the wrong default value of admin-pubkey. State the need for .pub extension. Change-Id: Idadf4b2697cee6d1da10e6ba03bdc2e1d729c417 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-rw-r--r--doc/guix.texi9
-rw-r--r--gnu/services/version-control.scm17
2 files changed, 19 insertions, 7 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 3f38c11027b..3d6080dbaa5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -41010,7 +41010,7 @@ representing the configuration for Gitolite.
A ``file-like'' object (@pxref{G-Expressions, file-like objects}),
representing the git configuration for Gitolite.
-@item @code{admin-pubkey} (default: @code{#f})
+@item @code{admin-pubkey}
A ``file-like'' object (@pxref{G-Expressions, file-like objects}) used to
setup Gitolite. This will be inserted in to the @file{keydir} directory
within the gitolite-admin repository.
@@ -41021,6 +41021,13 @@ To specify the SSH key as a string, use the @code{plain-file} function.
(plain-file "yourname.pub" "ssh-rsa AAAA... guix@@example.com")
@end lisp
+The file has to have @file{.pub} extension.
+
+@item @code{admin-name} (default: @code{#f})
+Usually the key name is derived by taking a base name of the
+@code{admin-pubkey}. The resulting file name is the name of the
+gitolite user. You can use this field to override the automatic name.
+
@end table
@end deftp
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index e73e77e0b2f..51da1c59cb1 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -53,6 +53,7 @@
gitolite-configuration-user
gitolite-configuration-rc-file
gitolite-configuration-admin-pubkey
+ gitolite-configuration-admin-name
<gitolite-rc-file>
gitolite-rc-file
@@ -377,7 +378,9 @@ access to exported repositories under @file{/srv/git}."
(default (gitolite-rc-file)))
(git-config gitolite-configuration-git-config
(default (gitolite-git-configuration)))
- (admin-pubkey gitolite-configuration-admin-pubkey))
+ (admin-pubkey gitolite-configuration-admin-pubkey)
+ (admin-name gitolite-configuration-admin-name
+ (default #f)))
(define (gitolite-accounts config)
(match-record config <gitolite-configuration>
@@ -396,17 +399,19 @@ access to exported repositories under @file{/srv/git}."
(define (gitolite-activation config)
(match-record config <gitolite-configuration>
( package user group home-directory rc-file admin-pubkey
- git-config)
+ admin-name git-config)
#~(begin
(use-modules (ice-9 match)
(guix build utils))
(let* ((user-info (getpwnam #$user))
(admin-pubkey #$admin-pubkey)
- (pubkey-file (string-append
- #$home-directory "/"
- (basename
- (strip-store-file-name admin-pubkey))))
+ (pubkey-file (if #$admin-name
+ (string-append #$admin-name ".pub")
+ (string-append
+ #$home-directory "/"
+ (basename
+ (strip-store-file-name admin-pubkey)))))
(rc-file #$(string-append home-directory "/.gitolite.rc")))
;; activate-users+groups in (gnu build activation) sets the