diff options
author | VonC <vonc@laposte.net> | 2013-01-08 19:17:53 +0400 |
---|---|---|
committer | VonC <vonc@laposte.net> | 2013-01-14 15:44:27 +0400 |
commit | 471b5910a64d5cbfe268caf210c1745cf3e8fefd (patch) | |
tree | d2ef36ab5b19ead59bdcd1302da0ea216d7ef5e8 /lib | |
parent | eff6d3c12b8f1cd0d3f8f9bab8ceaeba31f915b2 (diff) |
Fix git group detection for gitolite ssh user.
The tasks gitlab:env:info mixes user and group, and presume as a group 'git'.
However, gitolite group name can be anything.
That patch add the git group name in the config,
and check gitolite.ssh_user group against git.group
(which defaults to 'git', as before this patch, if undefined).
M config/gitlab.yml.example:
Add 'group' in 'git' section
Mention default value for the two extra settings
M lib/tasks/gitlab/check.rake:
Check that gitolite.ssh_user *group* is the one defined in git.group.
Make sure to default to 'git' as the expected group
if said group is undefined in the config.
Note: uses a more complete regexp for the group detection
(the group can start, end or be in the middle or the list of groups
of gitolite.ssh_user)
M: config/initializers/1_settings.rb:
Add default values for gitolite.group and gitlab.user
Diffstat (limited to 'lib')
-rw-r--r-- | lib/tasks/gitlab/check.rake | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake index 623028b16d2..3d9c9f4c2df 100644 --- a/lib/tasks/gitlab/check.rake +++ b/lib/tasks/gitlab/check.rake @@ -295,15 +295,16 @@ namespace :gitlab do end def check_gitlab_in_git_group - gitolite_ssh_user = Gitlab.config.gitolite.ssh_user - print "gitlab user is in #{gitolite_ssh_user} group? ... " + gitlab_user = Gitlab.config.gitlab.user + gitolite_group = Gitlab.config.gitolite.group + print "gitlab user '#{gitlab_user}' has git group '#{gitolite_group}'? ... " - if run_and_match("id -rnG", /\Wgit\W/) + if run_and_match("id -rnG", /^#{gitolite_group}\W|\W#{gitolite_group}\W|\W#{gitolite_group}$/) puts "yes".green else puts "no".red try_fixing_it( - "sudo usermod -a -G #{gitolite_ssh_user} gitlab" + "sudo usermod -a -G #{gitolite_group} #{gitlab_user}" ) for_more_information( see_installation_guide_section "System Users" |