Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added hooks, policy and rakefile to install selinux policy for this plug... #121

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
.*.swp
bin/
selinux/tmp/
38 changes: 38 additions & 0 deletions README.mkd
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,44 @@ This library allows you to quickly deploy ChiliProject, with this plugin to an u
chili\_test.sh script, modifying the variables in those scripts as desired. This library is still under development,
so these instructions may need to be updated in the near future.

## Selinux Configuration for redmine

This plugin can be configured to run with selinux. We have included a rakefile in tasks/selinux.rake to assist
with installing with selinux. You should start by editing init.rb and migrating as described above. Then, you
can execute one of the selinux rake tasks (from the redmine root). For instance, the simplest option installs
a selinux configuration for both redmine and the redmine_git_hosting plugin:

rake selinux:install RAILS_ENV=production

This will generate the redmine_git_hosting binaries in ./bin, install a selinux policy for these binaries (called
redmine_git.pp), then install a complete context for redmine as follows:

**(1)** Most of redmine will be marked with "public_content_rw_t".

**(2)** The dispatch files in Rails.root/public/dispatch.* will be marked with "httpd_sys_script_exec_t"

**(3)** The redmine_git_hosting binaries in Rails.root/vendor/plugins/redmine_git_hosting/bin will be labeled
with "httpd_redmine_git_script_exec_t", which has been crafted to allow the sudo behavior required by these
binaries.

Note that this rake file has additional options. For instance, you can specify redmine roots with regular
expressions (not globbed expessions!) as follows (notice the use of double quotes):

rake selinux:install RAILS_ENV=production ROOT_PATTERN="/source/.*/redmine"

These additional options are documented in the selinux.rake file.

Once this plugin is placed under selinux control, three of the redmine_git_hosting settings can
no longer be modified from the settings page. They are: 'gitUser', 'gitoliteIdentityFile', and
'gitoliteIdentityPublicKeyFile'. The plugin settings page will make this clear. The simplest way to
modify these options is to temporarily place your system into permissive mode, refresh the setting page,
change options, then place your system back into enforcing mode. Alternatively, you can alter the init.rb
file and reinstall the plugin. Under normal operation, you will get one selinux complaint about /bin/touch
in your log each time that you visit the plugin settings page.

This rakefile and selinux configuration has been primarily tested on Redhat Enterprise Linux version 6.x
with apache and fcgi. Other configurations may require slight tweaking.

## Tested Configurations

This plugin has been primarily tested on Ubuntu Server 10.10 and 11.04 (32 and 64 bit) with ChiliProject v1.x,
Expand Down
23 changes: 20 additions & 3 deletions app/models/git_hosting_settings_observer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ class GitHostingSettingsObserver < ActiveRecord::Observer
@@old_hook_asynch = Setting.plugin_redmine_git_hosting['gitHooksAreAsynchronous']
@@old_http_server = Setting.plugin_redmine_git_hosting['httpServer']
@@old_git_user = Setting.plugin_redmine_git_hosting['gitUser']
@@old_gitolite_identity = Setting.plugin_redmine_git_hosting['gitoliteIdentityFile']
@@old_gitolite_publickey = Setting.plugin_redmine_git_hosting['gitoliteIdentityPublicKeyFile']
@@old_repo_base = Setting.plugin_redmine_git_hosting['gitRepositoryBasePath']


Expand All @@ -14,12 +16,25 @@ def reload_this_observer
end
end



def before_save(object)
if object.name == "plugin_redmine_git_hosting" && !GitHosting.bin_dir_writeable?
# If bin directory not alterable, don't alow changes to
# Git Username, or Gitolite public or private keys
valuehash = object.value
valuehash['gitUser'] = @@old_git_user
valuehash['gitoliteIdentityFile'] = @@old_gitolite_identity
valuehash['gitoliteIdentityPublicKeyFile'] = @@old_gitolite_publickey
object.value = valuehash
end
end

def after_save(object)
if object.name == "plugin_redmine_git_hosting"

%x[ rm -rf '#{ GitHosting.get_tmp_dir }' ]
if GitHosting.bin_dir_writeable?
%x[ rm -rf '#{ GitHosting.get_tmp_dir }' ]
%x[ rm -rf '#{ GitHosting.get_bin_dir }' ]
end

if @@old_repo_base != object.value['gitRepositoryBasePath']
GitHostingObserver.set_update_active(false)
Expand Down Expand Up @@ -49,6 +64,8 @@ def after_save(object)
@@old_hook_asynch = object.value['gitHooksAreAsynchronous']
@@old_http_server = object.value['httpServer']
@@old_git_user = object.value['gitUser']
@@old_gitolite_identity = object.value['gitoliteIdentityFile']
@@old_gitolite_publickey = object.value['gitoliteIdentityPublicKeyFile']
@@old_repo_base = object.value['gitRepositoryBasePath']

end
Expand Down
7 changes: 3 additions & 4 deletions app/views/settings/_redmine_git_hosting.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,19 @@
<br />
</p>
<p>
<label><%= l(:label_git_user)%></label>
<label><%= l(:label_git_user) %><%= "<br/><em>[ #{l(:label_cannot_change_selinux)} ]</em>" if !GitHosting.bin_dir_writeable? :reset %></label>
<%= text_field_tag("settings[gitUser]", @settings['gitUser'].split(/[\r\n\t ,;]+/).join("\n"), :size => 60) %>
<br />
</p>

<p>
<label><%= l(:label_gitolite_identity_file)%></label>
<label><%= l(:label_gitolite_identity_file) %><%= "<br/><em>[ #{l(:label_cannot_change_selinux)} ]</em>" if !GitHosting.bin_dir_writeable? %></label>
<%= text_field_tag("settings[gitoliteIdentityFile]", @settings['gitoliteIdentityFile'], :size => 60) %>
<br />
</p>

<p>
<label><%= l(:label_gitolite_identity_public_key_file)%></label>
<label><%= l(:label_gitolite_identity_public_key_file) %><%= "<br/><em>[ #{l(:label_cannot_change_selinux)} ]</em>" if !GitHosting.bin_dir_writeable? %></label>
<%= text_field_tag("settings[gitoliteIdentityPublicKeyFile]", @settings['gitoliteIdentityPublicKeyFile'], :size => 60) %>
<br />
</p>
Expand All @@ -48,7 +48,6 @@
<br />
</p>


<h3><%= l(:label_git_cache_parameters)%></h3>
<p>
<label><%= l(:label_git_cache_max_elements)%></label>
Expand Down
1 change: 1 addition & 0 deletions config/locales/bg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/bs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/ca.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/cs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/da.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/de.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/el.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/es.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/fi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/fr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/gl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/he.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/hu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/id.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/it.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/ja.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/ko.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/lt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/nl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/no.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/pl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/pt-BR.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ pt-BR:
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Ficheiro de identidade SSH Gitolite (Chave Privada)
label_git_repository_base_path: 'Directório Git base (Relativo à "home" do utilizador git)'
label_cannot_change_selinux: 'não pode ser mudada (selinux)'

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/pt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ pt:
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Ficheiro de identidade SSH Gitolite (Chave Privada)
label_git_repository_base_path: 'Directório Git base (Relativo à "home" do utilizador git)'
label_cannot_change_selinux: 'não pode ser mudada (selinux)'

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/ro.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/ru.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/sk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/sl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/sr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/sv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/th.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/tr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/uk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
1 change: 1 addition & 0 deletions config/locales/vi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
label_gitolite_identity_public_key_file: Gitolite SSH Identity File (Public Key)
label_gitolite_identity_file: Gitolite SSH Identity File (Private Key)
label_git_repository_base_path: Git Repository Base Path (Relative to git user home)
label_cannot_change_selinux: Cannot be changed under selinux

field_git_daemon: Git Daemon
field_git_http: Git Smart HTTP
Expand Down
Loading