File tree 3 files changed +67
-0
lines changed
lib/redmine_git_hosting/gitolite_wrapper
3 files changed +67
-0
lines changed Original file line number Diff line number Diff line change @@ -85,6 +85,18 @@ def flush_settings_cache
85
85
end
86
86
87
87
88
+ def enable_readme_creation
89
+ logger . info ( 'Enable README creation for repositories' )
90
+ resync_gitolite ( :enable_readme_creation , 'enable_readme_creation' )
91
+ end
92
+
93
+
94
+ def disable_readme_creation
95
+ logger . info ( 'Disable README creation for repositories' )
96
+ resync_gitolite ( :disable_readme_creation , 'disable_readme_creation' )
97
+ end
98
+
99
+
88
100
private
89
101
90
102
Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ def apply_settings
41
41
do_resync_ssh_keys
42
42
do_flush_cache
43
43
do_delete_trash_repo
44
+ do_enable_readme_creation
44
45
end
45
46
46
47
@@ -134,4 +135,9 @@ def do_delete_trash_repo
134
135
GitoliteAccessor . purge_trash_bin ( delete_trash_repo ) if !delete_trash_repo . empty?
135
136
end
136
137
138
+
139
+ def do_enable_readme_creation
140
+ valuehash [ :init_repositories_on_create ] == 'true' ? GitoliteAccessor . enable_readme_creation : GitoliteAccessor . disable_readme_creation
141
+ end
142
+
137
143
end
Original file line number Diff line number Diff line change @@ -50,6 +50,40 @@ def move_repositories_tree
50
50
end
51
51
52
52
53
+ def enable_readme_creation
54
+ repo_conf = gitolite_config . repos [ '@all' ]
55
+ if !repo_conf . nil?
56
+ logger . info ( 'README file creation already enabled.' )
57
+ return
58
+ end
59
+
60
+ # Repository '@all' doesn't exist, create it.
61
+ # TODO: update it if already exists (in case Administrator has modified it from another place)
62
+ #
63
+ admin . transaction do
64
+ gitolite_config . add_repo ( create_readme_config )
65
+ gitolite_admin_repo_commit ( "Enable README file creation for repositories" )
66
+ end
67
+ end
68
+
69
+
70
+ def disable_readme_creation
71
+ repo_conf = gitolite_config . repos [ '@all' ]
72
+ if repo_conf . nil?
73
+ logger . info ( 'README file creation already disabled.' )
74
+ return
75
+ end
76
+
77
+ # Repository '@all' exists, delete it.
78
+ # TODO: remove only redmine_gitolite_admin_id_rsa key from repository permissions
79
+ #
80
+ admin . transaction do
81
+ gitolite_config . rm_repo ( '@all' )
82
+ gitolite_admin_repo_commit ( "Disable README file creation for repositories" )
83
+ end
84
+ end
85
+
86
+
53
87
private
54
88
55
89
@@ -101,6 +135,21 @@ def clean_path(path_list)
101
135
end
102
136
end
103
137
138
+
139
+ def create_readme_config
140
+ repo_conf = ::Gitolite ::Config ::Repo . new ( '@all' )
141
+ repo_conf . permissions = create_readme_perms
142
+ repo_conf
143
+ end
144
+
145
+
146
+ def create_readme_perms
147
+ permissions = { }
148
+ permissions [ 'RW+' ] = { }
149
+ permissions [ 'RW+' ] [ '' ] = [ 'redmine_gitolite_admin_id_rsa' ]
150
+ [ permissions ]
151
+ end
152
+
104
153
end
105
154
end
106
155
end
You can’t perform that action at this time.
0 commit comments