##// END OF EJS Templates
middleware: replace references to Errormator with AppEnlight....
Brandon Jones -
r6335:b4dd4c16 stable
parent child Browse files
Show More
@@ -1,591 +1,591 b''
1 ################################################################################
1 ################################################################################
2 ################################################################################
2 ################################################################################
3 # Kallithea - Development config: #
3 # Kallithea - Development config: #
4 # listening on *:5000 #
4 # listening on *:5000 #
5 # sqlite and kallithea.db #
5 # sqlite and kallithea.db #
6 # initial_repo_scan = true #
6 # initial_repo_scan = true #
7 # set debug = true #
7 # set debug = true #
8 # verbose and colorful logging #
8 # verbose and colorful logging #
9 # #
9 # #
10 # The %(here)s variable will be replaced with the parent directory of this file#
10 # The %(here)s variable will be replaced with the parent directory of this file#
11 ################################################################################
11 ################################################################################
12 ################################################################################
12 ################################################################################
13
13
14 [DEFAULT]
14 [DEFAULT]
15 debug = true
15 debug = true
16 pdebug = false
16 pdebug = false
17
17
18 ################################################################################
18 ################################################################################
19 ## Email settings ##
19 ## Email settings ##
20 ## ##
20 ## ##
21 ## Refer to the documentation ("Email settings") for more details. ##
21 ## Refer to the documentation ("Email settings") for more details. ##
22 ## ##
22 ## ##
23 ## It is recommended to use a valid sender address that passes access ##
23 ## It is recommended to use a valid sender address that passes access ##
24 ## validation and spam filtering in mail servers. ##
24 ## validation and spam filtering in mail servers. ##
25 ################################################################################
25 ################################################################################
26
26
27 ## 'From' header for application emails. You can optionally add a name.
27 ## 'From' header for application emails. You can optionally add a name.
28 ## Default:
28 ## Default:
29 #app_email_from = Kallithea
29 #app_email_from = Kallithea
30 ## Examples:
30 ## Examples:
31 #app_email_from = Kallithea <kallithea-noreply@example.com>
31 #app_email_from = Kallithea <kallithea-noreply@example.com>
32 #app_email_from = kallithea-noreply@example.com
32 #app_email_from = kallithea-noreply@example.com
33
33
34 ## Subject prefix for application emails.
34 ## Subject prefix for application emails.
35 ## A space between this prefix and the real subject is automatically added.
35 ## A space between this prefix and the real subject is automatically added.
36 ## Default:
36 ## Default:
37 #email_prefix =
37 #email_prefix =
38 ## Example:
38 ## Example:
39 #email_prefix = [Kallithea]
39 #email_prefix = [Kallithea]
40
40
41 ## Recipients for error emails and fallback recipients of application mails.
41 ## Recipients for error emails and fallback recipients of application mails.
42 ## Multiple addresses can be specified, space-separated.
42 ## Multiple addresses can be specified, space-separated.
43 ## Only addresses are allowed, do not add any name part.
43 ## Only addresses are allowed, do not add any name part.
44 ## Default:
44 ## Default:
45 #email_to =
45 #email_to =
46 ## Examples:
46 ## Examples:
47 #email_to = admin@example.com
47 #email_to = admin@example.com
48 #email_to = admin@example.com another_admin@example.com
48 #email_to = admin@example.com another_admin@example.com
49
49
50 ## 'From' header for error emails. You can optionally add a name.
50 ## 'From' header for error emails. You can optionally add a name.
51 ## Default:
51 ## Default:
52 #error_email_from = pylons@yourapp.com
52 #error_email_from = pylons@yourapp.com
53 ## Examples:
53 ## Examples:
54 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
54 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
55 #error_email_from = paste_error@example.com
55 #error_email_from = paste_error@example.com
56
56
57 ## SMTP server settings
57 ## SMTP server settings
58 ## Only smtp_server is mandatory. All other settings take the specified default
58 ## Only smtp_server is mandatory. All other settings take the specified default
59 ## values.
59 ## values.
60 #smtp_server = smtp.example.com
60 #smtp_server = smtp.example.com
61 #smtp_username =
61 #smtp_username =
62 #smtp_password =
62 #smtp_password =
63 #smtp_port = 25
63 #smtp_port = 25
64 #smtp_use_tls = false
64 #smtp_use_tls = false
65 #smtp_use_ssl = false
65 #smtp_use_ssl = false
66 ## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
66 ## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
67 ## If empty, use any of the authentication parameters supported by the server.
67 ## If empty, use any of the authentication parameters supported by the server.
68 #smtp_auth =
68 #smtp_auth =
69
69
70 [server:main]
70 [server:main]
71 ## PASTE ##
71 ## PASTE ##
72 #use = egg:Paste#http
72 #use = egg:Paste#http
73 ## nr of worker threads to spawn
73 ## nr of worker threads to spawn
74 #threadpool_workers = 5
74 #threadpool_workers = 5
75 ## max request before thread respawn
75 ## max request before thread respawn
76 #threadpool_max_requests = 10
76 #threadpool_max_requests = 10
77 ## option to use threads of process
77 ## option to use threads of process
78 #use_threadpool = true
78 #use_threadpool = true
79
79
80 ## WAITRESS ##
80 ## WAITRESS ##
81 use = egg:waitress#main
81 use = egg:waitress#main
82 ## number of worker threads
82 ## number of worker threads
83 threads = 5
83 threads = 5
84 ## MAX BODY SIZE 100GB
84 ## MAX BODY SIZE 100GB
85 max_request_body_size = 107374182400
85 max_request_body_size = 107374182400
86 ## use poll instead of select, fixes fd limits, may not work on old
86 ## use poll instead of select, fixes fd limits, may not work on old
87 ## windows systems.
87 ## windows systems.
88 #asyncore_use_poll = True
88 #asyncore_use_poll = True
89
89
90 ## GUNICORN ##
90 ## GUNICORN ##
91 #use = egg:gunicorn#main
91 #use = egg:gunicorn#main
92 ## number of process workers. You must set `instance_id = *` when this option
92 ## number of process workers. You must set `instance_id = *` when this option
93 ## is set to more than one worker
93 ## is set to more than one worker
94 #workers = 1
94 #workers = 1
95 ## process name
95 ## process name
96 #proc_name = kallithea
96 #proc_name = kallithea
97 ## type of worker class, one of sync, eventlet, gevent, tornado
97 ## type of worker class, one of sync, eventlet, gevent, tornado
98 ## recommended for bigger setup is using of of other than sync one
98 ## recommended for bigger setup is using of of other than sync one
99 #worker_class = sync
99 #worker_class = sync
100 #max_requests = 1000
100 #max_requests = 1000
101 ## ammount of time a worker can handle request before it gets killed and
101 ## ammount of time a worker can handle request before it gets killed and
102 ## restarted
102 ## restarted
103 #timeout = 3600
103 #timeout = 3600
104
104
105 ## UWSGI ##
105 ## UWSGI ##
106 ## run with uwsgi --ini-paste-logged <inifile.ini>
106 ## run with uwsgi --ini-paste-logged <inifile.ini>
107 #[uwsgi]
107 #[uwsgi]
108 #socket = /tmp/uwsgi.sock
108 #socket = /tmp/uwsgi.sock
109 #master = true
109 #master = true
110 #http = 127.0.0.1:5000
110 #http = 127.0.0.1:5000
111
111
112 ## set as deamon and redirect all output to file
112 ## set as deamon and redirect all output to file
113 #daemonize = ./uwsgi_kallithea.log
113 #daemonize = ./uwsgi_kallithea.log
114
114
115 ## master process PID
115 ## master process PID
116 #pidfile = ./uwsgi_kallithea.pid
116 #pidfile = ./uwsgi_kallithea.pid
117
117
118 ## stats server with workers statistics, use uwsgitop
118 ## stats server with workers statistics, use uwsgitop
119 ## for monitoring, `uwsgitop 127.0.0.1:1717`
119 ## for monitoring, `uwsgitop 127.0.0.1:1717`
120 #stats = 127.0.0.1:1717
120 #stats = 127.0.0.1:1717
121 #memory-report = true
121 #memory-report = true
122
122
123 ## log 5XX errors
123 ## log 5XX errors
124 #log-5xx = true
124 #log-5xx = true
125
125
126 ## Set the socket listen queue size.
126 ## Set the socket listen queue size.
127 #listen = 256
127 #listen = 256
128
128
129 ## Gracefully Reload workers after the specified amount of managed requests
129 ## Gracefully Reload workers after the specified amount of managed requests
130 ## (avoid memory leaks).
130 ## (avoid memory leaks).
131 #max-requests = 1000
131 #max-requests = 1000
132
132
133 ## enable large buffers
133 ## enable large buffers
134 #buffer-size = 65535
134 #buffer-size = 65535
135
135
136 ## socket and http timeouts ##
136 ## socket and http timeouts ##
137 #http-timeout = 3600
137 #http-timeout = 3600
138 #socket-timeout = 3600
138 #socket-timeout = 3600
139
139
140 ## Log requests slower than the specified number of milliseconds.
140 ## Log requests slower than the specified number of milliseconds.
141 #log-slow = 10
141 #log-slow = 10
142
142
143 ## Exit if no app can be loaded.
143 ## Exit if no app can be loaded.
144 #need-app = true
144 #need-app = true
145
145
146 ## Set lazy mode (load apps in workers instead of master).
146 ## Set lazy mode (load apps in workers instead of master).
147 #lazy = true
147 #lazy = true
148
148
149 ## scaling ##
149 ## scaling ##
150 ## set cheaper algorithm to use, if not set default will be used
150 ## set cheaper algorithm to use, if not set default will be used
151 #cheaper-algo = spare
151 #cheaper-algo = spare
152
152
153 ## minimum number of workers to keep at all times
153 ## minimum number of workers to keep at all times
154 #cheaper = 1
154 #cheaper = 1
155
155
156 ## number of workers to spawn at startup
156 ## number of workers to spawn at startup
157 #cheaper-initial = 1
157 #cheaper-initial = 1
158
158
159 ## maximum number of workers that can be spawned
159 ## maximum number of workers that can be spawned
160 #workers = 4
160 #workers = 4
161
161
162 ## how many workers should be spawned at a time
162 ## how many workers should be spawned at a time
163 #cheaper-step = 1
163 #cheaper-step = 1
164
164
165 ## COMMON ##
165 ## COMMON ##
166 host = 0.0.0.0
166 host = 0.0.0.0
167 port = 5000
167 port = 5000
168
168
169 ## middleware for hosting the WSGI application under a URL prefix
169 ## middleware for hosting the WSGI application under a URL prefix
170 #[filter:proxy-prefix]
170 #[filter:proxy-prefix]
171 #use = egg:PasteDeploy#prefix
171 #use = egg:PasteDeploy#prefix
172 #prefix = /<your-prefix>
172 #prefix = /<your-prefix>
173
173
174 [app:main]
174 [app:main]
175 use = egg:kallithea
175 use = egg:kallithea
176 ## enable proxy prefix middleware
176 ## enable proxy prefix middleware
177 #filter-with = proxy-prefix
177 #filter-with = proxy-prefix
178
178
179 full_stack = true
179 full_stack = true
180 static_files = true
180 static_files = true
181 ## Available Languages:
181 ## Available Languages:
182 ## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW
182 ## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW
183 lang =
183 lang =
184 cache_dir = %(here)s/data
184 cache_dir = %(here)s/data
185 index_dir = %(here)s/data/index
185 index_dir = %(here)s/data/index
186
186
187 ## perform a full repository scan on each server start, this should be
187 ## perform a full repository scan on each server start, this should be
188 ## set to false after first startup, to allow faster server restarts.
188 ## set to false after first startup, to allow faster server restarts.
189 #initial_repo_scan = false
189 #initial_repo_scan = false
190 initial_repo_scan = true
190 initial_repo_scan = true
191
191
192 ## uncomment and set this path to use archive download cache
192 ## uncomment and set this path to use archive download cache
193 archive_cache_dir = %(here)s/tarballcache
193 archive_cache_dir = %(here)s/tarballcache
194
194
195 ## change this to unique ID for security
195 ## change this to unique ID for security
196 app_instance_uuid = development-not-secret
196 app_instance_uuid = development-not-secret
197
197
198 ## cut off limit for large diffs (size in bytes)
198 ## cut off limit for large diffs (size in bytes)
199 cut_off_limit = 256000
199 cut_off_limit = 256000
200
200
201 ## use cache version of scm repo everywhere
201 ## use cache version of scm repo everywhere
202 vcs_full_cache = true
202 vcs_full_cache = true
203
203
204 ## force https in Kallithea, fixes https redirects, assumes it's always https
204 ## force https in Kallithea, fixes https redirects, assumes it's always https
205 force_https = false
205 force_https = false
206
206
207 ## use Strict-Transport-Security headers
207 ## use Strict-Transport-Security headers
208 use_htsts = false
208 use_htsts = false
209
209
210 ## number of commits stats will parse on each iteration
210 ## number of commits stats will parse on each iteration
211 commit_parse_limit = 25
211 commit_parse_limit = 25
212
212
213 ## path to git executable
213 ## path to git executable
214 git_path = git
214 git_path = git
215
215
216 ## git rev filter option, --all is the default filter, if you need to
216 ## git rev filter option, --all is the default filter, if you need to
217 ## hide all refs in changelog switch this to --branches --tags
217 ## hide all refs in changelog switch this to --branches --tags
218 #git_rev_filter = --branches --tags
218 #git_rev_filter = --branches --tags
219
219
220 ## RSS feed options
220 ## RSS feed options
221 rss_cut_off_limit = 256000
221 rss_cut_off_limit = 256000
222 rss_items_per_page = 10
222 rss_items_per_page = 10
223 rss_include_diff = false
223 rss_include_diff = false
224
224
225 ## options for showing and identifying changesets
225 ## options for showing and identifying changesets
226 show_sha_length = 12
226 show_sha_length = 12
227 show_revision_number = false
227 show_revision_number = false
228
228
229 ## gist URL alias, used to create nicer urls for gist. This should be an
229 ## gist URL alias, used to create nicer urls for gist. This should be an
230 ## url that does rewrites to _admin/gists/<gistid>.
230 ## url that does rewrites to _admin/gists/<gistid>.
231 ## example: http://gist.example.com/{gistid}. Empty means use the internal
231 ## example: http://gist.example.com/{gistid}. Empty means use the internal
232 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
232 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
233 gist_alias_url =
233 gist_alias_url =
234
234
235 ## white list of API enabled controllers. This allows to add list of
235 ## white list of API enabled controllers. This allows to add list of
236 ## controllers to which access will be enabled by api_key. eg: to enable
236 ## controllers to which access will be enabled by api_key. eg: to enable
237 ## api access to raw_files put `FilesController:raw`, to enable access to patches
237 ## api access to raw_files put `FilesController:raw`, to enable access to patches
238 ## add `ChangesetController:changeset_patch`. This list should be "," separated
238 ## add `ChangesetController:changeset_patch`. This list should be "," separated
239 ## Syntax is <ControllerClass>:<function>. Check debug logs for generated names
239 ## Syntax is <ControllerClass>:<function>. Check debug logs for generated names
240 ## Recommended settings below are commented out:
240 ## Recommended settings below are commented out:
241 api_access_controllers_whitelist =
241 api_access_controllers_whitelist =
242 # ChangesetController:changeset_patch,
242 # ChangesetController:changeset_patch,
243 # ChangesetController:changeset_raw,
243 # ChangesetController:changeset_raw,
244 # FilesController:raw,
244 # FilesController:raw,
245 # FilesController:archivefile
245 # FilesController:archivefile
246
246
247 ## default encoding used to convert from and to unicode
247 ## default encoding used to convert from and to unicode
248 ## can be also a comma seperated list of encoding in case of mixed encodings
248 ## can be also a comma seperated list of encoding in case of mixed encodings
249 default_encoding = utf8
249 default_encoding = utf8
250
250
251 ## issue tracker for Kallithea (leave blank to disable, absent for default)
251 ## issue tracker for Kallithea (leave blank to disable, absent for default)
252 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
252 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
253
253
254 ## issue tracking mapping for commits messages
254 ## issue tracking mapping for commits messages
255 ## comment out issue_pat, issue_server, issue_prefix to enable
255 ## comment out issue_pat, issue_server, issue_prefix to enable
256
256
257 ## pattern to get the issues from commit messages
257 ## pattern to get the issues from commit messages
258 ## default one used here is #<numbers> with a regex passive group for `#`
258 ## default one used here is #<numbers> with a regex passive group for `#`
259 ## {id} will be all groups matched from this pattern
259 ## {id} will be all groups matched from this pattern
260
260
261 issue_pat = (?:\s*#)(\d+)
261 issue_pat = (?:\s*#)(\d+)
262
262
263 ## server url to the issue, each {id} will be replaced with match
263 ## server url to the issue, each {id} will be replaced with match
264 ## fetched from the regex and {repo} is replaced with full repository name
264 ## fetched from the regex and {repo} is replaced with full repository name
265 ## including groups {repo_name} is replaced with just name of repo
265 ## including groups {repo_name} is replaced with just name of repo
266
266
267 issue_server_link = https://issues.example.com/{repo}/issue/{id}
267 issue_server_link = https://issues.example.com/{repo}/issue/{id}
268
268
269 ## prefix to add to link to indicate it's an url
269 ## prefix to add to link to indicate it's an url
270 ## #314 will be replaced by <issue_prefix><id>
270 ## #314 will be replaced by <issue_prefix><id>
271
271
272 issue_prefix = #
272 issue_prefix = #
273
273
274 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
274 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
275 ## multiple patterns, to other issues server, wiki or others
275 ## multiple patterns, to other issues server, wiki or others
276 ## below an example how to create a wiki pattern
276 ## below an example how to create a wiki pattern
277 # wiki-some-id -> https://wiki.example.com/some-id
277 # wiki-some-id -> https://wiki.example.com/some-id
278
278
279 #issue_pat_wiki = (?:wiki-)(.+)
279 #issue_pat_wiki = (?:wiki-)(.+)
280 #issue_server_link_wiki = https://wiki.example.com/{id}
280 #issue_server_link_wiki = https://wiki.example.com/{id}
281 #issue_prefix_wiki = WIKI-
281 #issue_prefix_wiki = WIKI-
282
282
283 ## instance-id prefix
283 ## instance-id prefix
284 ## a prefix key for this instance used for cache invalidation when running
284 ## a prefix key for this instance used for cache invalidation when running
285 ## multiple instances of kallithea, make sure it's globally unique for
285 ## multiple instances of kallithea, make sure it's globally unique for
286 ## all running kallithea instances. Leave empty if you don't use it
286 ## all running kallithea instances. Leave empty if you don't use it
287 instance_id =
287 instance_id =
288
288
289 ## alternative return HTTP header for failed authentication. Default HTTP
289 ## alternative return HTTP header for failed authentication. Default HTTP
290 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
290 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
291 ## handling that. Set this variable to 403 to return HTTPForbidden
291 ## handling that. Set this variable to 403 to return HTTPForbidden
292 auth_ret_code =
292 auth_ret_code =
293
293
294 ## locking return code. When repository is locked return this HTTP code. 2XX
294 ## locking return code. When repository is locked return this HTTP code. 2XX
295 ## codes don't break the transactions while 4XX codes do
295 ## codes don't break the transactions while 4XX codes do
296 lock_ret_code = 423
296 lock_ret_code = 423
297
297
298 ## allows to change the repository location in settings page
298 ## allows to change the repository location in settings page
299 allow_repo_location_change = True
299 allow_repo_location_change = True
300
300
301 ## allows to setup custom hooks in settings page
301 ## allows to setup custom hooks in settings page
302 allow_custom_hooks_settings = True
302 allow_custom_hooks_settings = True
303
303
304 ####################################
304 ####################################
305 ### CELERY CONFIG ####
305 ### CELERY CONFIG ####
306 ####################################
306 ####################################
307
307
308 use_celery = false
308 use_celery = false
309 broker.host = localhost
309 broker.host = localhost
310 broker.vhost = rabbitmqhost
310 broker.vhost = rabbitmqhost
311 broker.port = 5672
311 broker.port = 5672
312 broker.user = rabbitmq
312 broker.user = rabbitmq
313 broker.password = qweqwe
313 broker.password = qweqwe
314
314
315 celery.imports = kallithea.lib.celerylib.tasks
315 celery.imports = kallithea.lib.celerylib.tasks
316
316
317 celery.result.backend = amqp
317 celery.result.backend = amqp
318 celery.result.dburi = amqp://
318 celery.result.dburi = amqp://
319 celery.result.serialier = json
319 celery.result.serialier = json
320
320
321 #celery.send.task.error.emails = true
321 #celery.send.task.error.emails = true
322 #celery.amqp.task.result.expires = 18000
322 #celery.amqp.task.result.expires = 18000
323
323
324 celeryd.concurrency = 2
324 celeryd.concurrency = 2
325 #celeryd.log.file = celeryd.log
325 #celeryd.log.file = celeryd.log
326 celeryd.log.level = DEBUG
326 celeryd.log.level = DEBUG
327 celeryd.max.tasks.per.child = 1
327 celeryd.max.tasks.per.child = 1
328
328
329 ## tasks will never be sent to the queue, but executed locally instead.
329 ## tasks will never be sent to the queue, but executed locally instead.
330 celery.always.eager = false
330 celery.always.eager = false
331
331
332 ####################################
332 ####################################
333 ### BEAKER CACHE ####
333 ### BEAKER CACHE ####
334 ####################################
334 ####################################
335
335
336 beaker.cache.data_dir = %(here)s/data/cache/data
336 beaker.cache.data_dir = %(here)s/data/cache/data
337 beaker.cache.lock_dir = %(here)s/data/cache/lock
337 beaker.cache.lock_dir = %(here)s/data/cache/lock
338
338
339 beaker.cache.regions = short_term,long_term,sql_cache_short
339 beaker.cache.regions = short_term,long_term,sql_cache_short
340
340
341 beaker.cache.short_term.type = memory
341 beaker.cache.short_term.type = memory
342 beaker.cache.short_term.expire = 60
342 beaker.cache.short_term.expire = 60
343 beaker.cache.short_term.key_length = 256
343 beaker.cache.short_term.key_length = 256
344
344
345 beaker.cache.long_term.type = memory
345 beaker.cache.long_term.type = memory
346 beaker.cache.long_term.expire = 36000
346 beaker.cache.long_term.expire = 36000
347 beaker.cache.long_term.key_length = 256
347 beaker.cache.long_term.key_length = 256
348
348
349 beaker.cache.sql_cache_short.type = memory
349 beaker.cache.sql_cache_short.type = memory
350 beaker.cache.sql_cache_short.expire = 10
350 beaker.cache.sql_cache_short.expire = 10
351 beaker.cache.sql_cache_short.key_length = 256
351 beaker.cache.sql_cache_short.key_length = 256
352
352
353 ####################################
353 ####################################
354 ### BEAKER SESSION ####
354 ### BEAKER SESSION ####
355 ####################################
355 ####################################
356
356
357 ## Name of session cookie. Should be unique for a given host and path, even when running
357 ## Name of session cookie. Should be unique for a given host and path, even when running
358 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
358 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
359 beaker.session.key = kallithea
359 beaker.session.key = kallithea
360 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
360 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
361 beaker.session.httponly = true
361 beaker.session.httponly = true
362 ## Session lifetime. 2592000 seconds is 30 days.
362 ## Session lifetime. 2592000 seconds is 30 days.
363 beaker.session.timeout = 2592000
363 beaker.session.timeout = 2592000
364
364
365 ## Server secret used with HMAC to ensure integrity of cookies.
365 ## Server secret used with HMAC to ensure integrity of cookies.
366 beaker.session.secret = development-not-secret
366 beaker.session.secret = development-not-secret
367 ## Further, encrypt the data with AES.
367 ## Further, encrypt the data with AES.
368 #beaker.session.encrypt_key = <key_for_encryption>
368 #beaker.session.encrypt_key = <key_for_encryption>
369 #beaker.session.validate_key = <validation_key>
369 #beaker.session.validate_key = <validation_key>
370
370
371 ## Type of storage used for the session, current types are
371 ## Type of storage used for the session, current types are
372 ## dbm, file, memcached, database, and memory.
372 ## dbm, file, memcached, database, and memory.
373
373
374 ## File system storage of session data. (default)
374 ## File system storage of session data. (default)
375 #beaker.session.type = file
375 #beaker.session.type = file
376
376
377 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
377 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
378 #beaker.session.type = cookie
378 #beaker.session.type = cookie
379
379
380 ## Database storage of session data.
380 ## Database storage of session data.
381 #beaker.session.type = ext:database
381 #beaker.session.type = ext:database
382 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
382 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
383 #beaker.session.table_name = db_session
383 #beaker.session.table_name = db_session
384
384
385 ############################
385 ############################
386 ## ERROR HANDLING SYSTEMS ##
386 ## ERROR HANDLING SYSTEMS ##
387 ############################
387 ############################
388
388
389 ####################
389 ####################
390 ### [errormator] ###
390 ### [appenlight] ###
391 ####################
391 ####################
392
392
393 ## Errormator is tailored to work with Kallithea, see
393 ## AppEnlight is tailored to work with Kallithea, see
394 ## http://errormator.com for details how to obtain an account
394 ## http://appenlight.com for details how to obtain an account
395 ## you must install python package `errormator_client` to make it work
395 ## you must install python package `appenlight_client` to make it work
396
396
397 ## errormator enabled
397 ## appenlight enabled
398 errormator = false
398 appenlight = false
399
399
400 errormator.server_url = https://api.errormator.com
400 appenlight.server_url = https://api.appenlight.com
401 errormator.api_key = YOUR_API_KEY
401 appenlight.api_key = YOUR_API_KEY
402
402
403 ## TWEAK AMOUNT OF INFO SENT HERE
403 ## TWEAK AMOUNT OF INFO SENT HERE
404
404
405 ## enables 404 error logging (default False)
405 ## enables 404 error logging (default False)
406 errormator.report_404 = false
406 appenlight.report_404 = false
407
407
408 ## time in seconds after request is considered being slow (default 1)
408 ## time in seconds after request is considered being slow (default 1)
409 errormator.slow_request_time = 1
409 appenlight.slow_request_time = 1
410
410
411 ## record slow requests in application
411 ## record slow requests in application
412 ## (needs to be enabled for slow datastore recording and time tracking)
412 ## (needs to be enabled for slow datastore recording and time tracking)
413 errormator.slow_requests = true
413 appenlight.slow_requests = true
414
414
415 ## enable hooking to application loggers
415 ## enable hooking to application loggers
416 #errormator.logging = true
416 #appenlight.logging = true
417
417
418 ## minimum log level for log capture
418 ## minimum log level for log capture
419 #errormator.logging.level = WARNING
419 #appenlight.logging.level = WARNING
420
420
421 ## send logs only from erroneous/slow requests
421 ## send logs only from erroneous/slow requests
422 ## (saves API quota for intensive logging)
422 ## (saves API quota for intensive logging)
423 errormator.logging_on_error = false
423 appenlight.logging_on_error = false
424
424
425 ## list of additonal keywords that should be grabbed from environ object
425 ## list of additonal keywords that should be grabbed from environ object
426 ## can be string with comma separated list of words in lowercase
426 ## can be string with comma separated list of words in lowercase
427 ## (by default client will always send following info:
427 ## (by default client will always send following info:
428 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
428 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
429 ## start with HTTP* this list be extended with additional keywords here
429 ## start with HTTP* this list be extended with additional keywords here
430 errormator.environ_keys_whitelist =
430 appenlight.environ_keys_whitelist =
431
431
432 ## list of keywords that should be blanked from request object
432 ## list of keywords that should be blanked from request object
433 ## can be string with comma separated list of words in lowercase
433 ## can be string with comma separated list of words in lowercase
434 ## (by default client will always blank keys that contain following words
434 ## (by default client will always blank keys that contain following words
435 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
435 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
436 ## this list be extended with additional keywords set here
436 ## this list be extended with additional keywords set here
437 errormator.request_keys_blacklist =
437 appenlight.request_keys_blacklist =
438
438
439 ## list of namespaces that should be ignores when gathering log entries
439 ## list of namespaces that should be ignores when gathering log entries
440 ## can be string with comma separated list of namespaces
440 ## can be string with comma separated list of namespaces
441 ## (by default the client ignores own entries: errormator_client.client)
441 ## (by default the client ignores own entries: appenlight_client.client)
442 errormator.log_namespace_blacklist =
442 appenlight.log_namespace_blacklist =
443
443
444 ################
444 ################
445 ### [sentry] ###
445 ### [sentry] ###
446 ################
446 ################
447
447
448 ## sentry is a alternative open source error aggregator
448 ## sentry is a alternative open source error aggregator
449 ## you must install python packages `sentry` and `raven` to enable
449 ## you must install python packages `sentry` and `raven` to enable
450
450
451 sentry.dsn = YOUR_DNS
451 sentry.dsn = YOUR_DNS
452 sentry.servers =
452 sentry.servers =
453 sentry.name =
453 sentry.name =
454 sentry.key =
454 sentry.key =
455 sentry.public_key =
455 sentry.public_key =
456 sentry.secret_key =
456 sentry.secret_key =
457 sentry.project =
457 sentry.project =
458 sentry.site =
458 sentry.site =
459 sentry.include_paths =
459 sentry.include_paths =
460 sentry.exclude_paths =
460 sentry.exclude_paths =
461
461
462 ################################################################################
462 ################################################################################
463 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
463 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
464 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
464 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
465 ## execute malicious code after an exception is raised. ##
465 ## execute malicious code after an exception is raised. ##
466 ################################################################################
466 ################################################################################
467 #set debug = false
467 #set debug = false
468 set debug = true
468 set debug = true
469
469
470 ##################################
470 ##################################
471 ### LOGVIEW CONFIG ###
471 ### LOGVIEW CONFIG ###
472 ##################################
472 ##################################
473
473
474 logview.sqlalchemy = #faa
474 logview.sqlalchemy = #faa
475 logview.pylons.templating = #bfb
475 logview.pylons.templating = #bfb
476 logview.pylons.util = #eee
476 logview.pylons.util = #eee
477
477
478 #########################################################
478 #########################################################
479 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
479 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
480 #########################################################
480 #########################################################
481
481
482 # SQLITE [default]
482 # SQLITE [default]
483 sqlalchemy.db1.url = sqlite:///%(here)s/kallithea.db?timeout=60
483 sqlalchemy.db1.url = sqlite:///%(here)s/kallithea.db?timeout=60
484
484
485 # POSTGRESQL
485 # POSTGRESQL
486 #sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea
486 #sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea
487
487
488 # MySQL
488 # MySQL
489 #sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea
489 #sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea
490
490
491 # see sqlalchemy docs for others
491 # see sqlalchemy docs for others
492
492
493 sqlalchemy.db1.echo = false
493 sqlalchemy.db1.echo = false
494 sqlalchemy.db1.pool_recycle = 3600
494 sqlalchemy.db1.pool_recycle = 3600
495 sqlalchemy.db1.convert_unicode = true
495 sqlalchemy.db1.convert_unicode = true
496
496
497 ################################
497 ################################
498 ### LOGGING CONFIGURATION ####
498 ### LOGGING CONFIGURATION ####
499 ################################
499 ################################
500
500
501 [loggers]
501 [loggers]
502 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
502 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
503
503
504 [handlers]
504 [handlers]
505 keys = console, console_sql
505 keys = console, console_sql
506
506
507 [formatters]
507 [formatters]
508 keys = generic, color_formatter, color_formatter_sql
508 keys = generic, color_formatter, color_formatter_sql
509
509
510 #############
510 #############
511 ## LOGGERS ##
511 ## LOGGERS ##
512 #############
512 #############
513
513
514 [logger_root]
514 [logger_root]
515 level = NOTSET
515 level = NOTSET
516 handlers = console
516 handlers = console
517
517
518 [logger_routes]
518 [logger_routes]
519 level = DEBUG
519 level = DEBUG
520 handlers =
520 handlers =
521 qualname = routes.middleware
521 qualname = routes.middleware
522 ## "level = DEBUG" logs the route matched and routing variables.
522 ## "level = DEBUG" logs the route matched and routing variables.
523 propagate = 1
523 propagate = 1
524
524
525 [logger_beaker]
525 [logger_beaker]
526 level = DEBUG
526 level = DEBUG
527 handlers =
527 handlers =
528 qualname = beaker.container
528 qualname = beaker.container
529 propagate = 1
529 propagate = 1
530
530
531 [logger_templates]
531 [logger_templates]
532 level = INFO
532 level = INFO
533 handlers =
533 handlers =
534 qualname = pylons.templating
534 qualname = pylons.templating
535 propagate = 1
535 propagate = 1
536
536
537 [logger_kallithea]
537 [logger_kallithea]
538 level = DEBUG
538 level = DEBUG
539 handlers =
539 handlers =
540 qualname = kallithea
540 qualname = kallithea
541 propagate = 1
541 propagate = 1
542
542
543 [logger_sqlalchemy]
543 [logger_sqlalchemy]
544 level = INFO
544 level = INFO
545 handlers = console_sql
545 handlers = console_sql
546 qualname = sqlalchemy.engine
546 qualname = sqlalchemy.engine
547 propagate = 0
547 propagate = 0
548
548
549 [logger_whoosh_indexer]
549 [logger_whoosh_indexer]
550 level = DEBUG
550 level = DEBUG
551 handlers =
551 handlers =
552 qualname = whoosh_indexer
552 qualname = whoosh_indexer
553 propagate = 1
553 propagate = 1
554
554
555 ##############
555 ##############
556 ## HANDLERS ##
556 ## HANDLERS ##
557 ##############
557 ##############
558
558
559 [handler_console]
559 [handler_console]
560 class = StreamHandler
560 class = StreamHandler
561 args = (sys.stderr,)
561 args = (sys.stderr,)
562 #level = INFO
562 #level = INFO
563 #formatter = generic
563 #formatter = generic
564 level = DEBUG
564 level = DEBUG
565 formatter = color_formatter
565 formatter = color_formatter
566
566
567 [handler_console_sql]
567 [handler_console_sql]
568 class = StreamHandler
568 class = StreamHandler
569 args = (sys.stderr,)
569 args = (sys.stderr,)
570 #level = WARN
570 #level = WARN
571 #formatter = generic
571 #formatter = generic
572 level = DEBUG
572 level = DEBUG
573 formatter = color_formatter_sql
573 formatter = color_formatter_sql
574
574
575 ################
575 ################
576 ## FORMATTERS ##
576 ## FORMATTERS ##
577 ################
577 ################
578
578
579 [formatter_generic]
579 [formatter_generic]
580 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
580 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
581 datefmt = %Y-%m-%d %H:%M:%S
581 datefmt = %Y-%m-%d %H:%M:%S
582
582
583 [formatter_color_formatter]
583 [formatter_color_formatter]
584 class = kallithea.lib.colored_formatter.ColorFormatter
584 class = kallithea.lib.colored_formatter.ColorFormatter
585 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
585 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
586 datefmt = %Y-%m-%d %H:%M:%S
586 datefmt = %Y-%m-%d %H:%M:%S
587
587
588 [formatter_color_formatter_sql]
588 [formatter_color_formatter_sql]
589 class = kallithea.lib.colored_formatter.ColorFormatterSql
589 class = kallithea.lib.colored_formatter.ColorFormatterSql
590 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
590 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
591 datefmt = %Y-%m-%d %H:%M:%S
591 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,591 +1,591 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%text>################################################################################</%text>
2 <%text>################################################################################</%text>
3 <%text>################################################################################</%text>
3 <%text>################################################################################</%text>
4 # Kallithea - config file generated with kallithea-config #
4 # Kallithea - config file generated with kallithea-config #
5 <%text>################################################################################</%text>
5 <%text>################################################################################</%text>
6 <%text>################################################################################</%text>
6 <%text>################################################################################</%text>
7
7
8 [DEFAULT]
8 [DEFAULT]
9 debug = true
9 debug = true
10 pdebug = false
10 pdebug = false
11
11
12 <%text>################################################################################</%text>
12 <%text>################################################################################</%text>
13 <%text>## Email settings ##</%text>
13 <%text>## Email settings ##</%text>
14 <%text>## ##</%text>
14 <%text>## ##</%text>
15 <%text>## Refer to the documentation ("Email settings") for more details. ##</%text>
15 <%text>## Refer to the documentation ("Email settings") for more details. ##</%text>
16 <%text>## ##</%text>
16 <%text>## ##</%text>
17 <%text>## It is recommended to use a valid sender address that passes access ##</%text>
17 <%text>## It is recommended to use a valid sender address that passes access ##</%text>
18 <%text>## validation and spam filtering in mail servers. ##</%text>
18 <%text>## validation and spam filtering in mail servers. ##</%text>
19 <%text>################################################################################</%text>
19 <%text>################################################################################</%text>
20
20
21 <%text>## 'From' header for application emails. You can optionally add a name.</%text>
21 <%text>## 'From' header for application emails. You can optionally add a name.</%text>
22 <%text>## Default:</%text>
22 <%text>## Default:</%text>
23 #app_email_from = Kallithea
23 #app_email_from = Kallithea
24 <%text>## Examples:</%text>
24 <%text>## Examples:</%text>
25 #app_email_from = Kallithea <kallithea-noreply@example.com>
25 #app_email_from = Kallithea <kallithea-noreply@example.com>
26 #app_email_from = kallithea-noreply@example.com
26 #app_email_from = kallithea-noreply@example.com
27
27
28 <%text>## Subject prefix for application emails.</%text>
28 <%text>## Subject prefix for application emails.</%text>
29 <%text>## A space between this prefix and the real subject is automatically added.</%text>
29 <%text>## A space between this prefix and the real subject is automatically added.</%text>
30 <%text>## Default:</%text>
30 <%text>## Default:</%text>
31 #email_prefix =
31 #email_prefix =
32 <%text>## Example:</%text>
32 <%text>## Example:</%text>
33 #email_prefix = [Kallithea]
33 #email_prefix = [Kallithea]
34
34
35 <%text>## Recipients for error emails and fallback recipients of application mails.</%text>
35 <%text>## Recipients for error emails and fallback recipients of application mails.</%text>
36 <%text>## Multiple addresses can be specified, space-separated.</%text>
36 <%text>## Multiple addresses can be specified, space-separated.</%text>
37 <%text>## Only addresses are allowed, do not add any name part.</%text>
37 <%text>## Only addresses are allowed, do not add any name part.</%text>
38 <%text>## Default:</%text>
38 <%text>## Default:</%text>
39 #email_to =
39 #email_to =
40 <%text>## Examples:</%text>
40 <%text>## Examples:</%text>
41 #email_to = admin@example.com
41 #email_to = admin@example.com
42 #email_to = admin@example.com another_admin@example.com
42 #email_to = admin@example.com another_admin@example.com
43
43
44 <%text>## 'From' header for error emails. You can optionally add a name.</%text>
44 <%text>## 'From' header for error emails. You can optionally add a name.</%text>
45 <%text>## Default:</%text>
45 <%text>## Default:</%text>
46 #error_email_from = pylons@yourapp.com
46 #error_email_from = pylons@yourapp.com
47 <%text>## Examples:</%text>
47 <%text>## Examples:</%text>
48 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
48 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
49 #error_email_from = paste_error@example.com
49 #error_email_from = paste_error@example.com
50
50
51 <%text>## SMTP server settings</%text>
51 <%text>## SMTP server settings</%text>
52 <%text>## Only smtp_server is mandatory. All other settings take the specified default</%text>
52 <%text>## Only smtp_server is mandatory. All other settings take the specified default</%text>
53 <%text>## values.</%text>
53 <%text>## values.</%text>
54 #smtp_server = smtp.example.com
54 #smtp_server = smtp.example.com
55 #smtp_username =
55 #smtp_username =
56 #smtp_password =
56 #smtp_password =
57 #smtp_port = 25
57 #smtp_port = 25
58 #smtp_use_tls = false
58 #smtp_use_tls = false
59 #smtp_use_ssl = false
59 #smtp_use_ssl = false
60 <%text>## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).</%text>
60 <%text>## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).</%text>
61 <%text>## If empty, use any of the authentication parameters supported by the server.</%text>
61 <%text>## If empty, use any of the authentication parameters supported by the server.</%text>
62 #smtp_auth =
62 #smtp_auth =
63
63
64 [server:main]
64 [server:main]
65 %if http_server == 'paste':
65 %if http_server == 'paste':
66 <%text>## PASTE ##</%text>
66 <%text>## PASTE ##</%text>
67 use = egg:Paste#http
67 use = egg:Paste#http
68 <%text>## nr of worker threads to spawn</%text>
68 <%text>## nr of worker threads to spawn</%text>
69 threadpool_workers = 5
69 threadpool_workers = 5
70 <%text>## max request before thread respawn</%text>
70 <%text>## max request before thread respawn</%text>
71 threadpool_max_requests = 10
71 threadpool_max_requests = 10
72 <%text>## option to use threads of process</%text>
72 <%text>## option to use threads of process</%text>
73 use_threadpool = true
73 use_threadpool = true
74
74
75 %elif http_server == 'waitress':
75 %elif http_server == 'waitress':
76 <%text>## WAITRESS ##</%text>
76 <%text>## WAITRESS ##</%text>
77 use = egg:waitress#main
77 use = egg:waitress#main
78 <%text>## number of worker threads</%text>
78 <%text>## number of worker threads</%text>
79 threads = 5
79 threads = 5
80 <%text>## MAX BODY SIZE 100GB</%text>
80 <%text>## MAX BODY SIZE 100GB</%text>
81 max_request_body_size = 107374182400
81 max_request_body_size = 107374182400
82 <%text>## use poll instead of select, fixes fd limits, may not work on old</%text>
82 <%text>## use poll instead of select, fixes fd limits, may not work on old</%text>
83 <%text>## windows systems.</%text>
83 <%text>## windows systems.</%text>
84 #asyncore_use_poll = True
84 #asyncore_use_poll = True
85
85
86 %elif http_server == 'gunicorn':
86 %elif http_server == 'gunicorn':
87 <%text>## GUNICORN ##</%text>
87 <%text>## GUNICORN ##</%text>
88 use = egg:gunicorn#main
88 use = egg:gunicorn#main
89 <%text>## number of process workers. You must set `instance_id = *` when this option</%text>
89 <%text>## number of process workers. You must set `instance_id = *` when this option</%text>
90 <%text>## is set to more than one worker</%text>
90 <%text>## is set to more than one worker</%text>
91 workers = 1
91 workers = 1
92 <%text>## process name</%text>
92 <%text>## process name</%text>
93 proc_name = kallithea
93 proc_name = kallithea
94 <%text>## type of worker class, one of sync, eventlet, gevent, tornado</%text>
94 <%text>## type of worker class, one of sync, eventlet, gevent, tornado</%text>
95 <%text>## recommended for bigger setup is using of of other than sync one</%text>
95 <%text>## recommended for bigger setup is using of of other than sync one</%text>
96 worker_class = sync
96 worker_class = sync
97 max_requests = 1000
97 max_requests = 1000
98 <%text>## ammount of time a worker can handle request before it gets killed and</%text>
98 <%text>## ammount of time a worker can handle request before it gets killed and</%text>
99 <%text>## restarted</%text>
99 <%text>## restarted</%text>
100 timeout = 3600
100 timeout = 3600
101
101
102 %elif http_server == 'uwsgi':
102 %elif http_server == 'uwsgi':
103 <%text>## UWSGI ##</%text>
103 <%text>## UWSGI ##</%text>
104 <%text>## run with uwsgi --ini-paste-logged <inifile.ini></%text>
104 <%text>## run with uwsgi --ini-paste-logged <inifile.ini></%text>
105 [uwsgi]
105 [uwsgi]
106 socket = /tmp/uwsgi.sock
106 socket = /tmp/uwsgi.sock
107 master = true
107 master = true
108 http = 127.0.0.1:5000
108 http = 127.0.0.1:5000
109
109
110 <%text>## set as deamon and redirect all output to file</%text>
110 <%text>## set as deamon and redirect all output to file</%text>
111 #daemonize = ./uwsgi_kallithea.log
111 #daemonize = ./uwsgi_kallithea.log
112
112
113 <%text>## master process PID</%text>
113 <%text>## master process PID</%text>
114 pidfile = ./uwsgi_kallithea.pid
114 pidfile = ./uwsgi_kallithea.pid
115
115
116 <%text>## stats server with workers statistics, use uwsgitop</%text>
116 <%text>## stats server with workers statistics, use uwsgitop</%text>
117 <%text>## for monitoring, `uwsgitop 127.0.0.1:1717`</%text>
117 <%text>## for monitoring, `uwsgitop 127.0.0.1:1717`</%text>
118 stats = 127.0.0.1:1717
118 stats = 127.0.0.1:1717
119 memory-report = true
119 memory-report = true
120
120
121 <%text>## log 5XX errors</%text>
121 <%text>## log 5XX errors</%text>
122 log-5xx = true
122 log-5xx = true
123
123
124 <%text>## Set the socket listen queue size.</%text>
124 <%text>## Set the socket listen queue size.</%text>
125 listen = 256
125 listen = 256
126
126
127 <%text>## Gracefully Reload workers after the specified amount of managed requests</%text>
127 <%text>## Gracefully Reload workers after the specified amount of managed requests</%text>
128 <%text>## (avoid memory leaks).</%text>
128 <%text>## (avoid memory leaks).</%text>
129 max-requests = 1000
129 max-requests = 1000
130
130
131 <%text>## enable large buffers</%text>
131 <%text>## enable large buffers</%text>
132 buffer-size = 65535
132 buffer-size = 65535
133
133
134 <%text>## socket and http timeouts ##</%text>
134 <%text>## socket and http timeouts ##</%text>
135 http-timeout = 3600
135 http-timeout = 3600
136 socket-timeout = 3600
136 socket-timeout = 3600
137
137
138 <%text>## Log requests slower than the specified number of milliseconds.</%text>
138 <%text>## Log requests slower than the specified number of milliseconds.</%text>
139 log-slow = 10
139 log-slow = 10
140
140
141 <%text>## Exit if no app can be loaded.</%text>
141 <%text>## Exit if no app can be loaded.</%text>
142 need-app = true
142 need-app = true
143
143
144 <%text>## Set lazy mode (load apps in workers instead of master).</%text>
144 <%text>## Set lazy mode (load apps in workers instead of master).</%text>
145 lazy = true
145 lazy = true
146
146
147 <%text>## scaling ##</%text>
147 <%text>## scaling ##</%text>
148 <%text>## set cheaper algorithm to use, if not set default will be used</%text>
148 <%text>## set cheaper algorithm to use, if not set default will be used</%text>
149 cheaper-algo = spare
149 cheaper-algo = spare
150
150
151 <%text>## minimum number of workers to keep at all times</%text>
151 <%text>## minimum number of workers to keep at all times</%text>
152 cheaper = 1
152 cheaper = 1
153
153
154 <%text>## number of workers to spawn at startup</%text>
154 <%text>## number of workers to spawn at startup</%text>
155 cheaper-initial = 1
155 cheaper-initial = 1
156
156
157 <%text>## maximum number of workers that can be spawned</%text>
157 <%text>## maximum number of workers that can be spawned</%text>
158 workers = 4
158 workers = 4
159
159
160 <%text>## how many workers should be spawned at a time</%text>
160 <%text>## how many workers should be spawned at a time</%text>
161 cheaper-step = 1
161 cheaper-step = 1
162
162
163 %endif
163 %endif
164 <%text>## COMMON ##</%text>
164 <%text>## COMMON ##</%text>
165 host = ${host}
165 host = ${host}
166 port = ${port}
166 port = ${port}
167
167
168 <%text>## middleware for hosting the WSGI application under a URL prefix</%text>
168 <%text>## middleware for hosting the WSGI application under a URL prefix</%text>
169 #[filter:proxy-prefix]
169 #[filter:proxy-prefix]
170 #use = egg:PasteDeploy#prefix
170 #use = egg:PasteDeploy#prefix
171 #prefix = /<your-prefix>
171 #prefix = /<your-prefix>
172
172
173 [app:main]
173 [app:main]
174 use = egg:kallithea
174 use = egg:kallithea
175 <%text>## enable proxy prefix middleware</%text>
175 <%text>## enable proxy prefix middleware</%text>
176 #filter-with = proxy-prefix
176 #filter-with = proxy-prefix
177
177
178 full_stack = true
178 full_stack = true
179 static_files = true
179 static_files = true
180 <%text>## Available Languages:</%text>
180 <%text>## Available Languages:</%text>
181 <%text>## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW</%text>
181 <%text>## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW</%text>
182 lang =
182 lang =
183 cache_dir = ${here}/data
183 cache_dir = ${here}/data
184 index_dir = ${here}/data/index
184 index_dir = ${here}/data/index
185
185
186 <%text>## perform a full repository scan on each server start, this should be</%text>
186 <%text>## perform a full repository scan on each server start, this should be</%text>
187 <%text>## set to false after first startup, to allow faster server restarts.</%text>
187 <%text>## set to false after first startup, to allow faster server restarts.</%text>
188 initial_repo_scan = false
188 initial_repo_scan = false
189
189
190 <%text>## uncomment and set this path to use archive download cache</%text>
190 <%text>## uncomment and set this path to use archive download cache</%text>
191 archive_cache_dir = ${here}/tarballcache
191 archive_cache_dir = ${here}/tarballcache
192
192
193 <%text>## change this to unique ID for security</%text>
193 <%text>## change this to unique ID for security</%text>
194 app_instance_uuid = ${uuid()}
194 app_instance_uuid = ${uuid()}
195
195
196 <%text>## cut off limit for large diffs (size in bytes)</%text>
196 <%text>## cut off limit for large diffs (size in bytes)</%text>
197 cut_off_limit = 256000
197 cut_off_limit = 256000
198
198
199 <%text>## use cache version of scm repo everywhere</%text>
199 <%text>## use cache version of scm repo everywhere</%text>
200 vcs_full_cache = true
200 vcs_full_cache = true
201
201
202 <%text>## force https in Kallithea, fixes https redirects, assumes it's always https</%text>
202 <%text>## force https in Kallithea, fixes https redirects, assumes it's always https</%text>
203 force_https = false
203 force_https = false
204
204
205 <%text>## use Strict-Transport-Security headers</%text>
205 <%text>## use Strict-Transport-Security headers</%text>
206 use_htsts = false
206 use_htsts = false
207
207
208 <%text>## number of commits stats will parse on each iteration</%text>
208 <%text>## number of commits stats will parse on each iteration</%text>
209 commit_parse_limit = 25
209 commit_parse_limit = 25
210
210
211 <%text>## path to git executable</%text>
211 <%text>## path to git executable</%text>
212 git_path = git
212 git_path = git
213
213
214 <%text>## git rev filter option, --all is the default filter, if you need to</%text>
214 <%text>## git rev filter option, --all is the default filter, if you need to</%text>
215 <%text>## hide all refs in changelog switch this to --branches --tags</%text>
215 <%text>## hide all refs in changelog switch this to --branches --tags</%text>
216 #git_rev_filter = --branches --tags
216 #git_rev_filter = --branches --tags
217
217
218 <%text>## RSS feed options</%text>
218 <%text>## RSS feed options</%text>
219 rss_cut_off_limit = 256000
219 rss_cut_off_limit = 256000
220 rss_items_per_page = 10
220 rss_items_per_page = 10
221 rss_include_diff = false
221 rss_include_diff = false
222
222
223 <%text>## options for showing and identifying changesets</%text>
223 <%text>## options for showing and identifying changesets</%text>
224 show_sha_length = 12
224 show_sha_length = 12
225 show_revision_number = false
225 show_revision_number = false
226
226
227 <%text>## gist URL alias, used to create nicer urls for gist. This should be an</%text>
227 <%text>## gist URL alias, used to create nicer urls for gist. This should be an</%text>
228 <%text>## url that does rewrites to _admin/gists/<gistid>.</%text>
228 <%text>## url that does rewrites to _admin/gists/<gistid>.</%text>
229 <%text>## example: http://gist.example.com/{gistid}. Empty means use the internal</%text>
229 <%text>## example: http://gist.example.com/{gistid}. Empty means use the internal</%text>
230 <%text>## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid></%text>
230 <%text>## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid></%text>
231 gist_alias_url =
231 gist_alias_url =
232
232
233 <%text>## white list of API enabled controllers. This allows to add list of</%text>
233 <%text>## white list of API enabled controllers. This allows to add list of</%text>
234 <%text>## controllers to which access will be enabled by api_key. eg: to enable</%text>
234 <%text>## controllers to which access will be enabled by api_key. eg: to enable</%text>
235 <%text>## api access to raw_files put `FilesController:raw`, to enable access to patches</%text>
235 <%text>## api access to raw_files put `FilesController:raw`, to enable access to patches</%text>
236 <%text>## add `ChangesetController:changeset_patch`. This list should be "," separated</%text>
236 <%text>## add `ChangesetController:changeset_patch`. This list should be "," separated</%text>
237 <%text>## Syntax is <ControllerClass>:<function>. Check debug logs for generated names</%text>
237 <%text>## Syntax is <ControllerClass>:<function>. Check debug logs for generated names</%text>
238 <%text>## Recommended settings below are commented out:</%text>
238 <%text>## Recommended settings below are commented out:</%text>
239 api_access_controllers_whitelist =
239 api_access_controllers_whitelist =
240 # ChangesetController:changeset_patch,
240 # ChangesetController:changeset_patch,
241 # ChangesetController:changeset_raw,
241 # ChangesetController:changeset_raw,
242 # FilesController:raw,
242 # FilesController:raw,
243 # FilesController:archivefile
243 # FilesController:archivefile
244
244
245 <%text>## default encoding used to convert from and to unicode</%text>
245 <%text>## default encoding used to convert from and to unicode</%text>
246 <%text>## can be also a comma seperated list of encoding in case of mixed encodings</%text>
246 <%text>## can be also a comma seperated list of encoding in case of mixed encodings</%text>
247 default_encoding = utf8
247 default_encoding = utf8
248
248
249 <%text>## issue tracker for Kallithea (leave blank to disable, absent for default)</%text>
249 <%text>## issue tracker for Kallithea (leave blank to disable, absent for default)</%text>
250 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
250 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
251
251
252 <%text>## issue tracking mapping for commits messages</%text>
252 <%text>## issue tracking mapping for commits messages</%text>
253 <%text>## comment out issue_pat, issue_server, issue_prefix to enable</%text>
253 <%text>## comment out issue_pat, issue_server, issue_prefix to enable</%text>
254
254
255 <%text>## pattern to get the issues from commit messages</%text>
255 <%text>## pattern to get the issues from commit messages</%text>
256 <%text>## default one used here is #<numbers> with a regex passive group for `#`</%text>
256 <%text>## default one used here is #<numbers> with a regex passive group for `#`</%text>
257 <%text>## {id} will be all groups matched from this pattern</%text>
257 <%text>## {id} will be all groups matched from this pattern</%text>
258
258
259 issue_pat = (?:\s*#)(\d+)
259 issue_pat = (?:\s*#)(\d+)
260
260
261 <%text>## server url to the issue, each {id} will be replaced with match</%text>
261 <%text>## server url to the issue, each {id} will be replaced with match</%text>
262 <%text>## fetched from the regex and {repo} is replaced with full repository name</%text>
262 <%text>## fetched from the regex and {repo} is replaced with full repository name</%text>
263 <%text>## including groups {repo_name} is replaced with just name of repo</%text>
263 <%text>## including groups {repo_name} is replaced with just name of repo</%text>
264
264
265 issue_server_link = https://issues.example.com/{repo}/issue/{id}
265 issue_server_link = https://issues.example.com/{repo}/issue/{id}
266
266
267 <%text>## prefix to add to link to indicate it's an url</%text>
267 <%text>## prefix to add to link to indicate it's an url</%text>
268 <%text>## #314 will be replaced by <issue_prefix><id></%text>
268 <%text>## #314 will be replaced by <issue_prefix><id></%text>
269
269
270 issue_prefix = #
270 issue_prefix = #
271
271
272 <%text>## issue_pat, issue_server_link, issue_prefix can have suffixes to specify</%text>
272 <%text>## issue_pat, issue_server_link, issue_prefix can have suffixes to specify</%text>
273 <%text>## multiple patterns, to other issues server, wiki or others</%text>
273 <%text>## multiple patterns, to other issues server, wiki or others</%text>
274 <%text>## below an example how to create a wiki pattern</%text>
274 <%text>## below an example how to create a wiki pattern</%text>
275 # wiki-some-id -> https://wiki.example.com/some-id
275 # wiki-some-id -> https://wiki.example.com/some-id
276
276
277 #issue_pat_wiki = (?:wiki-)(.+)
277 #issue_pat_wiki = (?:wiki-)(.+)
278 #issue_server_link_wiki = https://wiki.example.com/{id}
278 #issue_server_link_wiki = https://wiki.example.com/{id}
279 #issue_prefix_wiki = WIKI-
279 #issue_prefix_wiki = WIKI-
280
280
281 <%text>## instance-id prefix</%text>
281 <%text>## instance-id prefix</%text>
282 <%text>## a prefix key for this instance used for cache invalidation when running</%text>
282 <%text>## a prefix key for this instance used for cache invalidation when running</%text>
283 <%text>## multiple instances of kallithea, make sure it's globally unique for</%text>
283 <%text>## multiple instances of kallithea, make sure it's globally unique for</%text>
284 <%text>## all running kallithea instances. Leave empty if you don't use it</%text>
284 <%text>## all running kallithea instances. Leave empty if you don't use it</%text>
285 instance_id =
285 instance_id =
286
286
287 <%text>## alternative return HTTP header for failed authentication. Default HTTP</%text>
287 <%text>## alternative return HTTP header for failed authentication. Default HTTP</%text>
288 <%text>## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with</%text>
288 <%text>## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with</%text>
289 <%text>## handling that. Set this variable to 403 to return HTTPForbidden</%text>
289 <%text>## handling that. Set this variable to 403 to return HTTPForbidden</%text>
290 auth_ret_code =
290 auth_ret_code =
291
291
292 <%text>## locking return code. When repository is locked return this HTTP code. 2XX</%text>
292 <%text>## locking return code. When repository is locked return this HTTP code. 2XX</%text>
293 <%text>## codes don't break the transactions while 4XX codes do</%text>
293 <%text>## codes don't break the transactions while 4XX codes do</%text>
294 lock_ret_code = 423
294 lock_ret_code = 423
295
295
296 <%text>## allows to change the repository location in settings page</%text>
296 <%text>## allows to change the repository location in settings page</%text>
297 allow_repo_location_change = True
297 allow_repo_location_change = True
298
298
299 <%text>## allows to setup custom hooks in settings page</%text>
299 <%text>## allows to setup custom hooks in settings page</%text>
300 allow_custom_hooks_settings = True
300 allow_custom_hooks_settings = True
301
301
302 <%text>####################################</%text>
302 <%text>####################################</%text>
303 <%text>### CELERY CONFIG ####</%text>
303 <%text>### CELERY CONFIG ####</%text>
304 <%text>####################################</%text>
304 <%text>####################################</%text>
305
305
306 use_celery = false
306 use_celery = false
307 broker.host = localhost
307 broker.host = localhost
308 broker.vhost = rabbitmqhost
308 broker.vhost = rabbitmqhost
309 broker.port = 5672
309 broker.port = 5672
310 broker.user = rabbitmq
310 broker.user = rabbitmq
311 broker.password = qweqwe
311 broker.password = qweqwe
312
312
313 celery.imports = kallithea.lib.celerylib.tasks
313 celery.imports = kallithea.lib.celerylib.tasks
314
314
315 celery.result.backend = amqp
315 celery.result.backend = amqp
316 celery.result.dburi = amqp://
316 celery.result.dburi = amqp://
317 celery.result.serialier = json
317 celery.result.serialier = json
318
318
319 #celery.send.task.error.emails = true
319 #celery.send.task.error.emails = true
320 #celery.amqp.task.result.expires = 18000
320 #celery.amqp.task.result.expires = 18000
321
321
322 celeryd.concurrency = 2
322 celeryd.concurrency = 2
323 #celeryd.log.file = celeryd.log
323 #celeryd.log.file = celeryd.log
324 celeryd.log.level = DEBUG
324 celeryd.log.level = DEBUG
325 celeryd.max.tasks.per.child = 1
325 celeryd.max.tasks.per.child = 1
326
326
327 <%text>## tasks will never be sent to the queue, but executed locally instead.</%text>
327 <%text>## tasks will never be sent to the queue, but executed locally instead.</%text>
328 celery.always.eager = false
328 celery.always.eager = false
329
329
330 <%text>####################################</%text>
330 <%text>####################################</%text>
331 <%text>### BEAKER CACHE ####</%text>
331 <%text>### BEAKER CACHE ####</%text>
332 <%text>####################################</%text>
332 <%text>####################################</%text>
333
333
334 beaker.cache.data_dir = ${here}/data/cache/data
334 beaker.cache.data_dir = ${here}/data/cache/data
335 beaker.cache.lock_dir = ${here}/data/cache/lock
335 beaker.cache.lock_dir = ${here}/data/cache/lock
336
336
337 beaker.cache.regions = short_term,long_term,sql_cache_short
337 beaker.cache.regions = short_term,long_term,sql_cache_short
338
338
339 beaker.cache.short_term.type = memory
339 beaker.cache.short_term.type = memory
340 beaker.cache.short_term.expire = 60
340 beaker.cache.short_term.expire = 60
341 beaker.cache.short_term.key_length = 256
341 beaker.cache.short_term.key_length = 256
342
342
343 beaker.cache.long_term.type = memory
343 beaker.cache.long_term.type = memory
344 beaker.cache.long_term.expire = 36000
344 beaker.cache.long_term.expire = 36000
345 beaker.cache.long_term.key_length = 256
345 beaker.cache.long_term.key_length = 256
346
346
347 beaker.cache.sql_cache_short.type = memory
347 beaker.cache.sql_cache_short.type = memory
348 beaker.cache.sql_cache_short.expire = 10
348 beaker.cache.sql_cache_short.expire = 10
349 beaker.cache.sql_cache_short.key_length = 256
349 beaker.cache.sql_cache_short.key_length = 256
350
350
351 <%text>####################################</%text>
351 <%text>####################################</%text>
352 <%text>### BEAKER SESSION ####</%text>
352 <%text>### BEAKER SESSION ####</%text>
353 <%text>####################################</%text>
353 <%text>####################################</%text>
354
354
355 <%text>## Name of session cookie. Should be unique for a given host and path, even when running</%text>
355 <%text>## Name of session cookie. Should be unique for a given host and path, even when running</%text>
356 <%text>## on different ports. Otherwise, cookie sessions will be shared and messed up.</%text>
356 <%text>## on different ports. Otherwise, cookie sessions will be shared and messed up.</%text>
357 beaker.session.key = kallithea
357 beaker.session.key = kallithea
358 <%text>## Sessions should always only be accessible by the browser, not directly by JavaScript.</%text>
358 <%text>## Sessions should always only be accessible by the browser, not directly by JavaScript.</%text>
359 beaker.session.httponly = true
359 beaker.session.httponly = true
360 <%text>## Session lifetime. 2592000 seconds is 30 days.</%text>
360 <%text>## Session lifetime. 2592000 seconds is 30 days.</%text>
361 beaker.session.timeout = 2592000
361 beaker.session.timeout = 2592000
362
362
363 <%text>## Server secret used with HMAC to ensure integrity of cookies.</%text>
363 <%text>## Server secret used with HMAC to ensure integrity of cookies.</%text>
364 beaker.session.secret = ${uuid()}
364 beaker.session.secret = ${uuid()}
365 <%text>## Further, encrypt the data with AES.</%text>
365 <%text>## Further, encrypt the data with AES.</%text>
366 #beaker.session.encrypt_key = <key_for_encryption>
366 #beaker.session.encrypt_key = <key_for_encryption>
367 #beaker.session.validate_key = <validation_key>
367 #beaker.session.validate_key = <validation_key>
368
368
369 <%text>## Type of storage used for the session, current types are</%text>
369 <%text>## Type of storage used for the session, current types are</%text>
370 <%text>## dbm, file, memcached, database, and memory.</%text>
370 <%text>## dbm, file, memcached, database, and memory.</%text>
371
371
372 <%text>## File system storage of session data. (default)</%text>
372 <%text>## File system storage of session data. (default)</%text>
373 #beaker.session.type = file
373 #beaker.session.type = file
374
374
375 <%text>## Cookie only, store all session data inside the cookie. Requires secure secrets.</%text>
375 <%text>## Cookie only, store all session data inside the cookie. Requires secure secrets.</%text>
376 #beaker.session.type = cookie
376 #beaker.session.type = cookie
377
377
378 <%text>## Database storage of session data.</%text>
378 <%text>## Database storage of session data.</%text>
379 #beaker.session.type = ext:database
379 #beaker.session.type = ext:database
380 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
380 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
381 #beaker.session.table_name = db_session
381 #beaker.session.table_name = db_session
382
382
383 %if error_aggregation_service == 'errormator':
383 %if error_aggregation_service == 'appenlight':
384 <%text>############################</%text>
384 <%text>############################</%text>
385 <%text>## ERROR HANDLING SYSTEMS ##</%text>
385 <%text>## ERROR HANDLING SYSTEMS ##</%text>
386 <%text>############################</%text>
386 <%text>############################</%text>
387
387
388 <%text>####################</%text>
388 <%text>####################</%text>
389 <%text>### [errormator] ###</%text>
389 <%text>### [appenlight] ###</%text>
390 <%text>####################</%text>
390 <%text>####################</%text>
391
391
392 <%text>## Errormator is tailored to work with Kallithea, see</%text>
392 <%text>## AppEnlight is tailored to work with Kallithea, see</%text>
393 <%text>## http://errormator.com for details how to obtain an account</%text>
393 <%text>## http://appenlight.com for details how to obtain an account</%text>
394 <%text>## you must install python package `errormator_client` to make it work</%text>
394 <%text>## you must install python package `appenlight_client` to make it work</%text>
395
395
396 <%text>## errormator enabled</%text>
396 <%text>## appenlight enabled</%text>
397 errormator = false
397 appenlight = false
398
398
399 errormator.server_url = https://api.errormator.com
399 appenlight.server_url = https://api.appenlight.com
400 errormator.api_key = YOUR_API_KEY
400 appenlight.api_key = YOUR_API_KEY
401
401
402 <%text>## TWEAK AMOUNT OF INFO SENT HERE</%text>
402 <%text>## TWEAK AMOUNT OF INFO SENT HERE</%text>
403
403
404 <%text>## enables 404 error logging (default False)</%text>
404 <%text>## enables 404 error logging (default False)</%text>
405 errormator.report_404 = false
405 appenlight.report_404 = false
406
406
407 <%text>## time in seconds after request is considered being slow (default 1)</%text>
407 <%text>## time in seconds after request is considered being slow (default 1)</%text>
408 errormator.slow_request_time = 1
408 appenlight.slow_request_time = 1
409
409
410 <%text>## record slow requests in application</%text>
410 <%text>## record slow requests in application</%text>
411 <%text>## (needs to be enabled for slow datastore recording and time tracking)</%text>
411 <%text>## (needs to be enabled for slow datastore recording and time tracking)</%text>
412 errormator.slow_requests = true
412 appenlight.slow_requests = true
413
413
414 <%text>## enable hooking to application loggers</%text>
414 <%text>## enable hooking to application loggers</%text>
415 #errormator.logging = true
415 #appenlight.logging = true
416
416
417 <%text>## minimum log level for log capture</%text>
417 <%text>## minimum log level for log capture</%text>
418 #errormator.logging.level = WARNING
418 #appenlight.logging.level = WARNING
419
419
420 <%text>## send logs only from erroneous/slow requests</%text>
420 <%text>## send logs only from erroneous/slow requests</%text>
421 <%text>## (saves API quota for intensive logging)</%text>
421 <%text>## (saves API quota for intensive logging)</%text>
422 errormator.logging_on_error = false
422 appenlight.logging_on_error = false
423
423
424 <%text>## list of additonal keywords that should be grabbed from environ object</%text>
424 <%text>## list of additonal keywords that should be grabbed from environ object</%text>
425 <%text>## can be string with comma separated list of words in lowercase</%text>
425 <%text>## can be string with comma separated list of words in lowercase</%text>
426 <%text>## (by default client will always send following info:</%text>
426 <%text>## (by default client will always send following info:</%text>
427 <%text>## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that</%text>
427 <%text>## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that</%text>
428 <%text>## start with HTTP* this list be extended with additional keywords here</%text>
428 <%text>## start with HTTP* this list be extended with additional keywords here</%text>
429 errormator.environ_keys_whitelist =
429 appenlight.environ_keys_whitelist =
430
430
431 <%text>## list of keywords that should be blanked from request object</%text>
431 <%text>## list of keywords that should be blanked from request object</%text>
432 <%text>## can be string with comma separated list of words in lowercase</%text>
432 <%text>## can be string with comma separated list of words in lowercase</%text>
433 <%text>## (by default client will always blank keys that contain following words</%text>
433 <%text>## (by default client will always blank keys that contain following words</%text>
434 <%text>## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'</%text>
434 <%text>## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'</%text>
435 <%text>## this list be extended with additional keywords set here</%text>
435 <%text>## this list be extended with additional keywords set here</%text>
436 errormator.request_keys_blacklist =
436 appenlight.request_keys_blacklist =
437
437
438 <%text>## list of namespaces that should be ignores when gathering log entries</%text>
438 <%text>## list of namespaces that should be ignores when gathering log entries</%text>
439 <%text>## can be string with comma separated list of namespaces</%text>
439 <%text>## can be string with comma separated list of namespaces</%text>
440 <%text>## (by default the client ignores own entries: errormator_client.client)</%text>
440 <%text>## (by default the client ignores own entries: appenlight_client.client)</%text>
441 errormator.log_namespace_blacklist =
441 appenlight.log_namespace_blacklist =
442
442
443 %elif error_aggregation_service == 'sentry':
443 %elif error_aggregation_service == 'sentry':
444 <%text>################</%text>
444 <%text>################</%text>
445 <%text>### [sentry] ###</%text>
445 <%text>### [sentry] ###</%text>
446 <%text>################</%text>
446 <%text>################</%text>
447
447
448 <%text>## sentry is a alternative open source error aggregator</%text>
448 <%text>## sentry is a alternative open source error aggregator</%text>
449 <%text>## you must install python packages `sentry` and `raven` to enable</%text>
449 <%text>## you must install python packages `sentry` and `raven` to enable</%text>
450
450
451 sentry.dsn = YOUR_DNS
451 sentry.dsn = YOUR_DNS
452 sentry.servers =
452 sentry.servers =
453 sentry.name =
453 sentry.name =
454 sentry.key =
454 sentry.key =
455 sentry.public_key =
455 sentry.public_key =
456 sentry.secret_key =
456 sentry.secret_key =
457 sentry.project =
457 sentry.project =
458 sentry.site =
458 sentry.site =
459 sentry.include_paths =
459 sentry.include_paths =
460 sentry.exclude_paths =
460 sentry.exclude_paths =
461
461
462 %endif
462 %endif
463 <%text>################################################################################</%text>
463 <%text>################################################################################</%text>
464 <%text>## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##</%text>
464 <%text>## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##</%text>
465 <%text>## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##</%text>
465 <%text>## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##</%text>
466 <%text>## execute malicious code after an exception is raised. ##</%text>
466 <%text>## execute malicious code after an exception is raised. ##</%text>
467 <%text>################################################################################</%text>
467 <%text>################################################################################</%text>
468 set debug = false
468 set debug = false
469
469
470 <%text>##################################</%text>
470 <%text>##################################</%text>
471 <%text>### LOGVIEW CONFIG ###</%text>
471 <%text>### LOGVIEW CONFIG ###</%text>
472 <%text>##################################</%text>
472 <%text>##################################</%text>
473
473
474 logview.sqlalchemy = #faa
474 logview.sqlalchemy = #faa
475 logview.pylons.templating = #bfb
475 logview.pylons.templating = #bfb
476 logview.pylons.util = #eee
476 logview.pylons.util = #eee
477
477
478 <%text>#########################################################</%text>
478 <%text>#########################################################</%text>
479 <%text>### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###</%text>
479 <%text>### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###</%text>
480 <%text>#########################################################</%text>
480 <%text>#########################################################</%text>
481
481
482 %if database_engine == 'sqlite':
482 %if database_engine == 'sqlite':
483 # SQLITE [default]
483 # SQLITE [default]
484 sqlalchemy.db1.url = sqlite:///${here}/kallithea.db?timeout=60
484 sqlalchemy.db1.url = sqlite:///${here}/kallithea.db?timeout=60
485
485
486 %elif database_engine == 'postgres':
486 %elif database_engine == 'postgres':
487 # POSTGRESQL
487 # POSTGRESQL
488 sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea
488 sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea
489
489
490 %elif database_engine == 'mysql':
490 %elif database_engine == 'mysql':
491 # MySQL
491 # MySQL
492 sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea
492 sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea
493
493
494 %endif
494 %endif
495 # see sqlalchemy docs for others
495 # see sqlalchemy docs for others
496
496
497 sqlalchemy.db1.echo = false
497 sqlalchemy.db1.echo = false
498 sqlalchemy.db1.pool_recycle = 3600
498 sqlalchemy.db1.pool_recycle = 3600
499 sqlalchemy.db1.convert_unicode = true
499 sqlalchemy.db1.convert_unicode = true
500
500
501 <%text>################################</%text>
501 <%text>################################</%text>
502 <%text>### LOGGING CONFIGURATION ####</%text>
502 <%text>### LOGGING CONFIGURATION ####</%text>
503 <%text>################################</%text>
503 <%text>################################</%text>
504
504
505 [loggers]
505 [loggers]
506 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
506 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
507
507
508 [handlers]
508 [handlers]
509 keys = console, console_sql
509 keys = console, console_sql
510
510
511 [formatters]
511 [formatters]
512 keys = generic, color_formatter, color_formatter_sql
512 keys = generic, color_formatter, color_formatter_sql
513
513
514 <%text>#############</%text>
514 <%text>#############</%text>
515 <%text>## LOGGERS ##</%text>
515 <%text>## LOGGERS ##</%text>
516 <%text>#############</%text>
516 <%text>#############</%text>
517
517
518 [logger_root]
518 [logger_root]
519 level = NOTSET
519 level = NOTSET
520 handlers = console
520 handlers = console
521
521
522 [logger_routes]
522 [logger_routes]
523 level = DEBUG
523 level = DEBUG
524 handlers =
524 handlers =
525 qualname = routes.middleware
525 qualname = routes.middleware
526 <%text>## "level = DEBUG" logs the route matched and routing variables.</%text>
526 <%text>## "level = DEBUG" logs the route matched and routing variables.</%text>
527 propagate = 1
527 propagate = 1
528
528
529 [logger_beaker]
529 [logger_beaker]
530 level = DEBUG
530 level = DEBUG
531 handlers =
531 handlers =
532 qualname = beaker.container
532 qualname = beaker.container
533 propagate = 1
533 propagate = 1
534
534
535 [logger_templates]
535 [logger_templates]
536 level = INFO
536 level = INFO
537 handlers =
537 handlers =
538 qualname = pylons.templating
538 qualname = pylons.templating
539 propagate = 1
539 propagate = 1
540
540
541 [logger_kallithea]
541 [logger_kallithea]
542 level = DEBUG
542 level = DEBUG
543 handlers =
543 handlers =
544 qualname = kallithea
544 qualname = kallithea
545 propagate = 1
545 propagate = 1
546
546
547 [logger_sqlalchemy]
547 [logger_sqlalchemy]
548 level = INFO
548 level = INFO
549 handlers = console_sql
549 handlers = console_sql
550 qualname = sqlalchemy.engine
550 qualname = sqlalchemy.engine
551 propagate = 0
551 propagate = 0
552
552
553 [logger_whoosh_indexer]
553 [logger_whoosh_indexer]
554 level = DEBUG
554 level = DEBUG
555 handlers =
555 handlers =
556 qualname = whoosh_indexer
556 qualname = whoosh_indexer
557 propagate = 1
557 propagate = 1
558
558
559 <%text>##############</%text>
559 <%text>##############</%text>
560 <%text>## HANDLERS ##</%text>
560 <%text>## HANDLERS ##</%text>
561 <%text>##############</%text>
561 <%text>##############</%text>
562
562
563 [handler_console]
563 [handler_console]
564 class = StreamHandler
564 class = StreamHandler
565 args = (sys.stderr,)
565 args = (sys.stderr,)
566 level = INFO
566 level = INFO
567 formatter = generic
567 formatter = generic
568
568
569 [handler_console_sql]
569 [handler_console_sql]
570 class = StreamHandler
570 class = StreamHandler
571 args = (sys.stderr,)
571 args = (sys.stderr,)
572 level = WARN
572 level = WARN
573 formatter = generic
573 formatter = generic
574
574
575 <%text>################</%text>
575 <%text>################</%text>
576 <%text>## FORMATTERS ##</%text>
576 <%text>## FORMATTERS ##</%text>
577 <%text>################</%text>
577 <%text>################</%text>
578
578
579 [formatter_generic]
579 [formatter_generic]
580 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
580 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
581 datefmt = %Y-%m-%d %H:%M:%S
581 datefmt = %Y-%m-%d %H:%M:%S
582
582
583 [formatter_color_formatter]
583 [formatter_color_formatter]
584 class = kallithea.lib.colored_formatter.ColorFormatter
584 class = kallithea.lib.colored_formatter.ColorFormatter
585 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
585 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
586 datefmt = %Y-%m-%d %H:%M:%S
586 datefmt = %Y-%m-%d %H:%M:%S
587
587
588 [formatter_color_formatter_sql]
588 [formatter_color_formatter_sql]
589 class = kallithea.lib.colored_formatter.ColorFormatterSql
589 class = kallithea.lib.colored_formatter.ColorFormatterSql
590 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
590 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
591 datefmt = %Y-%m-%d %H:%M:%S
591 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,580 +1,580 b''
1 ################################################################################
1 ################################################################################
2 ################################################################################
2 ################################################################################
3 # Kallithea - Example config #
3 # Kallithea - Example config #
4 # #
4 # #
5 # The %(here)s variable will be replaced with the parent directory of this file#
5 # The %(here)s variable will be replaced with the parent directory of this file#
6 ################################################################################
6 ################################################################################
7 ################################################################################
7 ################################################################################
8
8
9 [DEFAULT]
9 [DEFAULT]
10 debug = true
10 debug = true
11 pdebug = false
11 pdebug = false
12
12
13 ################################################################################
13 ################################################################################
14 ## Email settings ##
14 ## Email settings ##
15 ## ##
15 ## ##
16 ## Refer to the documentation ("Email settings") for more details. ##
16 ## Refer to the documentation ("Email settings") for more details. ##
17 ## ##
17 ## ##
18 ## It is recommended to use a valid sender address that passes access ##
18 ## It is recommended to use a valid sender address that passes access ##
19 ## validation and spam filtering in mail servers. ##
19 ## validation and spam filtering in mail servers. ##
20 ################################################################################
20 ################################################################################
21
21
22 ## 'From' header for application emails. You can optionally add a name.
22 ## 'From' header for application emails. You can optionally add a name.
23 ## Default:
23 ## Default:
24 #app_email_from = Kallithea
24 #app_email_from = Kallithea
25 ## Examples:
25 ## Examples:
26 #app_email_from = Kallithea <kallithea-noreply@example.com>
26 #app_email_from = Kallithea <kallithea-noreply@example.com>
27 #app_email_from = kallithea-noreply@example.com
27 #app_email_from = kallithea-noreply@example.com
28
28
29 ## Subject prefix for application emails.
29 ## Subject prefix for application emails.
30 ## A space between this prefix and the real subject is automatically added.
30 ## A space between this prefix and the real subject is automatically added.
31 ## Default:
31 ## Default:
32 #email_prefix =
32 #email_prefix =
33 ## Example:
33 ## Example:
34 #email_prefix = [Kallithea]
34 #email_prefix = [Kallithea]
35
35
36 ## Recipients for error emails and fallback recipients of application mails.
36 ## Recipients for error emails and fallback recipients of application mails.
37 ## Multiple addresses can be specified, space-separated.
37 ## Multiple addresses can be specified, space-separated.
38 ## Only addresses are allowed, do not add any name part.
38 ## Only addresses are allowed, do not add any name part.
39 ## Default:
39 ## Default:
40 #email_to =
40 #email_to =
41 ## Examples:
41 ## Examples:
42 #email_to = admin@example.com
42 #email_to = admin@example.com
43 #email_to = admin@example.com another_admin@example.com
43 #email_to = admin@example.com another_admin@example.com
44
44
45 ## 'From' header for error emails. You can optionally add a name.
45 ## 'From' header for error emails. You can optionally add a name.
46 ## Default:
46 ## Default:
47 #error_email_from = pylons@yourapp.com
47 #error_email_from = pylons@yourapp.com
48 ## Examples:
48 ## Examples:
49 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
49 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
50 #error_email_from = paste_error@example.com
50 #error_email_from = paste_error@example.com
51
51
52 ## SMTP server settings
52 ## SMTP server settings
53 ## Only smtp_server is mandatory. All other settings take the specified default
53 ## Only smtp_server is mandatory. All other settings take the specified default
54 ## values.
54 ## values.
55 #smtp_server = smtp.example.com
55 #smtp_server = smtp.example.com
56 #smtp_username =
56 #smtp_username =
57 #smtp_password =
57 #smtp_password =
58 #smtp_port = 25
58 #smtp_port = 25
59 #smtp_use_tls = false
59 #smtp_use_tls = false
60 #smtp_use_ssl = false
60 #smtp_use_ssl = false
61 ## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
61 ## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
62 ## If empty, use any of the authentication parameters supported by the server.
62 ## If empty, use any of the authentication parameters supported by the server.
63 #smtp_auth =
63 #smtp_auth =
64
64
65 [server:main]
65 [server:main]
66 ## PASTE ##
66 ## PASTE ##
67 #use = egg:Paste#http
67 #use = egg:Paste#http
68 ## nr of worker threads to spawn
68 ## nr of worker threads to spawn
69 #threadpool_workers = 5
69 #threadpool_workers = 5
70 ## max request before thread respawn
70 ## max request before thread respawn
71 #threadpool_max_requests = 10
71 #threadpool_max_requests = 10
72 ## option to use threads of process
72 ## option to use threads of process
73 #use_threadpool = true
73 #use_threadpool = true
74
74
75 ## WAITRESS ##
75 ## WAITRESS ##
76 use = egg:waitress#main
76 use = egg:waitress#main
77 ## number of worker threads
77 ## number of worker threads
78 threads = 5
78 threads = 5
79 ## MAX BODY SIZE 100GB
79 ## MAX BODY SIZE 100GB
80 max_request_body_size = 107374182400
80 max_request_body_size = 107374182400
81 ## use poll instead of select, fixes fd limits, may not work on old
81 ## use poll instead of select, fixes fd limits, may not work on old
82 ## windows systems.
82 ## windows systems.
83 #asyncore_use_poll = True
83 #asyncore_use_poll = True
84
84
85 ## GUNICORN ##
85 ## GUNICORN ##
86 #use = egg:gunicorn#main
86 #use = egg:gunicorn#main
87 ## number of process workers. You must set `instance_id = *` when this option
87 ## number of process workers. You must set `instance_id = *` when this option
88 ## is set to more than one worker
88 ## is set to more than one worker
89 #workers = 1
89 #workers = 1
90 ## process name
90 ## process name
91 #proc_name = kallithea
91 #proc_name = kallithea
92 ## type of worker class, one of sync, eventlet, gevent, tornado
92 ## type of worker class, one of sync, eventlet, gevent, tornado
93 ## recommended for bigger setup is using of of other than sync one
93 ## recommended for bigger setup is using of of other than sync one
94 #worker_class = sync
94 #worker_class = sync
95 #max_requests = 1000
95 #max_requests = 1000
96 ## ammount of time a worker can handle request before it gets killed and
96 ## ammount of time a worker can handle request before it gets killed and
97 ## restarted
97 ## restarted
98 #timeout = 3600
98 #timeout = 3600
99
99
100 ## UWSGI ##
100 ## UWSGI ##
101 ## run with uwsgi --ini-paste-logged <inifile.ini>
101 ## run with uwsgi --ini-paste-logged <inifile.ini>
102 #[uwsgi]
102 #[uwsgi]
103 #socket = /tmp/uwsgi.sock
103 #socket = /tmp/uwsgi.sock
104 #master = true
104 #master = true
105 #http = 127.0.0.1:5000
105 #http = 127.0.0.1:5000
106
106
107 ## set as deamon and redirect all output to file
107 ## set as deamon and redirect all output to file
108 #daemonize = ./uwsgi_kallithea.log
108 #daemonize = ./uwsgi_kallithea.log
109
109
110 ## master process PID
110 ## master process PID
111 #pidfile = ./uwsgi_kallithea.pid
111 #pidfile = ./uwsgi_kallithea.pid
112
112
113 ## stats server with workers statistics, use uwsgitop
113 ## stats server with workers statistics, use uwsgitop
114 ## for monitoring, `uwsgitop 127.0.0.1:1717`
114 ## for monitoring, `uwsgitop 127.0.0.1:1717`
115 #stats = 127.0.0.1:1717
115 #stats = 127.0.0.1:1717
116 #memory-report = true
116 #memory-report = true
117
117
118 ## log 5XX errors
118 ## log 5XX errors
119 #log-5xx = true
119 #log-5xx = true
120
120
121 ## Set the socket listen queue size.
121 ## Set the socket listen queue size.
122 #listen = 256
122 #listen = 256
123
123
124 ## Gracefully Reload workers after the specified amount of managed requests
124 ## Gracefully Reload workers after the specified amount of managed requests
125 ## (avoid memory leaks).
125 ## (avoid memory leaks).
126 #max-requests = 1000
126 #max-requests = 1000
127
127
128 ## enable large buffers
128 ## enable large buffers
129 #buffer-size = 65535
129 #buffer-size = 65535
130
130
131 ## socket and http timeouts ##
131 ## socket and http timeouts ##
132 #http-timeout = 3600
132 #http-timeout = 3600
133 #socket-timeout = 3600
133 #socket-timeout = 3600
134
134
135 ## Log requests slower than the specified number of milliseconds.
135 ## Log requests slower than the specified number of milliseconds.
136 #log-slow = 10
136 #log-slow = 10
137
137
138 ## Exit if no app can be loaded.
138 ## Exit if no app can be loaded.
139 #need-app = true
139 #need-app = true
140
140
141 ## Set lazy mode (load apps in workers instead of master).
141 ## Set lazy mode (load apps in workers instead of master).
142 #lazy = true
142 #lazy = true
143
143
144 ## scaling ##
144 ## scaling ##
145 ## set cheaper algorithm to use, if not set default will be used
145 ## set cheaper algorithm to use, if not set default will be used
146 #cheaper-algo = spare
146 #cheaper-algo = spare
147
147
148 ## minimum number of workers to keep at all times
148 ## minimum number of workers to keep at all times
149 #cheaper = 1
149 #cheaper = 1
150
150
151 ## number of workers to spawn at startup
151 ## number of workers to spawn at startup
152 #cheaper-initial = 1
152 #cheaper-initial = 1
153
153
154 ## maximum number of workers that can be spawned
154 ## maximum number of workers that can be spawned
155 #workers = 4
155 #workers = 4
156
156
157 ## how many workers should be spawned at a time
157 ## how many workers should be spawned at a time
158 #cheaper-step = 1
158 #cheaper-step = 1
159
159
160 ## COMMON ##
160 ## COMMON ##
161 host = 127.0.0.1
161 host = 127.0.0.1
162 port = 5000
162 port = 5000
163
163
164 ## middleware for hosting the WSGI application under a URL prefix
164 ## middleware for hosting the WSGI application under a URL prefix
165 #[filter:proxy-prefix]
165 #[filter:proxy-prefix]
166 #use = egg:PasteDeploy#prefix
166 #use = egg:PasteDeploy#prefix
167 #prefix = /<your-prefix>
167 #prefix = /<your-prefix>
168
168
169 [app:main]
169 [app:main]
170 use = egg:kallithea
170 use = egg:kallithea
171 ## enable proxy prefix middleware
171 ## enable proxy prefix middleware
172 #filter-with = proxy-prefix
172 #filter-with = proxy-prefix
173
173
174 full_stack = true
174 full_stack = true
175 static_files = true
175 static_files = true
176 ## Available Languages:
176 ## Available Languages:
177 ## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW
177 ## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW
178 lang =
178 lang =
179 cache_dir = %(here)s/data
179 cache_dir = %(here)s/data
180 index_dir = %(here)s/data/index
180 index_dir = %(here)s/data/index
181
181
182 ## perform a full repository scan on each server start, this should be
182 ## perform a full repository scan on each server start, this should be
183 ## set to false after first startup, to allow faster server restarts.
183 ## set to false after first startup, to allow faster server restarts.
184 initial_repo_scan = false
184 initial_repo_scan = false
185
185
186 ## uncomment and set this path to use archive download cache
186 ## uncomment and set this path to use archive download cache
187 archive_cache_dir = %(here)s/tarballcache
187 archive_cache_dir = %(here)s/tarballcache
188
188
189 ## change this to unique ID for security
189 ## change this to unique ID for security
190 app_instance_uuid = ${app_instance_uuid}
190 app_instance_uuid = ${app_instance_uuid}
191
191
192 ## cut off limit for large diffs (size in bytes)
192 ## cut off limit for large diffs (size in bytes)
193 cut_off_limit = 256000
193 cut_off_limit = 256000
194
194
195 ## use cache version of scm repo everywhere
195 ## use cache version of scm repo everywhere
196 vcs_full_cache = true
196 vcs_full_cache = true
197
197
198 ## force https in Kallithea, fixes https redirects, assumes it's always https
198 ## force https in Kallithea, fixes https redirects, assumes it's always https
199 force_https = false
199 force_https = false
200
200
201 ## use Strict-Transport-Security headers
201 ## use Strict-Transport-Security headers
202 use_htsts = false
202 use_htsts = false
203
203
204 ## number of commits stats will parse on each iteration
204 ## number of commits stats will parse on each iteration
205 commit_parse_limit = 25
205 commit_parse_limit = 25
206
206
207 ## path to git executable
207 ## path to git executable
208 git_path = git
208 git_path = git
209
209
210 ## git rev filter option, --all is the default filter, if you need to
210 ## git rev filter option, --all is the default filter, if you need to
211 ## hide all refs in changelog switch this to --branches --tags
211 ## hide all refs in changelog switch this to --branches --tags
212 #git_rev_filter = --branches --tags
212 #git_rev_filter = --branches --tags
213
213
214 ## RSS feed options
214 ## RSS feed options
215 rss_cut_off_limit = 256000
215 rss_cut_off_limit = 256000
216 rss_items_per_page = 10
216 rss_items_per_page = 10
217 rss_include_diff = false
217 rss_include_diff = false
218
218
219 ## options for showing and identifying changesets
219 ## options for showing and identifying changesets
220 show_sha_length = 12
220 show_sha_length = 12
221 show_revision_number = false
221 show_revision_number = false
222
222
223 ## gist URL alias, used to create nicer urls for gist. This should be an
223 ## gist URL alias, used to create nicer urls for gist. This should be an
224 ## url that does rewrites to _admin/gists/<gistid>.
224 ## url that does rewrites to _admin/gists/<gistid>.
225 ## example: http://gist.example.com/{gistid}. Empty means use the internal
225 ## example: http://gist.example.com/{gistid}. Empty means use the internal
226 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
226 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
227 gist_alias_url =
227 gist_alias_url =
228
228
229 ## white list of API enabled controllers. This allows to add list of
229 ## white list of API enabled controllers. This allows to add list of
230 ## controllers to which access will be enabled by api_key. eg: to enable
230 ## controllers to which access will be enabled by api_key. eg: to enable
231 ## api access to raw_files put `FilesController:raw`, to enable access to patches
231 ## api access to raw_files put `FilesController:raw`, to enable access to patches
232 ## add `ChangesetController:changeset_patch`. This list should be "," separated
232 ## add `ChangesetController:changeset_patch`. This list should be "," separated
233 ## Syntax is <ControllerClass>:<function>. Check debug logs for generated names
233 ## Syntax is <ControllerClass>:<function>. Check debug logs for generated names
234 ## Recommended settings below are commented out:
234 ## Recommended settings below are commented out:
235 api_access_controllers_whitelist =
235 api_access_controllers_whitelist =
236 # ChangesetController:changeset_patch,
236 # ChangesetController:changeset_patch,
237 # ChangesetController:changeset_raw,
237 # ChangesetController:changeset_raw,
238 # FilesController:raw,
238 # FilesController:raw,
239 # FilesController:archivefile
239 # FilesController:archivefile
240
240
241 ## default encoding used to convert from and to unicode
241 ## default encoding used to convert from and to unicode
242 ## can be also a comma seperated list of encoding in case of mixed encodings
242 ## can be also a comma seperated list of encoding in case of mixed encodings
243 default_encoding = utf8
243 default_encoding = utf8
244
244
245 ## issue tracker for Kallithea (leave blank to disable, absent for default)
245 ## issue tracker for Kallithea (leave blank to disable, absent for default)
246 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
246 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
247
247
248 ## issue tracking mapping for commits messages
248 ## issue tracking mapping for commits messages
249 ## comment out issue_pat, issue_server, issue_prefix to enable
249 ## comment out issue_pat, issue_server, issue_prefix to enable
250
250
251 ## pattern to get the issues from commit messages
251 ## pattern to get the issues from commit messages
252 ## default one used here is #<numbers> with a regex passive group for `#`
252 ## default one used here is #<numbers> with a regex passive group for `#`
253 ## {id} will be all groups matched from this pattern
253 ## {id} will be all groups matched from this pattern
254
254
255 issue_pat = (?:\s*#)(\d+)
255 issue_pat = (?:\s*#)(\d+)
256
256
257 ## server url to the issue, each {id} will be replaced with match
257 ## server url to the issue, each {id} will be replaced with match
258 ## fetched from the regex and {repo} is replaced with full repository name
258 ## fetched from the regex and {repo} is replaced with full repository name
259 ## including groups {repo_name} is replaced with just name of repo
259 ## including groups {repo_name} is replaced with just name of repo
260
260
261 issue_server_link = https://issues.example.com/{repo}/issue/{id}
261 issue_server_link = https://issues.example.com/{repo}/issue/{id}
262
262
263 ## prefix to add to link to indicate it's an url
263 ## prefix to add to link to indicate it's an url
264 ## #314 will be replaced by <issue_prefix><id>
264 ## #314 will be replaced by <issue_prefix><id>
265
265
266 issue_prefix = #
266 issue_prefix = #
267
267
268 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
268 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
269 ## multiple patterns, to other issues server, wiki or others
269 ## multiple patterns, to other issues server, wiki or others
270 ## below an example how to create a wiki pattern
270 ## below an example how to create a wiki pattern
271 # wiki-some-id -> https://wiki.example.com/some-id
271 # wiki-some-id -> https://wiki.example.com/some-id
272
272
273 #issue_pat_wiki = (?:wiki-)(.+)
273 #issue_pat_wiki = (?:wiki-)(.+)
274 #issue_server_link_wiki = https://wiki.example.com/{id}
274 #issue_server_link_wiki = https://wiki.example.com/{id}
275 #issue_prefix_wiki = WIKI-
275 #issue_prefix_wiki = WIKI-
276
276
277 ## instance-id prefix
277 ## instance-id prefix
278 ## a prefix key for this instance used for cache invalidation when running
278 ## a prefix key for this instance used for cache invalidation when running
279 ## multiple instances of kallithea, make sure it's globally unique for
279 ## multiple instances of kallithea, make sure it's globally unique for
280 ## all running kallithea instances. Leave empty if you don't use it
280 ## all running kallithea instances. Leave empty if you don't use it
281 instance_id =
281 instance_id =
282
282
283 ## alternative return HTTP header for failed authentication. Default HTTP
283 ## alternative return HTTP header for failed authentication. Default HTTP
284 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
284 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
285 ## handling that. Set this variable to 403 to return HTTPForbidden
285 ## handling that. Set this variable to 403 to return HTTPForbidden
286 auth_ret_code =
286 auth_ret_code =
287
287
288 ## locking return code. When repository is locked return this HTTP code. 2XX
288 ## locking return code. When repository is locked return this HTTP code. 2XX
289 ## codes don't break the transactions while 4XX codes do
289 ## codes don't break the transactions while 4XX codes do
290 lock_ret_code = 423
290 lock_ret_code = 423
291
291
292 ## allows to change the repository location in settings page
292 ## allows to change the repository location in settings page
293 allow_repo_location_change = True
293 allow_repo_location_change = True
294
294
295 ## allows to setup custom hooks in settings page
295 ## allows to setup custom hooks in settings page
296 allow_custom_hooks_settings = True
296 allow_custom_hooks_settings = True
297
297
298 ####################################
298 ####################################
299 ### CELERY CONFIG ####
299 ### CELERY CONFIG ####
300 ####################################
300 ####################################
301
301
302 use_celery = false
302 use_celery = false
303 broker.host = localhost
303 broker.host = localhost
304 broker.vhost = rabbitmqhost
304 broker.vhost = rabbitmqhost
305 broker.port = 5672
305 broker.port = 5672
306 broker.user = rabbitmq
306 broker.user = rabbitmq
307 broker.password = qweqwe
307 broker.password = qweqwe
308
308
309 celery.imports = kallithea.lib.celerylib.tasks
309 celery.imports = kallithea.lib.celerylib.tasks
310
310
311 celery.result.backend = amqp
311 celery.result.backend = amqp
312 celery.result.dburi = amqp://
312 celery.result.dburi = amqp://
313 celery.result.serialier = json
313 celery.result.serialier = json
314
314
315 #celery.send.task.error.emails = true
315 #celery.send.task.error.emails = true
316 #celery.amqp.task.result.expires = 18000
316 #celery.amqp.task.result.expires = 18000
317
317
318 celeryd.concurrency = 2
318 celeryd.concurrency = 2
319 #celeryd.log.file = celeryd.log
319 #celeryd.log.file = celeryd.log
320 celeryd.log.level = DEBUG
320 celeryd.log.level = DEBUG
321 celeryd.max.tasks.per.child = 1
321 celeryd.max.tasks.per.child = 1
322
322
323 ## tasks will never be sent to the queue, but executed locally instead.
323 ## tasks will never be sent to the queue, but executed locally instead.
324 celery.always.eager = false
324 celery.always.eager = false
325
325
326 ####################################
326 ####################################
327 ### BEAKER CACHE ####
327 ### BEAKER CACHE ####
328 ####################################
328 ####################################
329
329
330 beaker.cache.data_dir = %(here)s/data/cache/data
330 beaker.cache.data_dir = %(here)s/data/cache/data
331 beaker.cache.lock_dir = %(here)s/data/cache/lock
331 beaker.cache.lock_dir = %(here)s/data/cache/lock
332
332
333 beaker.cache.regions = short_term,long_term,sql_cache_short
333 beaker.cache.regions = short_term,long_term,sql_cache_short
334
334
335 beaker.cache.short_term.type = memory
335 beaker.cache.short_term.type = memory
336 beaker.cache.short_term.expire = 60
336 beaker.cache.short_term.expire = 60
337 beaker.cache.short_term.key_length = 256
337 beaker.cache.short_term.key_length = 256
338
338
339 beaker.cache.long_term.type = memory
339 beaker.cache.long_term.type = memory
340 beaker.cache.long_term.expire = 36000
340 beaker.cache.long_term.expire = 36000
341 beaker.cache.long_term.key_length = 256
341 beaker.cache.long_term.key_length = 256
342
342
343 beaker.cache.sql_cache_short.type = memory
343 beaker.cache.sql_cache_short.type = memory
344 beaker.cache.sql_cache_short.expire = 10
344 beaker.cache.sql_cache_short.expire = 10
345 beaker.cache.sql_cache_short.key_length = 256
345 beaker.cache.sql_cache_short.key_length = 256
346
346
347 ####################################
347 ####################################
348 ### BEAKER SESSION ####
348 ### BEAKER SESSION ####
349 ####################################
349 ####################################
350
350
351 ## Name of session cookie. Should be unique for a given host and path, even when running
351 ## Name of session cookie. Should be unique for a given host and path, even when running
352 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
352 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
353 beaker.session.key = kallithea
353 beaker.session.key = kallithea
354 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
354 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
355 beaker.session.httponly = true
355 beaker.session.httponly = true
356 ## Session lifetime. 2592000 seconds is 30 days.
356 ## Session lifetime. 2592000 seconds is 30 days.
357 beaker.session.timeout = 2592000
357 beaker.session.timeout = 2592000
358
358
359 ## Server secret used with HMAC to ensure integrity of cookies.
359 ## Server secret used with HMAC to ensure integrity of cookies.
360 beaker.session.secret = ${app_instance_uuid}
360 beaker.session.secret = ${app_instance_uuid}
361 ## Further, encrypt the data with AES.
361 ## Further, encrypt the data with AES.
362 #beaker.session.encrypt_key = <key_for_encryption>
362 #beaker.session.encrypt_key = <key_for_encryption>
363 #beaker.session.validate_key = <validation_key>
363 #beaker.session.validate_key = <validation_key>
364
364
365 ## Type of storage used for the session, current types are
365 ## Type of storage used for the session, current types are
366 ## dbm, file, memcached, database, and memory.
366 ## dbm, file, memcached, database, and memory.
367
367
368 ## File system storage of session data. (default)
368 ## File system storage of session data. (default)
369 #beaker.session.type = file
369 #beaker.session.type = file
370
370
371 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
371 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
372 #beaker.session.type = cookie
372 #beaker.session.type = cookie
373
373
374 ## Database storage of session data.
374 ## Database storage of session data.
375 #beaker.session.type = ext:database
375 #beaker.session.type = ext:database
376 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
376 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
377 #beaker.session.table_name = db_session
377 #beaker.session.table_name = db_session
378
378
379 ############################
379 ############################
380 ## ERROR HANDLING SYSTEMS ##
380 ## ERROR HANDLING SYSTEMS ##
381 ############################
381 ############################
382
382
383 ####################
383 ####################
384 ### [errormator] ###
384 ### [appenlight] ###
385 ####################
385 ####################
386
386
387 ## Errormator is tailored to work with Kallithea, see
387 ## AppEnlight is tailored to work with Kallithea, see
388 ## http://errormator.com for details how to obtain an account
388 ## http://appenlight.com for details how to obtain an account
389 ## you must install python package `errormator_client` to make it work
389 ## you must install python package `appenlight_client` to make it work
390
390
391 ## errormator enabled
391 ## appenlight enabled
392 errormator = false
392 appenlight = false
393
393
394 errormator.server_url = https://api.errormator.com
394 appenlight.server_url = https://api.appenlight.com
395 errormator.api_key = YOUR_API_KEY
395 appenlight.api_key = YOUR_API_KEY
396
396
397 ## TWEAK AMOUNT OF INFO SENT HERE
397 ## TWEAK AMOUNT OF INFO SENT HERE
398
398
399 ## enables 404 error logging (default False)
399 ## enables 404 error logging (default False)
400 errormator.report_404 = false
400 appenlight.report_404 = false
401
401
402 ## time in seconds after request is considered being slow (default 1)
402 ## time in seconds after request is considered being slow (default 1)
403 errormator.slow_request_time = 1
403 appenlight.slow_request_time = 1
404
404
405 ## record slow requests in application
405 ## record slow requests in application
406 ## (needs to be enabled for slow datastore recording and time tracking)
406 ## (needs to be enabled for slow datastore recording and time tracking)
407 errormator.slow_requests = true
407 appenlight.slow_requests = true
408
408
409 ## enable hooking to application loggers
409 ## enable hooking to application loggers
410 #errormator.logging = true
410 #appenlight.logging = true
411
411
412 ## minimum log level for log capture
412 ## minimum log level for log capture
413 #errormator.logging.level = WARNING
413 #appenlight.logging.level = WARNING
414
414
415 ## send logs only from erroneous/slow requests
415 ## send logs only from erroneous/slow requests
416 ## (saves API quota for intensive logging)
416 ## (saves API quota for intensive logging)
417 errormator.logging_on_error = false
417 appenlight.logging_on_error = false
418
418
419 ## list of additonal keywords that should be grabbed from environ object
419 ## list of additonal keywords that should be grabbed from environ object
420 ## can be string with comma separated list of words in lowercase
420 ## can be string with comma separated list of words in lowercase
421 ## (by default client will always send following info:
421 ## (by default client will always send following info:
422 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
422 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
423 ## start with HTTP* this list be extended with additional keywords here
423 ## start with HTTP* this list be extended with additional keywords here
424 errormator.environ_keys_whitelist =
424 appenlight.environ_keys_whitelist =
425
425
426 ## list of keywords that should be blanked from request object
426 ## list of keywords that should be blanked from request object
427 ## can be string with comma separated list of words in lowercase
427 ## can be string with comma separated list of words in lowercase
428 ## (by default client will always blank keys that contain following words
428 ## (by default client will always blank keys that contain following words
429 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
429 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
430 ## this list be extended with additional keywords set here
430 ## this list be extended with additional keywords set here
431 errormator.request_keys_blacklist =
431 appenlight.request_keys_blacklist =
432
432
433 ## list of namespaces that should be ignores when gathering log entries
433 ## list of namespaces that should be ignores when gathering log entries
434 ## can be string with comma separated list of namespaces
434 ## can be string with comma separated list of namespaces
435 ## (by default the client ignores own entries: errormator_client.client)
435 ## (by default the client ignores own entries: appenlight_client.client)
436 errormator.log_namespace_blacklist =
436 appenlight.log_namespace_blacklist =
437
437
438 ################
438 ################
439 ### [sentry] ###
439 ### [sentry] ###
440 ################
440 ################
441
441
442 ## sentry is a alternative open source error aggregator
442 ## sentry is a alternative open source error aggregator
443 ## you must install python packages `sentry` and `raven` to enable
443 ## you must install python packages `sentry` and `raven` to enable
444
444
445 sentry.dsn = YOUR_DNS
445 sentry.dsn = YOUR_DNS
446 sentry.servers =
446 sentry.servers =
447 sentry.name =
447 sentry.name =
448 sentry.key =
448 sentry.key =
449 sentry.public_key =
449 sentry.public_key =
450 sentry.secret_key =
450 sentry.secret_key =
451 sentry.project =
451 sentry.project =
452 sentry.site =
452 sentry.site =
453 sentry.include_paths =
453 sentry.include_paths =
454 sentry.exclude_paths =
454 sentry.exclude_paths =
455
455
456 ################################################################################
456 ################################################################################
457 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
457 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
458 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
458 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
459 ## execute malicious code after an exception is raised. ##
459 ## execute malicious code after an exception is raised. ##
460 ################################################################################
460 ################################################################################
461 set debug = false
461 set debug = false
462
462
463 ##################################
463 ##################################
464 ### LOGVIEW CONFIG ###
464 ### LOGVIEW CONFIG ###
465 ##################################
465 ##################################
466
466
467 logview.sqlalchemy = #faa
467 logview.sqlalchemy = #faa
468 logview.pylons.templating = #bfb
468 logview.pylons.templating = #bfb
469 logview.pylons.util = #eee
469 logview.pylons.util = #eee
470
470
471 #########################################################
471 #########################################################
472 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
472 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
473 #########################################################
473 #########################################################
474
474
475 # SQLITE [default]
475 # SQLITE [default]
476 sqlalchemy.db1.url = sqlite:///%(here)s/kallithea.db?timeout=60
476 sqlalchemy.db1.url = sqlite:///%(here)s/kallithea.db?timeout=60
477
477
478 # POSTGRESQL
478 # POSTGRESQL
479 #sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea
479 #sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea
480
480
481 # MySQL
481 # MySQL
482 #sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea
482 #sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea
483
483
484 # see sqlalchemy docs for others
484 # see sqlalchemy docs for others
485
485
486 sqlalchemy.db1.echo = false
486 sqlalchemy.db1.echo = false
487 sqlalchemy.db1.pool_recycle = 3600
487 sqlalchemy.db1.pool_recycle = 3600
488 sqlalchemy.db1.convert_unicode = true
488 sqlalchemy.db1.convert_unicode = true
489
489
490 ################################
490 ################################
491 ### LOGGING CONFIGURATION ####
491 ### LOGGING CONFIGURATION ####
492 ################################
492 ################################
493
493
494 [loggers]
494 [loggers]
495 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
495 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
496
496
497 [handlers]
497 [handlers]
498 keys = console, console_sql
498 keys = console, console_sql
499
499
500 [formatters]
500 [formatters]
501 keys = generic, color_formatter, color_formatter_sql
501 keys = generic, color_formatter, color_formatter_sql
502
502
503 #############
503 #############
504 ## LOGGERS ##
504 ## LOGGERS ##
505 #############
505 #############
506
506
507 [logger_root]
507 [logger_root]
508 level = NOTSET
508 level = NOTSET
509 handlers = console
509 handlers = console
510
510
511 [logger_routes]
511 [logger_routes]
512 level = DEBUG
512 level = DEBUG
513 handlers =
513 handlers =
514 qualname = routes.middleware
514 qualname = routes.middleware
515 ## "level = DEBUG" logs the route matched and routing variables.
515 ## "level = DEBUG" logs the route matched and routing variables.
516 propagate = 1
516 propagate = 1
517
517
518 [logger_beaker]
518 [logger_beaker]
519 level = DEBUG
519 level = DEBUG
520 handlers =
520 handlers =
521 qualname = beaker.container
521 qualname = beaker.container
522 propagate = 1
522 propagate = 1
523
523
524 [logger_templates]
524 [logger_templates]
525 level = INFO
525 level = INFO
526 handlers =
526 handlers =
527 qualname = pylons.templating
527 qualname = pylons.templating
528 propagate = 1
528 propagate = 1
529
529
530 [logger_kallithea]
530 [logger_kallithea]
531 level = DEBUG
531 level = DEBUG
532 handlers =
532 handlers =
533 qualname = kallithea
533 qualname = kallithea
534 propagate = 1
534 propagate = 1
535
535
536 [logger_sqlalchemy]
536 [logger_sqlalchemy]
537 level = INFO
537 level = INFO
538 handlers = console_sql
538 handlers = console_sql
539 qualname = sqlalchemy.engine
539 qualname = sqlalchemy.engine
540 propagate = 0
540 propagate = 0
541
541
542 [logger_whoosh_indexer]
542 [logger_whoosh_indexer]
543 level = DEBUG
543 level = DEBUG
544 handlers =
544 handlers =
545 qualname = whoosh_indexer
545 qualname = whoosh_indexer
546 propagate = 1
546 propagate = 1
547
547
548 ##############
548 ##############
549 ## HANDLERS ##
549 ## HANDLERS ##
550 ##############
550 ##############
551
551
552 [handler_console]
552 [handler_console]
553 class = StreamHandler
553 class = StreamHandler
554 args = (sys.stderr,)
554 args = (sys.stderr,)
555 level = INFO
555 level = INFO
556 formatter = generic
556 formatter = generic
557
557
558 [handler_console_sql]
558 [handler_console_sql]
559 class = StreamHandler
559 class = StreamHandler
560 args = (sys.stderr,)
560 args = (sys.stderr,)
561 level = WARN
561 level = WARN
562 formatter = generic
562 formatter = generic
563
563
564 ################
564 ################
565 ## FORMATTERS ##
565 ## FORMATTERS ##
566 ################
566 ################
567
567
568 [formatter_generic]
568 [formatter_generic]
569 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
569 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
570 datefmt = %Y-%m-%d %H:%M:%S
570 datefmt = %Y-%m-%d %H:%M:%S
571
571
572 [formatter_color_formatter]
572 [formatter_color_formatter]
573 class = kallithea.lib.colored_formatter.ColorFormatter
573 class = kallithea.lib.colored_formatter.ColorFormatter
574 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
574 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
575 datefmt = %Y-%m-%d %H:%M:%S
575 datefmt = %Y-%m-%d %H:%M:%S
576
576
577 [formatter_color_formatter_sql]
577 [formatter_color_formatter_sql]
578 class = kallithea.lib.colored_formatter.ColorFormatterSql
578 class = kallithea.lib.colored_formatter.ColorFormatterSql
579 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
579 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
580 datefmt = %Y-%m-%d %H:%M:%S
580 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,112 +1,112 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 # This program is free software: you can redistribute it and/or modify
2 # This program is free software: you can redistribute it and/or modify
3 # it under the terms of the GNU General Public License as published by
3 # it under the terms of the GNU General Public License as published by
4 # the Free Software Foundation, either version 3 of the License, or
4 # the Free Software Foundation, either version 3 of the License, or
5 # (at your option) any later version.
5 # (at your option) any later version.
6 #
6 #
7 # This program is distributed in the hope that it will be useful,
7 # This program is distributed in the hope that it will be useful,
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 # GNU General Public License for more details.
10 # GNU General Public License for more details.
11 #
11 #
12 # You should have received a copy of the GNU General Public License
12 # You should have received a copy of the GNU General Public License
13 # along with this program. If not, see <http://www.gnu.org/licenses/>.
13 # along with this program. If not, see <http://www.gnu.org/licenses/>.
14 """
14 """
15 Pylons middleware initialization
15 Pylons middleware initialization
16 """
16 """
17
17
18 from routes.middleware import RoutesMiddleware
18 from routes.middleware import RoutesMiddleware
19 from paste.cascade import Cascade
19 from paste.cascade import Cascade
20 from paste.registry import RegistryManager
20 from paste.registry import RegistryManager
21 from paste.urlparser import StaticURLParser
21 from paste.urlparser import StaticURLParser
22 from paste.deploy.converters import asbool
22 from paste.deploy.converters import asbool
23 from paste.gzipper import make_gzip_middleware
23 from paste.gzipper import make_gzip_middleware
24
24
25 from pylons.middleware import ErrorHandler, StatusCodeRedirect
25 from pylons.middleware import ErrorHandler, StatusCodeRedirect
26 from pylons.wsgiapp import PylonsApp
26 from pylons.wsgiapp import PylonsApp
27
27
28 from kallithea.lib.middleware.simplehg import SimpleHg
28 from kallithea.lib.middleware.simplehg import SimpleHg
29 from kallithea.lib.middleware.simplegit import SimpleGit
29 from kallithea.lib.middleware.simplegit import SimpleGit
30 from kallithea.lib.middleware.https_fixup import HttpsFixup
30 from kallithea.lib.middleware.https_fixup import HttpsFixup
31 from kallithea.lib.middleware.sessionmiddleware import SecureSessionMiddleware
31 from kallithea.lib.middleware.sessionmiddleware import SecureSessionMiddleware
32 from kallithea.config.environment import load_environment
32 from kallithea.config.environment import load_environment
33 from kallithea.lib.middleware.wrapper import RequestWrapper
33 from kallithea.lib.middleware.wrapper import RequestWrapper
34
34
35
35
36 def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
36 def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
37 """Create a Pylons WSGI application and return it
37 """Create a Pylons WSGI application and return it
38
38
39 ``global_conf``
39 ``global_conf``
40 The inherited configuration for this application. Normally from
40 The inherited configuration for this application. Normally from
41 the [DEFAULT] section of the Paste ini file.
41 the [DEFAULT] section of the Paste ini file.
42
42
43 ``full_stack``
43 ``full_stack``
44 Whether or not this application provides a full WSGI stack (by
44 Whether or not this application provides a full WSGI stack (by
45 default, meaning it handles its own exceptions and errors).
45 default, meaning it handles its own exceptions and errors).
46 Disable full_stack when this application is "managed" by
46 Disable full_stack when this application is "managed" by
47 another WSGI middleware.
47 another WSGI middleware.
48
48
49 ``app_conf``
49 ``app_conf``
50 The application's local configuration. Normally specified in
50 The application's local configuration. Normally specified in
51 the [app:<name>] section of the Paste ini file (where <name>
51 the [app:<name>] section of the Paste ini file (where <name>
52 defaults to main).
52 defaults to main).
53
53
54 """
54 """
55 # Configure the Pylons environment
55 # Configure the Pylons environment
56 config = load_environment(global_conf, app_conf)
56 config = load_environment(global_conf, app_conf)
57
57
58 # The Pylons WSGI app
58 # The Pylons WSGI app
59 app = PylonsApp(config=config)
59 app = PylonsApp(config=config)
60
60
61 # Routing/Session/Cache Middleware
61 # Routing/Session/Cache Middleware
62 app = RoutesMiddleware(app, config['routes.map'])
62 app = RoutesMiddleware(app, config['routes.map'])
63 app = SecureSessionMiddleware(app, config)
63 app = SecureSessionMiddleware(app, config)
64
64
65 # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
65 # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
66 if asbool(config['pdebug']):
66 if asbool(config['pdebug']):
67 from kallithea.lib.profiler import ProfilingMiddleware
67 from kallithea.lib.profiler import ProfilingMiddleware
68 app = ProfilingMiddleware(app)
68 app = ProfilingMiddleware(app)
69
69
70 if asbool(full_stack):
70 if asbool(full_stack):
71
71
72 from kallithea.lib.middleware.sentry import Sentry
72 from kallithea.lib.middleware.sentry import Sentry
73 from kallithea.lib.middleware.errormator import Errormator
73 from kallithea.lib.middleware.appenlight import AppEnlight
74 if Errormator and asbool(config['app_conf'].get('errormator')):
74 if AppEnlight and asbool(config['app_conf'].get('appenlight')):
75 app = Errormator(app, config)
75 app = AppEnlight(app, config)
76 elif Sentry:
76 elif Sentry:
77 app = Sentry(app, config)
77 app = Sentry(app, config)
78
78
79 # Handle Python exceptions
79 # Handle Python exceptions
80 app = ErrorHandler(app, global_conf, **config['pylons.errorware'])
80 app = ErrorHandler(app, global_conf, **config['pylons.errorware'])
81
81
82 # Display error documents for 401, 403, 404 status codes (and
82 # Display error documents for 401, 403, 404 status codes (and
83 # 500 when debug is disabled)
83 # 500 when debug is disabled)
84 # Note: will buffer the output in memory!
84 # Note: will buffer the output in memory!
85 if asbool(config['debug']):
85 if asbool(config['debug']):
86 app = StatusCodeRedirect(app)
86 app = StatusCodeRedirect(app)
87 else:
87 else:
88 app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])
88 app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])
89
89
90 # we want our low level middleware to get to the request ASAP. We don't
90 # we want our low level middleware to get to the request ASAP. We don't
91 # need any pylons stack middleware in them - especially no StatusCodeRedirect buffering
91 # need any pylons stack middleware in them - especially no StatusCodeRedirect buffering
92 app = SimpleHg(app, config)
92 app = SimpleHg(app, config)
93 app = SimpleGit(app, config)
93 app = SimpleGit(app, config)
94
94
95 # Enable https redirects based on HTTP_X_URL_SCHEME set by proxy
95 # Enable https redirects based on HTTP_X_URL_SCHEME set by proxy
96 if any(asbool(config.get(x)) for x in ['https_fixup', 'force_https', 'use_htsts']):
96 if any(asbool(config.get(x)) for x in ['https_fixup', 'force_https', 'use_htsts']):
97 app = HttpsFixup(app, config)
97 app = HttpsFixup(app, config)
98
98
99 app = RequestWrapper(app, config) # logging
99 app = RequestWrapper(app, config) # logging
100
100
101 # Establish the Registry for this application
101 # Establish the Registry for this application
102 app = RegistryManager(app) # thread / request-local module globals / variables
102 app = RegistryManager(app) # thread / request-local module globals / variables
103
103
104 if asbool(static_files):
104 if asbool(static_files):
105 # Serve static files
105 # Serve static files
106 static_app = StaticURLParser(config['pylons.paths']['static_files'])
106 static_app = StaticURLParser(config['pylons.paths']['static_files'])
107 app = Cascade([static_app, app])
107 app = Cascade([static_app, app])
108 app = make_gzip_middleware(app, global_conf, compress_level=1)
108 app = make_gzip_middleware(app, global_conf, compress_level=1)
109
109
110 app.config = config
110 app.config = config
111
111
112 return app
112 return app
@@ -1,34 +1,34 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 # This program is free software: you can redistribute it and/or modify
2 # This program is free software: you can redistribute it and/or modify
3 # it under the terms of the GNU General Public License as published by
3 # it under the terms of the GNU General Public License as published by
4 # the Free Software Foundation, either version 3 of the License, or
4 # the Free Software Foundation, either version 3 of the License, or
5 # (at your option) any later version.
5 # (at your option) any later version.
6 #
6 #
7 # This program is distributed in the hope that it will be useful,
7 # This program is distributed in the hope that it will be useful,
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 # GNU General Public License for more details.
10 # GNU General Public License for more details.
11 #
11 #
12 # You should have received a copy of the GNU General Public License
12 # You should have received a copy of the GNU General Public License
13 # along with this program. If not, see <http://www.gnu.org/licenses/>.
13 # along with this program. If not, see <http://www.gnu.org/licenses/>.
14 """
14 """
15 kallithea.lib.middleware.errormator
15 kallithea.lib.middleware.appenlight
16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17
17
18 middleware to handle errormator publishing of errors
18 middleware to handle appenlight publishing of errors
19
19
20 This file was forked by the Kallithea project in July 2014.
20 This file was forked by the Kallithea project in July 2014.
21 Original author and date, and relevant copyright and licensing information is below:
21 Original author and date, and relevant copyright and licensing information is below:
22 :created_on: October 18, 2012
22 :created_on: October 18, 2012
23 :author: marcink
23 :author: marcink
24 :copyright: (c) 2013 RhodeCode GmbH, and others.
24 :copyright: (c) 2013 RhodeCode GmbH, and others.
25 :license: GPLv3, see LICENSE.md for more details.
25 :license: GPLv3, see LICENSE.md for more details.
26 """
26 """
27
27
28
28
29 try:
29 try:
30 from errormator_client import make_errormator_middleware
30 from appenlight_client import make_appenlight_middleware
31 except ImportError:
31 except ImportError:
32 Errormator = None
32 AppEnlight = None
33 else:
33 else:
34 Errormator = make_errormator_middleware
34 AppEnlight = make_appenlight_middleware
@@ -1,591 +1,591 b''
1 ################################################################################
1 ################################################################################
2 ################################################################################
2 ################################################################################
3 # Kallithea - config for tests: #
3 # Kallithea - config for tests: #
4 # initial_repo_scan = true #
4 # initial_repo_scan = true #
5 # vcs_full_cache = false #
5 # vcs_full_cache = false #
6 # sqlalchemy and kallithea_test.sqlite #
6 # sqlalchemy and kallithea_test.sqlite #
7 # custom logging #
7 # custom logging #
8 # #
8 # #
9 # The %(here)s variable will be replaced with the parent directory of this file#
9 # The %(here)s variable will be replaced with the parent directory of this file#
10 ################################################################################
10 ################################################################################
11 ################################################################################
11 ################################################################################
12
12
13 [DEFAULT]
13 [DEFAULT]
14 debug = true
14 debug = true
15 pdebug = false
15 pdebug = false
16
16
17 ################################################################################
17 ################################################################################
18 ## Email settings ##
18 ## Email settings ##
19 ## ##
19 ## ##
20 ## Refer to the documentation ("Email settings") for more details. ##
20 ## Refer to the documentation ("Email settings") for more details. ##
21 ## ##
21 ## ##
22 ## It is recommended to use a valid sender address that passes access ##
22 ## It is recommended to use a valid sender address that passes access ##
23 ## validation and spam filtering in mail servers. ##
23 ## validation and spam filtering in mail servers. ##
24 ################################################################################
24 ################################################################################
25
25
26 ## 'From' header for application emails. You can optionally add a name.
26 ## 'From' header for application emails. You can optionally add a name.
27 ## Default:
27 ## Default:
28 #app_email_from = Kallithea
28 #app_email_from = Kallithea
29 ## Examples:
29 ## Examples:
30 #app_email_from = Kallithea <kallithea-noreply@example.com>
30 #app_email_from = Kallithea <kallithea-noreply@example.com>
31 #app_email_from = kallithea-noreply@example.com
31 #app_email_from = kallithea-noreply@example.com
32
32
33 ## Subject prefix for application emails.
33 ## Subject prefix for application emails.
34 ## A space between this prefix and the real subject is automatically added.
34 ## A space between this prefix and the real subject is automatically added.
35 ## Default:
35 ## Default:
36 #email_prefix =
36 #email_prefix =
37 ## Example:
37 ## Example:
38 #email_prefix = [Kallithea]
38 #email_prefix = [Kallithea]
39
39
40 ## Recipients for error emails and fallback recipients of application mails.
40 ## Recipients for error emails and fallback recipients of application mails.
41 ## Multiple addresses can be specified, space-separated.
41 ## Multiple addresses can be specified, space-separated.
42 ## Only addresses are allowed, do not add any name part.
42 ## Only addresses are allowed, do not add any name part.
43 ## Default:
43 ## Default:
44 #email_to =
44 #email_to =
45 ## Examples:
45 ## Examples:
46 #email_to = admin@example.com
46 #email_to = admin@example.com
47 #email_to = admin@example.com another_admin@example.com
47 #email_to = admin@example.com another_admin@example.com
48
48
49 ## 'From' header for error emails. You can optionally add a name.
49 ## 'From' header for error emails. You can optionally add a name.
50 ## Default:
50 ## Default:
51 #error_email_from = pylons@yourapp.com
51 #error_email_from = pylons@yourapp.com
52 ## Examples:
52 ## Examples:
53 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
53 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
54 #error_email_from = paste_error@example.com
54 #error_email_from = paste_error@example.com
55
55
56 ## SMTP server settings
56 ## SMTP server settings
57 ## Only smtp_server is mandatory. All other settings take the specified default
57 ## Only smtp_server is mandatory. All other settings take the specified default
58 ## values.
58 ## values.
59 #smtp_server = smtp.example.com
59 #smtp_server = smtp.example.com
60 #smtp_username =
60 #smtp_username =
61 #smtp_password =
61 #smtp_password =
62 #smtp_port = 25
62 #smtp_port = 25
63 #smtp_use_tls = false
63 #smtp_use_tls = false
64 #smtp_use_ssl = false
64 #smtp_use_ssl = false
65 ## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
65 ## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
66 ## If empty, use any of the authentication parameters supported by the server.
66 ## If empty, use any of the authentication parameters supported by the server.
67 #smtp_auth =
67 #smtp_auth =
68
68
69 [server:main]
69 [server:main]
70 ## PASTE ##
70 ## PASTE ##
71 #use = egg:Paste#http
71 #use = egg:Paste#http
72 ## nr of worker threads to spawn
72 ## nr of worker threads to spawn
73 #threadpool_workers = 5
73 #threadpool_workers = 5
74 ## max request before thread respawn
74 ## max request before thread respawn
75 #threadpool_max_requests = 10
75 #threadpool_max_requests = 10
76 ## option to use threads of process
76 ## option to use threads of process
77 #use_threadpool = true
77 #use_threadpool = true
78
78
79 ## WAITRESS ##
79 ## WAITRESS ##
80 use = egg:waitress#main
80 use = egg:waitress#main
81 ## number of worker threads
81 ## number of worker threads
82 threads = 5
82 threads = 5
83 ## MAX BODY SIZE 100GB
83 ## MAX BODY SIZE 100GB
84 max_request_body_size = 107374182400
84 max_request_body_size = 107374182400
85 ## use poll instead of select, fixes fd limits, may not work on old
85 ## use poll instead of select, fixes fd limits, may not work on old
86 ## windows systems.
86 ## windows systems.
87 #asyncore_use_poll = True
87 #asyncore_use_poll = True
88
88
89 ## GUNICORN ##
89 ## GUNICORN ##
90 #use = egg:gunicorn#main
90 #use = egg:gunicorn#main
91 ## number of process workers. You must set `instance_id = *` when this option
91 ## number of process workers. You must set `instance_id = *` when this option
92 ## is set to more than one worker
92 ## is set to more than one worker
93 #workers = 1
93 #workers = 1
94 ## process name
94 ## process name
95 #proc_name = kallithea
95 #proc_name = kallithea
96 ## type of worker class, one of sync, eventlet, gevent, tornado
96 ## type of worker class, one of sync, eventlet, gevent, tornado
97 ## recommended for bigger setup is using of of other than sync one
97 ## recommended for bigger setup is using of of other than sync one
98 #worker_class = sync
98 #worker_class = sync
99 #max_requests = 1000
99 #max_requests = 1000
100 ## ammount of time a worker can handle request before it gets killed and
100 ## ammount of time a worker can handle request before it gets killed and
101 ## restarted
101 ## restarted
102 #timeout = 3600
102 #timeout = 3600
103
103
104 ## UWSGI ##
104 ## UWSGI ##
105 ## run with uwsgi --ini-paste-logged <inifile.ini>
105 ## run with uwsgi --ini-paste-logged <inifile.ini>
106 #[uwsgi]
106 #[uwsgi]
107 #socket = /tmp/uwsgi.sock
107 #socket = /tmp/uwsgi.sock
108 #master = true
108 #master = true
109 #http = 127.0.0.1:5000
109 #http = 127.0.0.1:5000
110
110
111 ## set as deamon and redirect all output to file
111 ## set as deamon and redirect all output to file
112 #daemonize = ./uwsgi_kallithea.log
112 #daemonize = ./uwsgi_kallithea.log
113
113
114 ## master process PID
114 ## master process PID
115 #pidfile = ./uwsgi_kallithea.pid
115 #pidfile = ./uwsgi_kallithea.pid
116
116
117 ## stats server with workers statistics, use uwsgitop
117 ## stats server with workers statistics, use uwsgitop
118 ## for monitoring, `uwsgitop 127.0.0.1:1717`
118 ## for monitoring, `uwsgitop 127.0.0.1:1717`
119 #stats = 127.0.0.1:1717
119 #stats = 127.0.0.1:1717
120 #memory-report = true
120 #memory-report = true
121
121
122 ## log 5XX errors
122 ## log 5XX errors
123 #log-5xx = true
123 #log-5xx = true
124
124
125 ## Set the socket listen queue size.
125 ## Set the socket listen queue size.
126 #listen = 256
126 #listen = 256
127
127
128 ## Gracefully Reload workers after the specified amount of managed requests
128 ## Gracefully Reload workers after the specified amount of managed requests
129 ## (avoid memory leaks).
129 ## (avoid memory leaks).
130 #max-requests = 1000
130 #max-requests = 1000
131
131
132 ## enable large buffers
132 ## enable large buffers
133 #buffer-size = 65535
133 #buffer-size = 65535
134
134
135 ## socket and http timeouts ##
135 ## socket and http timeouts ##
136 #http-timeout = 3600
136 #http-timeout = 3600
137 #socket-timeout = 3600
137 #socket-timeout = 3600
138
138
139 ## Log requests slower than the specified number of milliseconds.
139 ## Log requests slower than the specified number of milliseconds.
140 #log-slow = 10
140 #log-slow = 10
141
141
142 ## Exit if no app can be loaded.
142 ## Exit if no app can be loaded.
143 #need-app = true
143 #need-app = true
144
144
145 ## Set lazy mode (load apps in workers instead of master).
145 ## Set lazy mode (load apps in workers instead of master).
146 #lazy = true
146 #lazy = true
147
147
148 ## scaling ##
148 ## scaling ##
149 ## set cheaper algorithm to use, if not set default will be used
149 ## set cheaper algorithm to use, if not set default will be used
150 #cheaper-algo = spare
150 #cheaper-algo = spare
151
151
152 ## minimum number of workers to keep at all times
152 ## minimum number of workers to keep at all times
153 #cheaper = 1
153 #cheaper = 1
154
154
155 ## number of workers to spawn at startup
155 ## number of workers to spawn at startup
156 #cheaper-initial = 1
156 #cheaper-initial = 1
157
157
158 ## maximum number of workers that can be spawned
158 ## maximum number of workers that can be spawned
159 #workers = 4
159 #workers = 4
160
160
161 ## how many workers should be spawned at a time
161 ## how many workers should be spawned at a time
162 #cheaper-step = 1
162 #cheaper-step = 1
163
163
164 ## COMMON ##
164 ## COMMON ##
165 host = 127.0.0.1
165 host = 127.0.0.1
166 port = 4999
166 port = 4999
167
167
168 ## middleware for hosting the WSGI application under a URL prefix
168 ## middleware for hosting the WSGI application under a URL prefix
169 #[filter:proxy-prefix]
169 #[filter:proxy-prefix]
170 #use = egg:PasteDeploy#prefix
170 #use = egg:PasteDeploy#prefix
171 #prefix = /<your-prefix>
171 #prefix = /<your-prefix>
172
172
173 [app:main]
173 [app:main]
174 use = egg:kallithea
174 use = egg:kallithea
175 ## enable proxy prefix middleware
175 ## enable proxy prefix middleware
176 #filter-with = proxy-prefix
176 #filter-with = proxy-prefix
177
177
178 full_stack = true
178 full_stack = true
179 static_files = true
179 static_files = true
180 ## Available Languages:
180 ## Available Languages:
181 ## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW
181 ## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW
182 lang =
182 lang =
183 cache_dir = %(here)s/data
183 cache_dir = %(here)s/data
184 index_dir = %(here)s/data/index
184 index_dir = %(here)s/data/index
185
185
186 ## perform a full repository scan on each server start, this should be
186 ## perform a full repository scan on each server start, this should be
187 ## set to false after first startup, to allow faster server restarts.
187 ## set to false after first startup, to allow faster server restarts.
188 #initial_repo_scan = false
188 #initial_repo_scan = false
189 initial_repo_scan = true
189 initial_repo_scan = true
190
190
191 ## uncomment and set this path to use archive download cache
191 ## uncomment and set this path to use archive download cache
192 archive_cache_dir = %(here)s/tarballcache
192 archive_cache_dir = %(here)s/tarballcache
193
193
194 ## change this to unique ID for security
194 ## change this to unique ID for security
195 app_instance_uuid = test
195 app_instance_uuid = test
196
196
197 ## cut off limit for large diffs (size in bytes)
197 ## cut off limit for large diffs (size in bytes)
198 cut_off_limit = 256000
198 cut_off_limit = 256000
199
199
200 ## use cache version of scm repo everywhere
200 ## use cache version of scm repo everywhere
201 #vcs_full_cache = true
201 #vcs_full_cache = true
202 vcs_full_cache = false
202 vcs_full_cache = false
203
203
204 ## force https in Kallithea, fixes https redirects, assumes it's always https
204 ## force https in Kallithea, fixes https redirects, assumes it's always https
205 force_https = false
205 force_https = false
206
206
207 ## use Strict-Transport-Security headers
207 ## use Strict-Transport-Security headers
208 use_htsts = false
208 use_htsts = false
209
209
210 ## number of commits stats will parse on each iteration
210 ## number of commits stats will parse on each iteration
211 commit_parse_limit = 25
211 commit_parse_limit = 25
212
212
213 ## path to git executable
213 ## path to git executable
214 git_path = git
214 git_path = git
215
215
216 ## git rev filter option, --all is the default filter, if you need to
216 ## git rev filter option, --all is the default filter, if you need to
217 ## hide all refs in changelog switch this to --branches --tags
217 ## hide all refs in changelog switch this to --branches --tags
218 #git_rev_filter = --branches --tags
218 #git_rev_filter = --branches --tags
219
219
220 ## RSS feed options
220 ## RSS feed options
221 rss_cut_off_limit = 256000
221 rss_cut_off_limit = 256000
222 rss_items_per_page = 10
222 rss_items_per_page = 10
223 rss_include_diff = false
223 rss_include_diff = false
224
224
225 ## options for showing and identifying changesets
225 ## options for showing and identifying changesets
226 show_sha_length = 12
226 show_sha_length = 12
227 show_revision_number = true
227 show_revision_number = true
228
228
229 ## gist URL alias, used to create nicer urls for gist. This should be an
229 ## gist URL alias, used to create nicer urls for gist. This should be an
230 ## url that does rewrites to _admin/gists/<gistid>.
230 ## url that does rewrites to _admin/gists/<gistid>.
231 ## example: http://gist.example.com/{gistid}. Empty means use the internal
231 ## example: http://gist.example.com/{gistid}. Empty means use the internal
232 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
232 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
233 gist_alias_url =
233 gist_alias_url =
234
234
235 ## white list of API enabled controllers. This allows to add list of
235 ## white list of API enabled controllers. This allows to add list of
236 ## controllers to which access will be enabled by api_key. eg: to enable
236 ## controllers to which access will be enabled by api_key. eg: to enable
237 ## api access to raw_files put `FilesController:raw`, to enable access to patches
237 ## api access to raw_files put `FilesController:raw`, to enable access to patches
238 ## add `ChangesetController:changeset_patch`. This list should be "," separated
238 ## add `ChangesetController:changeset_patch`. This list should be "," separated
239 ## Syntax is <ControllerClass>:<function>. Check debug logs for generated names
239 ## Syntax is <ControllerClass>:<function>. Check debug logs for generated names
240 ## Recommended settings below are commented out:
240 ## Recommended settings below are commented out:
241 api_access_controllers_whitelist =
241 api_access_controllers_whitelist =
242 # ChangesetController:changeset_patch,
242 # ChangesetController:changeset_patch,
243 # ChangesetController:changeset_raw,
243 # ChangesetController:changeset_raw,
244 # FilesController:raw,
244 # FilesController:raw,
245 # FilesController:archivefile
245 # FilesController:archivefile
246
246
247 ## default encoding used to convert from and to unicode
247 ## default encoding used to convert from and to unicode
248 ## can be also a comma seperated list of encoding in case of mixed encodings
248 ## can be also a comma seperated list of encoding in case of mixed encodings
249 default_encoding = utf8
249 default_encoding = utf8
250
250
251 ## issue tracker for Kallithea (leave blank to disable, absent for default)
251 ## issue tracker for Kallithea (leave blank to disable, absent for default)
252 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
252 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
253
253
254 ## issue tracking mapping for commits messages
254 ## issue tracking mapping for commits messages
255 ## comment out issue_pat, issue_server, issue_prefix to enable
255 ## comment out issue_pat, issue_server, issue_prefix to enable
256
256
257 ## pattern to get the issues from commit messages
257 ## pattern to get the issues from commit messages
258 ## default one used here is #<numbers> with a regex passive group for `#`
258 ## default one used here is #<numbers> with a regex passive group for `#`
259 ## {id} will be all groups matched from this pattern
259 ## {id} will be all groups matched from this pattern
260
260
261 issue_pat = (?:\s*#)(\d+)
261 issue_pat = (?:\s*#)(\d+)
262
262
263 ## server url to the issue, each {id} will be replaced with match
263 ## server url to the issue, each {id} will be replaced with match
264 ## fetched from the regex and {repo} is replaced with full repository name
264 ## fetched from the regex and {repo} is replaced with full repository name
265 ## including groups {repo_name} is replaced with just name of repo
265 ## including groups {repo_name} is replaced with just name of repo
266
266
267 issue_server_link = https://issues.example.com/{repo}/issue/{id}
267 issue_server_link = https://issues.example.com/{repo}/issue/{id}
268
268
269 ## prefix to add to link to indicate it's an url
269 ## prefix to add to link to indicate it's an url
270 ## #314 will be replaced by <issue_prefix><id>
270 ## #314 will be replaced by <issue_prefix><id>
271
271
272 issue_prefix = #
272 issue_prefix = #
273
273
274 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
274 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
275 ## multiple patterns, to other issues server, wiki or others
275 ## multiple patterns, to other issues server, wiki or others
276 ## below an example how to create a wiki pattern
276 ## below an example how to create a wiki pattern
277 # wiki-some-id -> https://wiki.example.com/some-id
277 # wiki-some-id -> https://wiki.example.com/some-id
278
278
279 #issue_pat_wiki = (?:wiki-)(.+)
279 #issue_pat_wiki = (?:wiki-)(.+)
280 #issue_server_link_wiki = https://wiki.example.com/{id}
280 #issue_server_link_wiki = https://wiki.example.com/{id}
281 #issue_prefix_wiki = WIKI-
281 #issue_prefix_wiki = WIKI-
282
282
283 ## instance-id prefix
283 ## instance-id prefix
284 ## a prefix key for this instance used for cache invalidation when running
284 ## a prefix key for this instance used for cache invalidation when running
285 ## multiple instances of kallithea, make sure it's globally unique for
285 ## multiple instances of kallithea, make sure it's globally unique for
286 ## all running kallithea instances. Leave empty if you don't use it
286 ## all running kallithea instances. Leave empty if you don't use it
287 instance_id =
287 instance_id =
288
288
289 ## alternative return HTTP header for failed authentication. Default HTTP
289 ## alternative return HTTP header for failed authentication. Default HTTP
290 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
290 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
291 ## handling that. Set this variable to 403 to return HTTPForbidden
291 ## handling that. Set this variable to 403 to return HTTPForbidden
292 auth_ret_code =
292 auth_ret_code =
293
293
294 ## locking return code. When repository is locked return this HTTP code. 2XX
294 ## locking return code. When repository is locked return this HTTP code. 2XX
295 ## codes don't break the transactions while 4XX codes do
295 ## codes don't break the transactions while 4XX codes do
296 lock_ret_code = 423
296 lock_ret_code = 423
297
297
298 ## allows to change the repository location in settings page
298 ## allows to change the repository location in settings page
299 allow_repo_location_change = True
299 allow_repo_location_change = True
300
300
301 ## allows to setup custom hooks in settings page
301 ## allows to setup custom hooks in settings page
302 allow_custom_hooks_settings = True
302 allow_custom_hooks_settings = True
303
303
304 ####################################
304 ####################################
305 ### CELERY CONFIG ####
305 ### CELERY CONFIG ####
306 ####################################
306 ####################################
307
307
308 use_celery = false
308 use_celery = false
309 broker.host = localhost
309 broker.host = localhost
310 broker.vhost = rabbitmqhost
310 broker.vhost = rabbitmqhost
311 broker.port = 5672
311 broker.port = 5672
312 broker.user = rabbitmq
312 broker.user = rabbitmq
313 broker.password = qweqwe
313 broker.password = qweqwe
314
314
315 celery.imports = kallithea.lib.celerylib.tasks
315 celery.imports = kallithea.lib.celerylib.tasks
316
316
317 celery.result.backend = amqp
317 celery.result.backend = amqp
318 celery.result.dburi = amqp://
318 celery.result.dburi = amqp://
319 celery.result.serialier = json
319 celery.result.serialier = json
320
320
321 #celery.send.task.error.emails = true
321 #celery.send.task.error.emails = true
322 #celery.amqp.task.result.expires = 18000
322 #celery.amqp.task.result.expires = 18000
323
323
324 celeryd.concurrency = 2
324 celeryd.concurrency = 2
325 #celeryd.log.file = celeryd.log
325 #celeryd.log.file = celeryd.log
326 celeryd.log.level = DEBUG
326 celeryd.log.level = DEBUG
327 celeryd.max.tasks.per.child = 1
327 celeryd.max.tasks.per.child = 1
328
328
329 ## tasks will never be sent to the queue, but executed locally instead.
329 ## tasks will never be sent to the queue, but executed locally instead.
330 celery.always.eager = false
330 celery.always.eager = false
331
331
332 ####################################
332 ####################################
333 ### BEAKER CACHE ####
333 ### BEAKER CACHE ####
334 ####################################
334 ####################################
335
335
336 beaker.cache.data_dir = %(here)s/data/cache/data
336 beaker.cache.data_dir = %(here)s/data/cache/data
337 beaker.cache.lock_dir = %(here)s/data/cache/lock
337 beaker.cache.lock_dir = %(here)s/data/cache/lock
338
338
339 beaker.cache.regions = short_term,long_term,sql_cache_short
339 beaker.cache.regions = short_term,long_term,sql_cache_short
340
340
341 beaker.cache.short_term.type = memory
341 beaker.cache.short_term.type = memory
342 beaker.cache.short_term.expire = 60
342 beaker.cache.short_term.expire = 60
343 beaker.cache.short_term.key_length = 256
343 beaker.cache.short_term.key_length = 256
344
344
345 beaker.cache.long_term.type = memory
345 beaker.cache.long_term.type = memory
346 beaker.cache.long_term.expire = 36000
346 beaker.cache.long_term.expire = 36000
347 beaker.cache.long_term.key_length = 256
347 beaker.cache.long_term.key_length = 256
348
348
349 beaker.cache.sql_cache_short.type = memory
349 beaker.cache.sql_cache_short.type = memory
350 beaker.cache.sql_cache_short.expire = 1
350 beaker.cache.sql_cache_short.expire = 1
351 beaker.cache.sql_cache_short.key_length = 256
351 beaker.cache.sql_cache_short.key_length = 256
352
352
353 ####################################
353 ####################################
354 ### BEAKER SESSION ####
354 ### BEAKER SESSION ####
355 ####################################
355 ####################################
356
356
357 ## Name of session cookie. Should be unique for a given host and path, even when running
357 ## Name of session cookie. Should be unique for a given host and path, even when running
358 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
358 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
359 beaker.session.key = kallithea
359 beaker.session.key = kallithea
360 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
360 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
361 beaker.session.httponly = true
361 beaker.session.httponly = true
362 ## Session lifetime. 2592000 seconds is 30 days.
362 ## Session lifetime. 2592000 seconds is 30 days.
363 beaker.session.timeout = 2592000
363 beaker.session.timeout = 2592000
364
364
365 ## Server secret used with HMAC to ensure integrity of cookies.
365 ## Server secret used with HMAC to ensure integrity of cookies.
366 beaker.session.secret = {74e0cd75-b339-478b-b129-07dd221def1f}
366 beaker.session.secret = {74e0cd75-b339-478b-b129-07dd221def1f}
367 ## Further, encrypt the data with AES.
367 ## Further, encrypt the data with AES.
368 #beaker.session.encrypt_key = <key_for_encryption>
368 #beaker.session.encrypt_key = <key_for_encryption>
369 #beaker.session.validate_key = <validation_key>
369 #beaker.session.validate_key = <validation_key>
370
370
371 ## Type of storage used for the session, current types are
371 ## Type of storage used for the session, current types are
372 ## dbm, file, memcached, database, and memory.
372 ## dbm, file, memcached, database, and memory.
373
373
374 ## File system storage of session data. (default)
374 ## File system storage of session data. (default)
375 #beaker.session.type = file
375 #beaker.session.type = file
376
376
377 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
377 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
378 #beaker.session.type = cookie
378 #beaker.session.type = cookie
379
379
380 ## Database storage of session data.
380 ## Database storage of session data.
381 #beaker.session.type = ext:database
381 #beaker.session.type = ext:database
382 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
382 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
383 #beaker.session.table_name = db_session
383 #beaker.session.table_name = db_session
384
384
385 ############################
385 ############################
386 ## ERROR HANDLING SYSTEMS ##
386 ## ERROR HANDLING SYSTEMS ##
387 ############################
387 ############################
388
388
389 ####################
389 ####################
390 ### [errormator] ###
390 ### [appenlight] ###
391 ####################
391 ####################
392
392
393 ## Errormator is tailored to work with Kallithea, see
393 ## AppEnlight is tailored to work with Kallithea, see
394 ## http://errormator.com for details how to obtain an account
394 ## http://appenlight.com for details how to obtain an account
395 ## you must install python package `errormator_client` to make it work
395 ## you must install python package `appenlight_client` to make it work
396
396
397 ## errormator enabled
397 ## appenlight enabled
398 errormator = false
398 appenlight = false
399
399
400 errormator.server_url = https://api.errormator.com
400 appenlight.server_url = https://api.appenlight.com
401 errormator.api_key = YOUR_API_KEY
401 appenlight.api_key = YOUR_API_KEY
402
402
403 ## TWEAK AMOUNT OF INFO SENT HERE
403 ## TWEAK AMOUNT OF INFO SENT HERE
404
404
405 ## enables 404 error logging (default False)
405 ## enables 404 error logging (default False)
406 errormator.report_404 = false
406 appenlight.report_404 = false
407
407
408 ## time in seconds after request is considered being slow (default 1)
408 ## time in seconds after request is considered being slow (default 1)
409 errormator.slow_request_time = 1
409 appenlight.slow_request_time = 1
410
410
411 ## record slow requests in application
411 ## record slow requests in application
412 ## (needs to be enabled for slow datastore recording and time tracking)
412 ## (needs to be enabled for slow datastore recording and time tracking)
413 errormator.slow_requests = true
413 appenlight.slow_requests = true
414
414
415 ## enable hooking to application loggers
415 ## enable hooking to application loggers
416 #errormator.logging = true
416 #appenlight.logging = true
417
417
418 ## minimum log level for log capture
418 ## minimum log level for log capture
419 #errormator.logging.level = WARNING
419 #appenlight.logging.level = WARNING
420
420
421 ## send logs only from erroneous/slow requests
421 ## send logs only from erroneous/slow requests
422 ## (saves API quota for intensive logging)
422 ## (saves API quota for intensive logging)
423 errormator.logging_on_error = false
423 appenlight.logging_on_error = false
424
424
425 ## list of additonal keywords that should be grabbed from environ object
425 ## list of additonal keywords that should be grabbed from environ object
426 ## can be string with comma separated list of words in lowercase
426 ## can be string with comma separated list of words in lowercase
427 ## (by default client will always send following info:
427 ## (by default client will always send following info:
428 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
428 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
429 ## start with HTTP* this list be extended with additional keywords here
429 ## start with HTTP* this list be extended with additional keywords here
430 errormator.environ_keys_whitelist =
430 appenlight.environ_keys_whitelist =
431
431
432 ## list of keywords that should be blanked from request object
432 ## list of keywords that should be blanked from request object
433 ## can be string with comma separated list of words in lowercase
433 ## can be string with comma separated list of words in lowercase
434 ## (by default client will always blank keys that contain following words
434 ## (by default client will always blank keys that contain following words
435 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
435 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
436 ## this list be extended with additional keywords set here
436 ## this list be extended with additional keywords set here
437 errormator.request_keys_blacklist =
437 appenlight.request_keys_blacklist =
438
438
439 ## list of namespaces that should be ignores when gathering log entries
439 ## list of namespaces that should be ignores when gathering log entries
440 ## can be string with comma separated list of namespaces
440 ## can be string with comma separated list of namespaces
441 ## (by default the client ignores own entries: errormator_client.client)
441 ## (by default the client ignores own entries: appenlight_client.client)
442 errormator.log_namespace_blacklist =
442 appenlight.log_namespace_blacklist =
443
443
444 ################
444 ################
445 ### [sentry] ###
445 ### [sentry] ###
446 ################
446 ################
447
447
448 ## sentry is a alternative open source error aggregator
448 ## sentry is a alternative open source error aggregator
449 ## you must install python packages `sentry` and `raven` to enable
449 ## you must install python packages `sentry` and `raven` to enable
450
450
451 sentry.dsn = YOUR_DNS
451 sentry.dsn = YOUR_DNS
452 sentry.servers =
452 sentry.servers =
453 sentry.name =
453 sentry.name =
454 sentry.key =
454 sentry.key =
455 sentry.public_key =
455 sentry.public_key =
456 sentry.secret_key =
456 sentry.secret_key =
457 sentry.project =
457 sentry.project =
458 sentry.site =
458 sentry.site =
459 sentry.include_paths =
459 sentry.include_paths =
460 sentry.exclude_paths =
460 sentry.exclude_paths =
461
461
462 ################################################################################
462 ################################################################################
463 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
463 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
464 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
464 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
465 ## execute malicious code after an exception is raised. ##
465 ## execute malicious code after an exception is raised. ##
466 ################################################################################
466 ################################################################################
467 set debug = false
467 set debug = false
468
468
469 ##################################
469 ##################################
470 ### LOGVIEW CONFIG ###
470 ### LOGVIEW CONFIG ###
471 ##################################
471 ##################################
472
472
473 logview.sqlalchemy = #faa
473 logview.sqlalchemy = #faa
474 logview.pylons.templating = #bfb
474 logview.pylons.templating = #bfb
475 logview.pylons.util = #eee
475 logview.pylons.util = #eee
476
476
477 #########################################################
477 #########################################################
478 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
478 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
479 #########################################################
479 #########################################################
480
480
481 # SQLITE [default]
481 # SQLITE [default]
482 #sqlalchemy.db1.url = sqlite:///%(here)s/kallithea.db?timeout=60
482 #sqlalchemy.db1.url = sqlite:///%(here)s/kallithea.db?timeout=60
483 sqlalchemy.db1.url = sqlite:///%(here)s/kallithea_test.sqlite
483 sqlalchemy.db1.url = sqlite:///%(here)s/kallithea_test.sqlite
484
484
485 # POSTGRESQL
485 # POSTGRESQL
486 #sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea
486 #sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea
487
487
488 # MySQL
488 # MySQL
489 #sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea
489 #sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea
490
490
491 # see sqlalchemy docs for others
491 # see sqlalchemy docs for others
492
492
493 sqlalchemy.db1.echo = false
493 sqlalchemy.db1.echo = false
494 sqlalchemy.db1.pool_recycle = 3600
494 sqlalchemy.db1.pool_recycle = 3600
495 sqlalchemy.db1.convert_unicode = true
495 sqlalchemy.db1.convert_unicode = true
496
496
497 ################################
497 ################################
498 ### LOGGING CONFIGURATION ####
498 ### LOGGING CONFIGURATION ####
499 ################################
499 ################################
500
500
501 [loggers]
501 [loggers]
502 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
502 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
503
503
504 [handlers]
504 [handlers]
505 keys = console, console_sql
505 keys = console, console_sql
506
506
507 [formatters]
507 [formatters]
508 keys = generic, color_formatter, color_formatter_sql
508 keys = generic, color_formatter, color_formatter_sql
509
509
510 #############
510 #############
511 ## LOGGERS ##
511 ## LOGGERS ##
512 #############
512 #############
513
513
514 [logger_root]
514 [logger_root]
515 #level = NOTSET
515 #level = NOTSET
516 level = DEBUG
516 level = DEBUG
517 handlers = console
517 handlers = console
518
518
519 [logger_routes]
519 [logger_routes]
520 level = DEBUG
520 level = DEBUG
521 handlers =
521 handlers =
522 qualname = routes.middleware
522 qualname = routes.middleware
523 ## "level = DEBUG" logs the route matched and routing variables.
523 ## "level = DEBUG" logs the route matched and routing variables.
524 propagate = 1
524 propagate = 1
525
525
526 [logger_beaker]
526 [logger_beaker]
527 level = DEBUG
527 level = DEBUG
528 handlers =
528 handlers =
529 qualname = beaker.container
529 qualname = beaker.container
530 propagate = 1
530 propagate = 1
531
531
532 [logger_templates]
532 [logger_templates]
533 level = INFO
533 level = INFO
534 handlers =
534 handlers =
535 qualname = pylons.templating
535 qualname = pylons.templating
536 propagate = 1
536 propagate = 1
537
537
538 [logger_kallithea]
538 [logger_kallithea]
539 level = DEBUG
539 level = DEBUG
540 handlers =
540 handlers =
541 qualname = kallithea
541 qualname = kallithea
542 propagate = 1
542 propagate = 1
543
543
544 [logger_sqlalchemy]
544 [logger_sqlalchemy]
545 #level = INFO
545 #level = INFO
546 #handlers = console_sql
546 #handlers = console_sql
547 level = ERROR
547 level = ERROR
548 handlers = console
548 handlers = console
549 qualname = sqlalchemy.engine
549 qualname = sqlalchemy.engine
550 propagate = 0
550 propagate = 0
551
551
552 [logger_whoosh_indexer]
552 [logger_whoosh_indexer]
553 level = DEBUG
553 level = DEBUG
554 handlers =
554 handlers =
555 qualname = whoosh_indexer
555 qualname = whoosh_indexer
556 propagate = 1
556 propagate = 1
557
557
558 ##############
558 ##############
559 ## HANDLERS ##
559 ## HANDLERS ##
560 ##############
560 ##############
561
561
562 [handler_console]
562 [handler_console]
563 class = StreamHandler
563 class = StreamHandler
564 args = (sys.stderr,)
564 args = (sys.stderr,)
565 #level = INFO
565 #level = INFO
566 level = NOTSET
566 level = NOTSET
567 formatter = generic
567 formatter = generic
568
568
569 [handler_console_sql]
569 [handler_console_sql]
570 class = StreamHandler
570 class = StreamHandler
571 args = (sys.stderr,)
571 args = (sys.stderr,)
572 level = WARN
572 level = WARN
573 formatter = generic
573 formatter = generic
574
574
575 ################
575 ################
576 ## FORMATTERS ##
576 ## FORMATTERS ##
577 ################
577 ################
578
578
579 [formatter_generic]
579 [formatter_generic]
580 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
580 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
581 datefmt = %Y-%m-%d %H:%M:%S
581 datefmt = %Y-%m-%d %H:%M:%S
582
582
583 [formatter_color_formatter]
583 [formatter_color_formatter]
584 class = kallithea.lib.colored_formatter.ColorFormatter
584 class = kallithea.lib.colored_formatter.ColorFormatter
585 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
585 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
586 datefmt = %Y-%m-%d %H:%M:%S
586 datefmt = %Y-%m-%d %H:%M:%S
587
587
588 [formatter_color_formatter_sql]
588 [formatter_color_formatter_sql]
589 class = kallithea.lib.colored_formatter.ColorFormatterSql
589 class = kallithea.lib.colored_formatter.ColorFormatterSql
590 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
590 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
591 datefmt = %Y-%m-%d %H:%M:%S
591 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,952 +1,952 b''
1
1
2 Apache-License-2.0.txt
2 Apache-License-2.0.txt
3 CONTRIBUTORS
3 CONTRIBUTORS
4 COPYING
4 COPYING
5 Kallithea.egg-info/
5 Kallithea.egg-info/
6 Kallithea.egg-info/PKG-INFO
6 Kallithea.egg-info/PKG-INFO
7 Kallithea.egg-info/SOURCES.txt
7 Kallithea.egg-info/SOURCES.txt
8 Kallithea.egg-info/dependency_links.txt
8 Kallithea.egg-info/dependency_links.txt
9 Kallithea.egg-info/entry_points.txt
9 Kallithea.egg-info/entry_points.txt
10 Kallithea.egg-info/not-zip-safe
10 Kallithea.egg-info/not-zip-safe
11 Kallithea.egg-info/paster_plugins.txt
11 Kallithea.egg-info/paster_plugins.txt
12 Kallithea.egg-info/requires.txt
12 Kallithea.egg-info/requires.txt
13 Kallithea.egg-info/top_level.txt
13 Kallithea.egg-info/top_level.txt
14 LICENSE-MERGELY.html
14 LICENSE-MERGELY.html
15 LICENSE.md
15 LICENSE.md
16 MANIFEST.in
16 MANIFEST.in
17 MIT-Permissive-License.txt
17 MIT-Permissive-License.txt
18 PKG-INFO
18 PKG-INFO
19 README.rst
19 README.rst
20 development.ini
20 development.ini
21 docs/
21 docs/
22 docs/Makefile
22 docs/Makefile
23 docs/api/
23 docs/api/
24 docs/api/api.rst
24 docs/api/api.rst
25 docs/api/models.rst
25 docs/api/models.rst
26 docs/changelog.rst
26 docs/changelog.rst
27 docs/conf.py
27 docs/conf.py
28 docs/contributing.rst
28 docs/contributing.rst
29 docs/images/
29 docs/images/
30 docs/images/.img
30 docs/images/.img
31 docs/index.rst
31 docs/index.rst
32 docs/installation.rst
32 docs/installation.rst
33 docs/installation_iis.rst
33 docs/installation_iis.rst
34 docs/installation_puppet.rst
34 docs/installation_puppet.rst
35 docs/installation_win.rst
35 docs/installation_win.rst
36 docs/installation_win_old.rst
36 docs/installation_win_old.rst
37 docs/make.bat
37 docs/make.bat
38 docs/overview.rst
38 docs/overview.rst
39 docs/readme.rst
39 docs/readme.rst
40 docs/setup.rst
40 docs/setup.rst
41 docs/theme/
41 docs/theme/
42 docs/theme/nature/
42 docs/theme/nature/
43 docs/theme/nature/layout.html
43 docs/theme/nature/layout.html
44 docs/theme/nature/static/
44 docs/theme/nature/static/
45 docs/theme/nature/static/kallithea-logo.svg
45 docs/theme/nature/static/kallithea-logo.svg
46 docs/theme/nature/static/nature.css_t
46 docs/theme/nature/static/nature.css_t
47 docs/theme/nature/static/pygments.css
47 docs/theme/nature/static/pygments.css
48 docs/theme/nature/theme.conf
48 docs/theme/nature/theme.conf
49 docs/usage/
49 docs/usage/
50 docs/usage/backup.rst
50 docs/usage/backup.rst
51 docs/usage/debugging.rst
51 docs/usage/debugging.rst
52 docs/usage/email.rst
52 docs/usage/email.rst
53 docs/usage/general.rst
53 docs/usage/general.rst
54 docs/usage/locking.rst
54 docs/usage/locking.rst
55 docs/usage/performance.rst
55 docs/usage/performance.rst
56 docs/usage/statistics.rst
56 docs/usage/statistics.rst
57 docs/usage/troubleshooting.rst
57 docs/usage/troubleshooting.rst
58 docs/usage/vcs_support.rst
58 docs/usage/vcs_support.rst
59 init.d/
59 init.d/
60 init.d/celeryd-upstart.conf
60 init.d/celeryd-upstart.conf
61 init.d/kallithea-daemon-arch
61 init.d/kallithea-daemon-arch
62 init.d/kallithea-daemon-debian
62 init.d/kallithea-daemon-debian
63 init.d/kallithea-daemon-gentoo
63 init.d/kallithea-daemon-gentoo
64 init.d/kallithea-daemon-redhat
64 init.d/kallithea-daemon-redhat
65 init.d/kallithea-upstart.conf
65 init.d/kallithea-upstart.conf
66 init.d/supervisord.conf
66 init.d/supervisord.conf
67 kallithea/
67 kallithea/
68 kallithea/__init__.py
68 kallithea/__init__.py
69 kallithea/bin/
69 kallithea/bin/
70 kallithea/bin/__init__.py
70 kallithea/bin/__init__.py
71 kallithea/bin/base.py
71 kallithea/bin/base.py
72 kallithea/bin/kallithea_api.py
72 kallithea/bin/kallithea_api.py
73 kallithea/bin/kallithea_backup.py
73 kallithea/bin/kallithea_backup.py
74 kallithea/bin/kallithea_config.py
74 kallithea/bin/kallithea_config.py
75 kallithea/bin/kallithea_gist.py
75 kallithea/bin/kallithea_gist.py
76 kallithea/bin/ldap_sync.conf
76 kallithea/bin/ldap_sync.conf
77 kallithea/bin/ldap_sync.py
77 kallithea/bin/ldap_sync.py
78 kallithea/bin/rebranddb.py
78 kallithea/bin/rebranddb.py
79 kallithea/bin/template.ini.mako
79 kallithea/bin/template.ini.mako
80 kallithea/config/
80 kallithea/config/
81 kallithea/config/__init__.py
81 kallithea/config/__init__.py
82 kallithea/config/conf.py
82 kallithea/config/conf.py
83 kallithea/config/deployment.ini_tmpl
83 kallithea/config/deployment.ini_tmpl
84 kallithea/config/environment.py
84 kallithea/config/environment.py
85 kallithea/config/middleware.py
85 kallithea/config/middleware.py
86 kallithea/config/post_receive_tmpl.py
86 kallithea/config/post_receive_tmpl.py
87 kallithea/config/pre_receive_tmpl.py
87 kallithea/config/pre_receive_tmpl.py
88 kallithea/config/rcextensions/
88 kallithea/config/rcextensions/
89 kallithea/config/rcextensions/__init__.py
89 kallithea/config/rcextensions/__init__.py
90 kallithea/config/routing.py
90 kallithea/config/routing.py
91 kallithea/controllers/
91 kallithea/controllers/
92 kallithea/controllers/__init__.py
92 kallithea/controllers/__init__.py
93 kallithea/controllers/admin/
93 kallithea/controllers/admin/
94 kallithea/controllers/admin/__init__.py
94 kallithea/controllers/admin/__init__.py
95 kallithea/controllers/admin/admin.py
95 kallithea/controllers/admin/admin.py
96 kallithea/controllers/admin/auth_settings.py
96 kallithea/controllers/admin/auth_settings.py
97 kallithea/controllers/admin/defaults.py
97 kallithea/controllers/admin/defaults.py
98 kallithea/controllers/admin/gists.py
98 kallithea/controllers/admin/gists.py
99 kallithea/controllers/admin/my_account.py
99 kallithea/controllers/admin/my_account.py
100 kallithea/controllers/admin/notifications.py
100 kallithea/controllers/admin/notifications.py
101 kallithea/controllers/admin/permissions.py
101 kallithea/controllers/admin/permissions.py
102 kallithea/controllers/admin/repo_groups.py
102 kallithea/controllers/admin/repo_groups.py
103 kallithea/controllers/admin/repos.py
103 kallithea/controllers/admin/repos.py
104 kallithea/controllers/admin/settings.py
104 kallithea/controllers/admin/settings.py
105 kallithea/controllers/admin/user_groups.py
105 kallithea/controllers/admin/user_groups.py
106 kallithea/controllers/admin/users.py
106 kallithea/controllers/admin/users.py
107 kallithea/controllers/api/
107 kallithea/controllers/api/
108 kallithea/controllers/api/__init__.py
108 kallithea/controllers/api/__init__.py
109 kallithea/controllers/api/api.py
109 kallithea/controllers/api/api.py
110 kallithea/controllers/bookmarks.py
110 kallithea/controllers/bookmarks.py
111 kallithea/controllers/branches.py
111 kallithea/controllers/branches.py
112 kallithea/controllers/changelog.py
112 kallithea/controllers/changelog.py
113 kallithea/controllers/changeset.py
113 kallithea/controllers/changeset.py
114 kallithea/controllers/compare.py
114 kallithea/controllers/compare.py
115 kallithea/controllers/error.py
115 kallithea/controllers/error.py
116 kallithea/controllers/feed.py
116 kallithea/controllers/feed.py
117 kallithea/controllers/files.py
117 kallithea/controllers/files.py
118 kallithea/controllers/followers.py
118 kallithea/controllers/followers.py
119 kallithea/controllers/forks.py
119 kallithea/controllers/forks.py
120 kallithea/controllers/home.py
120 kallithea/controllers/home.py
121 kallithea/controllers/journal.py
121 kallithea/controllers/journal.py
122 kallithea/controllers/login.py
122 kallithea/controllers/login.py
123 kallithea/controllers/pullrequests.py
123 kallithea/controllers/pullrequests.py
124 kallithea/controllers/search.py
124 kallithea/controllers/search.py
125 kallithea/controllers/summary.py
125 kallithea/controllers/summary.py
126 kallithea/controllers/tags.py
126 kallithea/controllers/tags.py
127 kallithea/i18n/
127 kallithea/i18n/
128 kallithea/i18n/be/
128 kallithea/i18n/be/
129 kallithea/i18n/be/LC_MESSAGES/
129 kallithea/i18n/be/LC_MESSAGES/
130 kallithea/i18n/be/LC_MESSAGES/kallithea.mo
130 kallithea/i18n/be/LC_MESSAGES/kallithea.mo
131 kallithea/i18n/be/LC_MESSAGES/kallithea.po
131 kallithea/i18n/be/LC_MESSAGES/kallithea.po
132 kallithea/i18n/cs/
132 kallithea/i18n/cs/
133 kallithea/i18n/cs/LC_MESSAGES/
133 kallithea/i18n/cs/LC_MESSAGES/
134 kallithea/i18n/cs/LC_MESSAGES/kallithea.mo
134 kallithea/i18n/cs/LC_MESSAGES/kallithea.mo
135 kallithea/i18n/cs/LC_MESSAGES/kallithea.po
135 kallithea/i18n/cs/LC_MESSAGES/kallithea.po
136 kallithea/i18n/de/
136 kallithea/i18n/de/
137 kallithea/i18n/de/LC_MESSAGES/
137 kallithea/i18n/de/LC_MESSAGES/
138 kallithea/i18n/de/LC_MESSAGES/kallithea.mo
138 kallithea/i18n/de/LC_MESSAGES/kallithea.mo
139 kallithea/i18n/de/LC_MESSAGES/kallithea.po
139 kallithea/i18n/de/LC_MESSAGES/kallithea.po
140 kallithea/i18n/en/
140 kallithea/i18n/en/
141 kallithea/i18n/en/LC_MESSAGES/
141 kallithea/i18n/en/LC_MESSAGES/
142 kallithea/i18n/en/LC_MESSAGES/kallithea.mo
142 kallithea/i18n/en/LC_MESSAGES/kallithea.mo
143 kallithea/i18n/fr/
143 kallithea/i18n/fr/
144 kallithea/i18n/fr/LC_MESSAGES/
144 kallithea/i18n/fr/LC_MESSAGES/
145 kallithea/i18n/fr/LC_MESSAGES/kallithea.mo
145 kallithea/i18n/fr/LC_MESSAGES/kallithea.mo
146 kallithea/i18n/fr/LC_MESSAGES/kallithea.po
146 kallithea/i18n/fr/LC_MESSAGES/kallithea.po
147 kallithea/i18n/how_to
147 kallithea/i18n/how_to
148 kallithea/i18n/hu/
148 kallithea/i18n/hu/
149 kallithea/i18n/hu/LC_MESSAGES/
149 kallithea/i18n/hu/LC_MESSAGES/
150 kallithea/i18n/hu/LC_MESSAGES/kallithea.mo
150 kallithea/i18n/hu/LC_MESSAGES/kallithea.mo
151 kallithea/i18n/hu/LC_MESSAGES/kallithea.po
151 kallithea/i18n/hu/LC_MESSAGES/kallithea.po
152 kallithea/i18n/ja/
152 kallithea/i18n/ja/
153 kallithea/i18n/ja/LC_MESSAGES/
153 kallithea/i18n/ja/LC_MESSAGES/
154 kallithea/i18n/ja/LC_MESSAGES/kallithea.mo
154 kallithea/i18n/ja/LC_MESSAGES/kallithea.mo
155 kallithea/i18n/ja/LC_MESSAGES/kallithea.po
155 kallithea/i18n/ja/LC_MESSAGES/kallithea.po
156 kallithea/i18n/kallithea.pot
156 kallithea/i18n/kallithea.pot
157 kallithea/i18n/nl_BE/
157 kallithea/i18n/nl_BE/
158 kallithea/i18n/nl_BE/LC_MESSAGES/
158 kallithea/i18n/nl_BE/LC_MESSAGES/
159 kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.mo
159 kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.mo
160 kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po
160 kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po
161 kallithea/i18n/pl/
161 kallithea/i18n/pl/
162 kallithea/i18n/pl/LC_MESSAGES/
162 kallithea/i18n/pl/LC_MESSAGES/
163 kallithea/i18n/pl/LC_MESSAGES/kallithea.mo
163 kallithea/i18n/pl/LC_MESSAGES/kallithea.mo
164 kallithea/i18n/pl/LC_MESSAGES/kallithea.po
164 kallithea/i18n/pl/LC_MESSAGES/kallithea.po
165 kallithea/i18n/pt_BR/
165 kallithea/i18n/pt_BR/
166 kallithea/i18n/pt_BR/LC_MESSAGES/
166 kallithea/i18n/pt_BR/LC_MESSAGES/
167 kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.mo
167 kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.mo
168 kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.po
168 kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.po
169 kallithea/i18n/ru/
169 kallithea/i18n/ru/
170 kallithea/i18n/ru/LC_MESSAGES/
170 kallithea/i18n/ru/LC_MESSAGES/
171 kallithea/i18n/ru/LC_MESSAGES/kallithea.mo
171 kallithea/i18n/ru/LC_MESSAGES/kallithea.mo
172 kallithea/i18n/ru/LC_MESSAGES/kallithea.po
172 kallithea/i18n/ru/LC_MESSAGES/kallithea.po
173 kallithea/i18n/sk/
173 kallithea/i18n/sk/
174 kallithea/i18n/sk/LC_MESSAGES/
174 kallithea/i18n/sk/LC_MESSAGES/
175 kallithea/i18n/sk/LC_MESSAGES/kallithea.mo
175 kallithea/i18n/sk/LC_MESSAGES/kallithea.mo
176 kallithea/i18n/sk/LC_MESSAGES/kallithea.po
176 kallithea/i18n/sk/LC_MESSAGES/kallithea.po
177 kallithea/i18n/zh_CN/
177 kallithea/i18n/zh_CN/
178 kallithea/i18n/zh_CN/LC_MESSAGES/
178 kallithea/i18n/zh_CN/LC_MESSAGES/
179 kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.mo
179 kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.mo
180 kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.po
180 kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.po
181 kallithea/i18n/zh_TW/
181 kallithea/i18n/zh_TW/
182 kallithea/i18n/zh_TW/LC_MESSAGES/
182 kallithea/i18n/zh_TW/LC_MESSAGES/
183 kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.mo
183 kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.mo
184 kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.po
184 kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.po
185 kallithea/lib/
185 kallithea/lib/
186 kallithea/lib/__init__.py
186 kallithea/lib/__init__.py
187 kallithea/lib/annotate.py
187 kallithea/lib/annotate.py
188 kallithea/lib/app_globals.py
188 kallithea/lib/app_globals.py
189 kallithea/lib/auth.py
189 kallithea/lib/auth.py
190 kallithea/lib/auth_modules/
190 kallithea/lib/auth_modules/
191 kallithea/lib/auth_modules/__init__.py
191 kallithea/lib/auth_modules/__init__.py
192 kallithea/lib/auth_modules/auth_container.py
192 kallithea/lib/auth_modules/auth_container.py
193 kallithea/lib/auth_modules/auth_crowd.py
193 kallithea/lib/auth_modules/auth_crowd.py
194 kallithea/lib/auth_modules/auth_internal.py
194 kallithea/lib/auth_modules/auth_internal.py
195 kallithea/lib/auth_modules/auth_ldap.py
195 kallithea/lib/auth_modules/auth_ldap.py
196 kallithea/lib/auth_modules/auth_pam.py
196 kallithea/lib/auth_modules/auth_pam.py
197 kallithea/lib/base.py
197 kallithea/lib/base.py
198 kallithea/lib/caching_query.py
198 kallithea/lib/caching_query.py
199 kallithea/lib/celerylib/
199 kallithea/lib/celerylib/
200 kallithea/lib/celerylib/__init__.py
200 kallithea/lib/celerylib/__init__.py
201 kallithea/lib/celerylib/tasks.py
201 kallithea/lib/celerylib/tasks.py
202 kallithea/lib/celerypylons/
202 kallithea/lib/celerypylons/
203 kallithea/lib/celerypylons/__init__.py
203 kallithea/lib/celerypylons/__init__.py
204 kallithea/lib/celerypylons/commands.py
204 kallithea/lib/celerypylons/commands.py
205 kallithea/lib/celerypylons/loader.py
205 kallithea/lib/celerypylons/loader.py
206 kallithea/lib/colored_formatter.py
206 kallithea/lib/colored_formatter.py
207 kallithea/lib/compat.py
207 kallithea/lib/compat.py
208 kallithea/lib/db_manage.py
208 kallithea/lib/db_manage.py
209 kallithea/lib/dbmigrate/
209 kallithea/lib/dbmigrate/
210 kallithea/lib/dbmigrate/__init__.py
210 kallithea/lib/dbmigrate/__init__.py
211 kallithea/lib/dbmigrate/migrate.cfg
211 kallithea/lib/dbmigrate/migrate.cfg
212 kallithea/lib/dbmigrate/migrate/
212 kallithea/lib/dbmigrate/migrate/
213 kallithea/lib/dbmigrate/migrate/__init__.py
213 kallithea/lib/dbmigrate/migrate/__init__.py
214 kallithea/lib/dbmigrate/migrate/changeset/
214 kallithea/lib/dbmigrate/migrate/changeset/
215 kallithea/lib/dbmigrate/migrate/changeset/__init__.py
215 kallithea/lib/dbmigrate/migrate/changeset/__init__.py
216 kallithea/lib/dbmigrate/migrate/changeset/ansisql.py
216 kallithea/lib/dbmigrate/migrate/changeset/ansisql.py
217 kallithea/lib/dbmigrate/migrate/changeset/constraint.py
217 kallithea/lib/dbmigrate/migrate/changeset/constraint.py
218 kallithea/lib/dbmigrate/migrate/changeset/databases/
218 kallithea/lib/dbmigrate/migrate/changeset/databases/
219 kallithea/lib/dbmigrate/migrate/changeset/databases/__init__.py
219 kallithea/lib/dbmigrate/migrate/changeset/databases/__init__.py
220 kallithea/lib/dbmigrate/migrate/changeset/databases/firebird.py
220 kallithea/lib/dbmigrate/migrate/changeset/databases/firebird.py
221 kallithea/lib/dbmigrate/migrate/changeset/databases/mysql.py
221 kallithea/lib/dbmigrate/migrate/changeset/databases/mysql.py
222 kallithea/lib/dbmigrate/migrate/changeset/databases/oracle.py
222 kallithea/lib/dbmigrate/migrate/changeset/databases/oracle.py
223 kallithea/lib/dbmigrate/migrate/changeset/databases/postgres.py
223 kallithea/lib/dbmigrate/migrate/changeset/databases/postgres.py
224 kallithea/lib/dbmigrate/migrate/changeset/databases/sqlite.py
224 kallithea/lib/dbmigrate/migrate/changeset/databases/sqlite.py
225 kallithea/lib/dbmigrate/migrate/changeset/databases/visitor.py
225 kallithea/lib/dbmigrate/migrate/changeset/databases/visitor.py
226 kallithea/lib/dbmigrate/migrate/changeset/schema.py
226 kallithea/lib/dbmigrate/migrate/changeset/schema.py
227 kallithea/lib/dbmigrate/migrate/exceptions.py
227 kallithea/lib/dbmigrate/migrate/exceptions.py
228 kallithea/lib/dbmigrate/migrate/versioning/
228 kallithea/lib/dbmigrate/migrate/versioning/
229 kallithea/lib/dbmigrate/migrate/versioning/__init__.py
229 kallithea/lib/dbmigrate/migrate/versioning/__init__.py
230 kallithea/lib/dbmigrate/migrate/versioning/api.py
230 kallithea/lib/dbmigrate/migrate/versioning/api.py
231 kallithea/lib/dbmigrate/migrate/versioning/cfgparse.py
231 kallithea/lib/dbmigrate/migrate/versioning/cfgparse.py
232 kallithea/lib/dbmigrate/migrate/versioning/config.py
232 kallithea/lib/dbmigrate/migrate/versioning/config.py
233 kallithea/lib/dbmigrate/migrate/versioning/genmodel.py
233 kallithea/lib/dbmigrate/migrate/versioning/genmodel.py
234 kallithea/lib/dbmigrate/migrate/versioning/migrate_repository.py
234 kallithea/lib/dbmigrate/migrate/versioning/migrate_repository.py
235 kallithea/lib/dbmigrate/migrate/versioning/pathed.py
235 kallithea/lib/dbmigrate/migrate/versioning/pathed.py
236 kallithea/lib/dbmigrate/migrate/versioning/repository.py
236 kallithea/lib/dbmigrate/migrate/versioning/repository.py
237 kallithea/lib/dbmigrate/migrate/versioning/schema.py
237 kallithea/lib/dbmigrate/migrate/versioning/schema.py
238 kallithea/lib/dbmigrate/migrate/versioning/schemadiff.py
238 kallithea/lib/dbmigrate/migrate/versioning/schemadiff.py
239 kallithea/lib/dbmigrate/migrate/versioning/script/
239 kallithea/lib/dbmigrate/migrate/versioning/script/
240 kallithea/lib/dbmigrate/migrate/versioning/script/__init__.py
240 kallithea/lib/dbmigrate/migrate/versioning/script/__init__.py
241 kallithea/lib/dbmigrate/migrate/versioning/script/base.py
241 kallithea/lib/dbmigrate/migrate/versioning/script/base.py
242 kallithea/lib/dbmigrate/migrate/versioning/script/py.py
242 kallithea/lib/dbmigrate/migrate/versioning/script/py.py
243 kallithea/lib/dbmigrate/migrate/versioning/script/sql.py
243 kallithea/lib/dbmigrate/migrate/versioning/script/sql.py
244 kallithea/lib/dbmigrate/migrate/versioning/shell.py
244 kallithea/lib/dbmigrate/migrate/versioning/shell.py
245 kallithea/lib/dbmigrate/migrate/versioning/template.py
245 kallithea/lib/dbmigrate/migrate/versioning/template.py
246 kallithea/lib/dbmigrate/migrate/versioning/templates/
246 kallithea/lib/dbmigrate/migrate/versioning/templates/
247 kallithea/lib/dbmigrate/migrate/versioning/templates/__init__.py
247 kallithea/lib/dbmigrate/migrate/versioning/templates/__init__.py
248 kallithea/lib/dbmigrate/migrate/versioning/templates/manage.py_tmpl
248 kallithea/lib/dbmigrate/migrate/versioning/templates/manage.py_tmpl
249 kallithea/lib/dbmigrate/migrate/versioning/templates/manage/
249 kallithea/lib/dbmigrate/migrate/versioning/templates/manage/
250 kallithea/lib/dbmigrate/migrate/versioning/templates/manage/default.py_tmpl
250 kallithea/lib/dbmigrate/migrate/versioning/templates/manage/default.py_tmpl
251 kallithea/lib/dbmigrate/migrate/versioning/templates/manage/pylons.py_tmpl
251 kallithea/lib/dbmigrate/migrate/versioning/templates/manage/pylons.py_tmpl
252 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/
252 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/
253 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/__init__.py
253 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/__init__.py
254 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/
254 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/
255 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/README
255 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/README
256 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/__init__.py
256 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/__init__.py
257 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/migrate.cfg
257 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/migrate.cfg
258 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/versions/
258 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/versions/
259 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/versions/__init__.py
259 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/versions/__init__.py
260 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/
260 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/
261 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/README
261 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/README
262 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/__init__.py
262 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/__init__.py
263 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/migrate.cfg
263 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/migrate.cfg
264 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/versions/
264 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/versions/
265 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/versions/__init__.py
265 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/versions/__init__.py
266 kallithea/lib/dbmigrate/migrate/versioning/templates/script/
266 kallithea/lib/dbmigrate/migrate/versioning/templates/script/
267 kallithea/lib/dbmigrate/migrate/versioning/templates/script/__init__.py
267 kallithea/lib/dbmigrate/migrate/versioning/templates/script/__init__.py
268 kallithea/lib/dbmigrate/migrate/versioning/templates/script/default.py_tmpl
268 kallithea/lib/dbmigrate/migrate/versioning/templates/script/default.py_tmpl
269 kallithea/lib/dbmigrate/migrate/versioning/templates/script/pylons.py_tmpl
269 kallithea/lib/dbmigrate/migrate/versioning/templates/script/pylons.py_tmpl
270 kallithea/lib/dbmigrate/migrate/versioning/templates/sql_script/
270 kallithea/lib/dbmigrate/migrate/versioning/templates/sql_script/
271 kallithea/lib/dbmigrate/migrate/versioning/templates/sql_script/default.py_tmpl
271 kallithea/lib/dbmigrate/migrate/versioning/templates/sql_script/default.py_tmpl
272 kallithea/lib/dbmigrate/migrate/versioning/templates/sql_script/pylons.py_tmpl
272 kallithea/lib/dbmigrate/migrate/versioning/templates/sql_script/pylons.py_tmpl
273 kallithea/lib/dbmigrate/migrate/versioning/util/
273 kallithea/lib/dbmigrate/migrate/versioning/util/
274 kallithea/lib/dbmigrate/migrate/versioning/util/__init__.py
274 kallithea/lib/dbmigrate/migrate/versioning/util/__init__.py
275 kallithea/lib/dbmigrate/migrate/versioning/util/importpath.py
275 kallithea/lib/dbmigrate/migrate/versioning/util/importpath.py
276 kallithea/lib/dbmigrate/migrate/versioning/util/keyedinstance.py
276 kallithea/lib/dbmigrate/migrate/versioning/util/keyedinstance.py
277 kallithea/lib/dbmigrate/migrate/versioning/version.py
277 kallithea/lib/dbmigrate/migrate/versioning/version.py
278 kallithea/lib/dbmigrate/schema/
278 kallithea/lib/dbmigrate/schema/
279 kallithea/lib/dbmigrate/schema/__init__.py
279 kallithea/lib/dbmigrate/schema/__init__.py
280 kallithea/lib/dbmigrate/schema/db_1_1_0.py
280 kallithea/lib/dbmigrate/schema/db_1_1_0.py
281 kallithea/lib/dbmigrate/schema/db_1_2_0.py
281 kallithea/lib/dbmigrate/schema/db_1_2_0.py
282 kallithea/lib/dbmigrate/schema/db_1_3_0.py
282 kallithea/lib/dbmigrate/schema/db_1_3_0.py
283 kallithea/lib/dbmigrate/schema/db_1_4_0.py
283 kallithea/lib/dbmigrate/schema/db_1_4_0.py
284 kallithea/lib/dbmigrate/schema/db_1_5_0.py
284 kallithea/lib/dbmigrate/schema/db_1_5_0.py
285 kallithea/lib/dbmigrate/schema/db_1_5_2.py
285 kallithea/lib/dbmigrate/schema/db_1_5_2.py
286 kallithea/lib/dbmigrate/schema/db_1_6_0.py
286 kallithea/lib/dbmigrate/schema/db_1_6_0.py
287 kallithea/lib/dbmigrate/schema/db_1_7_0.py
287 kallithea/lib/dbmigrate/schema/db_1_7_0.py
288 kallithea/lib/dbmigrate/schema/db_1_8_0.py
288 kallithea/lib/dbmigrate/schema/db_1_8_0.py
289 kallithea/lib/dbmigrate/schema/db_2_0_0.py
289 kallithea/lib/dbmigrate/schema/db_2_0_0.py
290 kallithea/lib/dbmigrate/schema/db_2_0_1.py
290 kallithea/lib/dbmigrate/schema/db_2_0_1.py
291 kallithea/lib/dbmigrate/schema/db_2_0_2.py
291 kallithea/lib/dbmigrate/schema/db_2_0_2.py
292 kallithea/lib/dbmigrate/schema/db_2_1_0.py
292 kallithea/lib/dbmigrate/schema/db_2_1_0.py
293 kallithea/lib/dbmigrate/schema/db_2_2_0.py
293 kallithea/lib/dbmigrate/schema/db_2_2_0.py
294 kallithea/lib/dbmigrate/schema/db_2_2_3.py
294 kallithea/lib/dbmigrate/schema/db_2_2_3.py
295 kallithea/lib/dbmigrate/versions/
295 kallithea/lib/dbmigrate/versions/
296 kallithea/lib/dbmigrate/versions/001_initial_release.py
296 kallithea/lib/dbmigrate/versions/001_initial_release.py
297 kallithea/lib/dbmigrate/versions/002_version_1_1_0.py
297 kallithea/lib/dbmigrate/versions/002_version_1_1_0.py
298 kallithea/lib/dbmigrate/versions/003_version_1_2_0.py
298 kallithea/lib/dbmigrate/versions/003_version_1_2_0.py
299 kallithea/lib/dbmigrate/versions/004_version_1_3_0.py
299 kallithea/lib/dbmigrate/versions/004_version_1_3_0.py
300 kallithea/lib/dbmigrate/versions/005_version_1_3_0.py
300 kallithea/lib/dbmigrate/versions/005_version_1_3_0.py
301 kallithea/lib/dbmigrate/versions/006_version_1_4_0.py
301 kallithea/lib/dbmigrate/versions/006_version_1_4_0.py
302 kallithea/lib/dbmigrate/versions/007_version_1_4_0.py
302 kallithea/lib/dbmigrate/versions/007_version_1_4_0.py
303 kallithea/lib/dbmigrate/versions/008_version_1_5_0.py
303 kallithea/lib/dbmigrate/versions/008_version_1_5_0.py
304 kallithea/lib/dbmigrate/versions/009_version_1_5_1.py
304 kallithea/lib/dbmigrate/versions/009_version_1_5_1.py
305 kallithea/lib/dbmigrate/versions/010_version_1_5_2.py
305 kallithea/lib/dbmigrate/versions/010_version_1_5_2.py
306 kallithea/lib/dbmigrate/versions/011_version_1_6_0.py
306 kallithea/lib/dbmigrate/versions/011_version_1_6_0.py
307 kallithea/lib/dbmigrate/versions/012_version_1_7_0.py
307 kallithea/lib/dbmigrate/versions/012_version_1_7_0.py
308 kallithea/lib/dbmigrate/versions/013_version_1_7_0.py
308 kallithea/lib/dbmigrate/versions/013_version_1_7_0.py
309 kallithea/lib/dbmigrate/versions/014_version_1_7_1.py
309 kallithea/lib/dbmigrate/versions/014_version_1_7_1.py
310 kallithea/lib/dbmigrate/versions/015_version_1_8_0.py
310 kallithea/lib/dbmigrate/versions/015_version_1_8_0.py
311 kallithea/lib/dbmigrate/versions/016_version_2_0_0.py
311 kallithea/lib/dbmigrate/versions/016_version_2_0_0.py
312 kallithea/lib/dbmigrate/versions/017_version_2_0_0.py
312 kallithea/lib/dbmigrate/versions/017_version_2_0_0.py
313 kallithea/lib/dbmigrate/versions/018_version_2_0_0.py
313 kallithea/lib/dbmigrate/versions/018_version_2_0_0.py
314 kallithea/lib/dbmigrate/versions/019_version_2_0_0.py
314 kallithea/lib/dbmigrate/versions/019_version_2_0_0.py
315 kallithea/lib/dbmigrate/versions/020_version_2_0_1.py
315 kallithea/lib/dbmigrate/versions/020_version_2_0_1.py
316 kallithea/lib/dbmigrate/versions/021_version_2_0_2.py
316 kallithea/lib/dbmigrate/versions/021_version_2_0_2.py
317 kallithea/lib/dbmigrate/versions/022_version_2_0_2.py
317 kallithea/lib/dbmigrate/versions/022_version_2_0_2.py
318 kallithea/lib/dbmigrate/versions/023_version_2_1_0.py
318 kallithea/lib/dbmigrate/versions/023_version_2_1_0.py
319 kallithea/lib/dbmigrate/versions/024_version_2_1_0.py
319 kallithea/lib/dbmigrate/versions/024_version_2_1_0.py
320 kallithea/lib/dbmigrate/versions/025_version_2_1_0.py
320 kallithea/lib/dbmigrate/versions/025_version_2_1_0.py
321 kallithea/lib/dbmigrate/versions/026_version_2_2_0.py
321 kallithea/lib/dbmigrate/versions/026_version_2_2_0.py
322 kallithea/lib/dbmigrate/versions/027_version_2_2_0.py
322 kallithea/lib/dbmigrate/versions/027_version_2_2_0.py
323 kallithea/lib/dbmigrate/versions/028_version_2_2_3.py
323 kallithea/lib/dbmigrate/versions/028_version_2_2_3.py
324 kallithea/lib/dbmigrate/versions/029_version_2_2_3.py
324 kallithea/lib/dbmigrate/versions/029_version_2_2_3.py
325 kallithea/lib/dbmigrate/versions/030_version_2_2_3.py
325 kallithea/lib/dbmigrate/versions/030_version_2_2_3.py
326 kallithea/lib/dbmigrate/versions/031_version_2_2_3.py
326 kallithea/lib/dbmigrate/versions/031_version_2_2_3.py
327 kallithea/lib/dbmigrate/versions/__init__.py
327 kallithea/lib/dbmigrate/versions/__init__.py
328 kallithea/lib/diffs.py
328 kallithea/lib/diffs.py
329 kallithea/lib/exceptions.py
329 kallithea/lib/exceptions.py
330 kallithea/lib/ext_json.py
330 kallithea/lib/ext_json.py
331 kallithea/lib/graphmod.py
331 kallithea/lib/graphmod.py
332 kallithea/lib/helpers.py
332 kallithea/lib/helpers.py
333 kallithea/lib/hooks.py
333 kallithea/lib/hooks.py
334 kallithea/lib/indexers/
334 kallithea/lib/indexers/
335 kallithea/lib/indexers/__init__.py
335 kallithea/lib/indexers/__init__.py
336 kallithea/lib/indexers/daemon.py
336 kallithea/lib/indexers/daemon.py
337 kallithea/lib/ipaddr.py
337 kallithea/lib/ipaddr.py
338 kallithea/lib/markup_renderer.py
338 kallithea/lib/markup_renderer.py
339 kallithea/lib/middleware/
339 kallithea/lib/middleware/
340 kallithea/lib/middleware/__init__.py
340 kallithea/lib/middleware/__init__.py
341 kallithea/lib/middleware/errormator.py
341 kallithea/lib/middleware/appenlight.py
342 kallithea/lib/middleware/https_fixup.py
342 kallithea/lib/middleware/https_fixup.py
343 kallithea/lib/middleware/pygrack.py
343 kallithea/lib/middleware/pygrack.py
344 kallithea/lib/middleware/sentry.py
344 kallithea/lib/middleware/sentry.py
345 kallithea/lib/middleware/sessionmiddleware.py
345 kallithea/lib/middleware/sessionmiddleware.py
346 kallithea/lib/middleware/simplegit.py
346 kallithea/lib/middleware/simplegit.py
347 kallithea/lib/middleware/simplehg.py
347 kallithea/lib/middleware/simplehg.py
348 kallithea/lib/middleware/wrapper.py
348 kallithea/lib/middleware/wrapper.py
349 kallithea/lib/paster_commands/
349 kallithea/lib/paster_commands/
350 kallithea/lib/paster_commands/__init__.py
350 kallithea/lib/paster_commands/__init__.py
351 kallithea/lib/paster_commands/cache_keys.py
351 kallithea/lib/paster_commands/cache_keys.py
352 kallithea/lib/paster_commands/cleanup.py
352 kallithea/lib/paster_commands/cleanup.py
353 kallithea/lib/paster_commands/install_iis.py
353 kallithea/lib/paster_commands/install_iis.py
354 kallithea/lib/paster_commands/ishell.py
354 kallithea/lib/paster_commands/ishell.py
355 kallithea/lib/paster_commands/make_index.py
355 kallithea/lib/paster_commands/make_index.py
356 kallithea/lib/paster_commands/make_rcextensions.py
356 kallithea/lib/paster_commands/make_rcextensions.py
357 kallithea/lib/paster_commands/repo_scan.py
357 kallithea/lib/paster_commands/repo_scan.py
358 kallithea/lib/paster_commands/setup_db.py
358 kallithea/lib/paster_commands/setup_db.py
359 kallithea/lib/paster_commands/update_repoinfo.py
359 kallithea/lib/paster_commands/update_repoinfo.py
360 kallithea/lib/pidlock.py
360 kallithea/lib/pidlock.py
361 kallithea/lib/profiler.py
361 kallithea/lib/profiler.py
362 kallithea/lib/rcmail/
362 kallithea/lib/rcmail/
363 kallithea/lib/rcmail/__init__.py
363 kallithea/lib/rcmail/__init__.py
364 kallithea/lib/rcmail/exceptions.py
364 kallithea/lib/rcmail/exceptions.py
365 kallithea/lib/rcmail/message.py
365 kallithea/lib/rcmail/message.py
366 kallithea/lib/rcmail/response.py
366 kallithea/lib/rcmail/response.py
367 kallithea/lib/rcmail/smtp_mailer.py
367 kallithea/lib/rcmail/smtp_mailer.py
368 kallithea/lib/rcmail/utils.py
368 kallithea/lib/rcmail/utils.py
369 kallithea/lib/recaptcha.py
369 kallithea/lib/recaptcha.py
370 kallithea/lib/timerproxy.py
370 kallithea/lib/timerproxy.py
371 kallithea/lib/utils.py
371 kallithea/lib/utils.py
372 kallithea/lib/utils2.py
372 kallithea/lib/utils2.py
373 kallithea/lib/vcs/
373 kallithea/lib/vcs/
374 kallithea/lib/vcs/__init__.py
374 kallithea/lib/vcs/__init__.py
375 kallithea/lib/vcs/backends/
375 kallithea/lib/vcs/backends/
376 kallithea/lib/vcs/backends/__init__.py
376 kallithea/lib/vcs/backends/__init__.py
377 kallithea/lib/vcs/backends/base.py
377 kallithea/lib/vcs/backends/base.py
378 kallithea/lib/vcs/backends/git/
378 kallithea/lib/vcs/backends/git/
379 kallithea/lib/vcs/backends/git/__init__.py
379 kallithea/lib/vcs/backends/git/__init__.py
380 kallithea/lib/vcs/backends/git/changeset.py
380 kallithea/lib/vcs/backends/git/changeset.py
381 kallithea/lib/vcs/backends/git/inmemory.py
381 kallithea/lib/vcs/backends/git/inmemory.py
382 kallithea/lib/vcs/backends/git/repository.py
382 kallithea/lib/vcs/backends/git/repository.py
383 kallithea/lib/vcs/backends/git/workdir.py
383 kallithea/lib/vcs/backends/git/workdir.py
384 kallithea/lib/vcs/backends/hg/
384 kallithea/lib/vcs/backends/hg/
385 kallithea/lib/vcs/backends/hg/__init__.py
385 kallithea/lib/vcs/backends/hg/__init__.py
386 kallithea/lib/vcs/backends/hg/changeset.py
386 kallithea/lib/vcs/backends/hg/changeset.py
387 kallithea/lib/vcs/backends/hg/inmemory.py
387 kallithea/lib/vcs/backends/hg/inmemory.py
388 kallithea/lib/vcs/backends/hg/repository.py
388 kallithea/lib/vcs/backends/hg/repository.py
389 kallithea/lib/vcs/backends/hg/workdir.py
389 kallithea/lib/vcs/backends/hg/workdir.py
390 kallithea/lib/vcs/conf/
390 kallithea/lib/vcs/conf/
391 kallithea/lib/vcs/conf/__init__.py
391 kallithea/lib/vcs/conf/__init__.py
392 kallithea/lib/vcs/conf/settings.py
392 kallithea/lib/vcs/conf/settings.py
393 kallithea/lib/vcs/exceptions.py
393 kallithea/lib/vcs/exceptions.py
394 kallithea/lib/vcs/nodes.py
394 kallithea/lib/vcs/nodes.py
395 kallithea/lib/vcs/subprocessio.py
395 kallithea/lib/vcs/subprocessio.py
396 kallithea/lib/vcs/utils/
396 kallithea/lib/vcs/utils/
397 kallithea/lib/vcs/utils/__init__.py
397 kallithea/lib/vcs/utils/__init__.py
398 kallithea/lib/vcs/utils/annotate.py
398 kallithea/lib/vcs/utils/annotate.py
399 kallithea/lib/vcs/utils/archivers.py
399 kallithea/lib/vcs/utils/archivers.py
400 kallithea/lib/vcs/utils/baseui_config.py
400 kallithea/lib/vcs/utils/baseui_config.py
401 kallithea/lib/vcs/utils/compat.py
401 kallithea/lib/vcs/utils/compat.py
402 kallithea/lib/vcs/utils/diffs.py
402 kallithea/lib/vcs/utils/diffs.py
403 kallithea/lib/vcs/utils/fakemod.py
403 kallithea/lib/vcs/utils/fakemod.py
404 kallithea/lib/vcs/utils/filesize.py
404 kallithea/lib/vcs/utils/filesize.py
405 kallithea/lib/vcs/utils/helpers.py
405 kallithea/lib/vcs/utils/helpers.py
406 kallithea/lib/vcs/utils/hgcompat.py
406 kallithea/lib/vcs/utils/hgcompat.py
407 kallithea/lib/vcs/utils/imports.py
407 kallithea/lib/vcs/utils/imports.py
408 kallithea/lib/vcs/utils/lazy.py
408 kallithea/lib/vcs/utils/lazy.py
409 kallithea/lib/vcs/utils/lockfiles.py
409 kallithea/lib/vcs/utils/lockfiles.py
410 kallithea/lib/vcs/utils/ordered_dict.py
410 kallithea/lib/vcs/utils/ordered_dict.py
411 kallithea/lib/vcs/utils/paths.py
411 kallithea/lib/vcs/utils/paths.py
412 kallithea/lib/vcs/utils/progressbar.py
412 kallithea/lib/vcs/utils/progressbar.py
413 kallithea/lib/vcs/utils/termcolors.py
413 kallithea/lib/vcs/utils/termcolors.py
414 kallithea/lib/verlib.py
414 kallithea/lib/verlib.py
415 kallithea/model/
415 kallithea/model/
416 kallithea/model/__init__.py
416 kallithea/model/__init__.py
417 kallithea/model/api_key.py
417 kallithea/model/api_key.py
418 kallithea/model/changeset_status.py
418 kallithea/model/changeset_status.py
419 kallithea/model/comment.py
419 kallithea/model/comment.py
420 kallithea/model/db.py
420 kallithea/model/db.py
421 kallithea/model/forms.py
421 kallithea/model/forms.py
422 kallithea/model/gist.py
422 kallithea/model/gist.py
423 kallithea/model/meta.py
423 kallithea/model/meta.py
424 kallithea/model/notification.py
424 kallithea/model/notification.py
425 kallithea/model/permission.py
425 kallithea/model/permission.py
426 kallithea/model/pull_request.py
426 kallithea/model/pull_request.py
427 kallithea/model/repo.py
427 kallithea/model/repo.py
428 kallithea/model/repo_group.py
428 kallithea/model/repo_group.py
429 kallithea/model/repo_permission.py
429 kallithea/model/repo_permission.py
430 kallithea/model/scm.py
430 kallithea/model/scm.py
431 kallithea/model/user.py
431 kallithea/model/user.py
432 kallithea/model/user_group.py
432 kallithea/model/user_group.py
433 kallithea/model/validators.py
433 kallithea/model/validators.py
434 kallithea/public/
434 kallithea/public/
435 kallithea/public/codemirror/
435 kallithea/public/codemirror/
436 kallithea/public/codemirror/LICENSE
436 kallithea/public/codemirror/LICENSE
437 kallithea/public/codemirror/lib/
437 kallithea/public/codemirror/lib/
438 kallithea/public/codemirror/lib/codemirror.css
438 kallithea/public/codemirror/lib/codemirror.css
439 kallithea/public/codemirror/lib/codemirror.js
439 kallithea/public/codemirror/lib/codemirror.js
440 kallithea/public/codemirror/mode/
440 kallithea/public/codemirror/mode/
441 kallithea/public/codemirror/mode/apl/
441 kallithea/public/codemirror/mode/apl/
442 kallithea/public/codemirror/mode/apl/apl.js
442 kallithea/public/codemirror/mode/apl/apl.js
443 kallithea/public/codemirror/mode/asterisk/
443 kallithea/public/codemirror/mode/asterisk/
444 kallithea/public/codemirror/mode/asterisk/asterisk.js
444 kallithea/public/codemirror/mode/asterisk/asterisk.js
445 kallithea/public/codemirror/mode/clike/
445 kallithea/public/codemirror/mode/clike/
446 kallithea/public/codemirror/mode/clike/clike.js
446 kallithea/public/codemirror/mode/clike/clike.js
447 kallithea/public/codemirror/mode/clojure/
447 kallithea/public/codemirror/mode/clojure/
448 kallithea/public/codemirror/mode/clojure/clojure.js
448 kallithea/public/codemirror/mode/clojure/clojure.js
449 kallithea/public/codemirror/mode/cobol/
449 kallithea/public/codemirror/mode/cobol/
450 kallithea/public/codemirror/mode/cobol/cobol.js
450 kallithea/public/codemirror/mode/cobol/cobol.js
451 kallithea/public/codemirror/mode/coffeescript/
451 kallithea/public/codemirror/mode/coffeescript/
452 kallithea/public/codemirror/mode/coffeescript/coffeescript.js
452 kallithea/public/codemirror/mode/coffeescript/coffeescript.js
453 kallithea/public/codemirror/mode/commonlisp/
453 kallithea/public/codemirror/mode/commonlisp/
454 kallithea/public/codemirror/mode/commonlisp/commonlisp.js
454 kallithea/public/codemirror/mode/commonlisp/commonlisp.js
455 kallithea/public/codemirror/mode/css/
455 kallithea/public/codemirror/mode/css/
456 kallithea/public/codemirror/mode/css/css.js
456 kallithea/public/codemirror/mode/css/css.js
457 kallithea/public/codemirror/mode/css/less_test.js
457 kallithea/public/codemirror/mode/css/less_test.js
458 kallithea/public/codemirror/mode/css/scss_test.js
458 kallithea/public/codemirror/mode/css/scss_test.js
459 kallithea/public/codemirror/mode/cypher/
459 kallithea/public/codemirror/mode/cypher/
460 kallithea/public/codemirror/mode/cypher/cypher.js
460 kallithea/public/codemirror/mode/cypher/cypher.js
461 kallithea/public/codemirror/mode/d/
461 kallithea/public/codemirror/mode/d/
462 kallithea/public/codemirror/mode/d/d.js
462 kallithea/public/codemirror/mode/d/d.js
463 kallithea/public/codemirror/mode/diff/
463 kallithea/public/codemirror/mode/diff/
464 kallithea/public/codemirror/mode/diff/diff.js
464 kallithea/public/codemirror/mode/diff/diff.js
465 kallithea/public/codemirror/mode/django/
465 kallithea/public/codemirror/mode/django/
466 kallithea/public/codemirror/mode/django/django.js
466 kallithea/public/codemirror/mode/django/django.js
467 kallithea/public/codemirror/mode/dtd/
467 kallithea/public/codemirror/mode/dtd/
468 kallithea/public/codemirror/mode/dtd/dtd.js
468 kallithea/public/codemirror/mode/dtd/dtd.js
469 kallithea/public/codemirror/mode/dylan/
469 kallithea/public/codemirror/mode/dylan/
470 kallithea/public/codemirror/mode/dylan/dylan.js
470 kallithea/public/codemirror/mode/dylan/dylan.js
471 kallithea/public/codemirror/mode/ecl/
471 kallithea/public/codemirror/mode/ecl/
472 kallithea/public/codemirror/mode/ecl/ecl.js
472 kallithea/public/codemirror/mode/ecl/ecl.js
473 kallithea/public/codemirror/mode/eiffel/
473 kallithea/public/codemirror/mode/eiffel/
474 kallithea/public/codemirror/mode/eiffel/eiffel.js
474 kallithea/public/codemirror/mode/eiffel/eiffel.js
475 kallithea/public/codemirror/mode/erlang/
475 kallithea/public/codemirror/mode/erlang/
476 kallithea/public/codemirror/mode/erlang/erlang.js
476 kallithea/public/codemirror/mode/erlang/erlang.js
477 kallithea/public/codemirror/mode/fortran/
477 kallithea/public/codemirror/mode/fortran/
478 kallithea/public/codemirror/mode/fortran/fortran.js
478 kallithea/public/codemirror/mode/fortran/fortran.js
479 kallithea/public/codemirror/mode/gas/
479 kallithea/public/codemirror/mode/gas/
480 kallithea/public/codemirror/mode/gas/gas.js
480 kallithea/public/codemirror/mode/gas/gas.js
481 kallithea/public/codemirror/mode/gfm/
481 kallithea/public/codemirror/mode/gfm/
482 kallithea/public/codemirror/mode/gfm/gfm.js
482 kallithea/public/codemirror/mode/gfm/gfm.js
483 kallithea/public/codemirror/mode/gherkin/
483 kallithea/public/codemirror/mode/gherkin/
484 kallithea/public/codemirror/mode/gherkin/gherkin.js
484 kallithea/public/codemirror/mode/gherkin/gherkin.js
485 kallithea/public/codemirror/mode/go/
485 kallithea/public/codemirror/mode/go/
486 kallithea/public/codemirror/mode/go/go.js
486 kallithea/public/codemirror/mode/go/go.js
487 kallithea/public/codemirror/mode/groovy/
487 kallithea/public/codemirror/mode/groovy/
488 kallithea/public/codemirror/mode/groovy/groovy.js
488 kallithea/public/codemirror/mode/groovy/groovy.js
489 kallithea/public/codemirror/mode/haml/
489 kallithea/public/codemirror/mode/haml/
490 kallithea/public/codemirror/mode/haml/haml.js
490 kallithea/public/codemirror/mode/haml/haml.js
491 kallithea/public/codemirror/mode/haskell/
491 kallithea/public/codemirror/mode/haskell/
492 kallithea/public/codemirror/mode/haskell/haskell.js
492 kallithea/public/codemirror/mode/haskell/haskell.js
493 kallithea/public/codemirror/mode/haxe/
493 kallithea/public/codemirror/mode/haxe/
494 kallithea/public/codemirror/mode/haxe/haxe.js
494 kallithea/public/codemirror/mode/haxe/haxe.js
495 kallithea/public/codemirror/mode/htmlembedded/
495 kallithea/public/codemirror/mode/htmlembedded/
496 kallithea/public/codemirror/mode/htmlembedded/htmlembedded.js
496 kallithea/public/codemirror/mode/htmlembedded/htmlembedded.js
497 kallithea/public/codemirror/mode/htmlmixed/
497 kallithea/public/codemirror/mode/htmlmixed/
498 kallithea/public/codemirror/mode/htmlmixed/htmlmixed.js
498 kallithea/public/codemirror/mode/htmlmixed/htmlmixed.js
499 kallithea/public/codemirror/mode/http/
499 kallithea/public/codemirror/mode/http/
500 kallithea/public/codemirror/mode/http/http.js
500 kallithea/public/codemirror/mode/http/http.js
501 kallithea/public/codemirror/mode/jade/
501 kallithea/public/codemirror/mode/jade/
502 kallithea/public/codemirror/mode/jade/jade.js
502 kallithea/public/codemirror/mode/jade/jade.js
503 kallithea/public/codemirror/mode/javascript/
503 kallithea/public/codemirror/mode/javascript/
504 kallithea/public/codemirror/mode/javascript/javascript.js
504 kallithea/public/codemirror/mode/javascript/javascript.js
505 kallithea/public/codemirror/mode/jinja2/
505 kallithea/public/codemirror/mode/jinja2/
506 kallithea/public/codemirror/mode/jinja2/jinja2.js
506 kallithea/public/codemirror/mode/jinja2/jinja2.js
507 kallithea/public/codemirror/mode/julia/
507 kallithea/public/codemirror/mode/julia/
508 kallithea/public/codemirror/mode/julia/julia.js
508 kallithea/public/codemirror/mode/julia/julia.js
509 kallithea/public/codemirror/mode/kotlin/
509 kallithea/public/codemirror/mode/kotlin/
510 kallithea/public/codemirror/mode/kotlin/kotlin.js
510 kallithea/public/codemirror/mode/kotlin/kotlin.js
511 kallithea/public/codemirror/mode/livescript/
511 kallithea/public/codemirror/mode/livescript/
512 kallithea/public/codemirror/mode/livescript/livescript.js
512 kallithea/public/codemirror/mode/livescript/livescript.js
513 kallithea/public/codemirror/mode/lua/
513 kallithea/public/codemirror/mode/lua/
514 kallithea/public/codemirror/mode/lua/lua.js
514 kallithea/public/codemirror/mode/lua/lua.js
515 kallithea/public/codemirror/mode/markdown/
515 kallithea/public/codemirror/mode/markdown/
516 kallithea/public/codemirror/mode/markdown/markdown.js
516 kallithea/public/codemirror/mode/markdown/markdown.js
517 kallithea/public/codemirror/mode/meta.js
517 kallithea/public/codemirror/mode/meta.js
518 kallithea/public/codemirror/mode/mirc/
518 kallithea/public/codemirror/mode/mirc/
519 kallithea/public/codemirror/mode/mirc/mirc.js
519 kallithea/public/codemirror/mode/mirc/mirc.js
520 kallithea/public/codemirror/mode/mllike/
520 kallithea/public/codemirror/mode/mllike/
521 kallithea/public/codemirror/mode/mllike/mllike.js
521 kallithea/public/codemirror/mode/mllike/mllike.js
522 kallithea/public/codemirror/mode/modelica/
522 kallithea/public/codemirror/mode/modelica/
523 kallithea/public/codemirror/mode/modelica/modelica.js
523 kallithea/public/codemirror/mode/modelica/modelica.js
524 kallithea/public/codemirror/mode/nginx/
524 kallithea/public/codemirror/mode/nginx/
525 kallithea/public/codemirror/mode/nginx/nginx.js
525 kallithea/public/codemirror/mode/nginx/nginx.js
526 kallithea/public/codemirror/mode/ntriples/
526 kallithea/public/codemirror/mode/ntriples/
527 kallithea/public/codemirror/mode/ntriples/ntriples.js
527 kallithea/public/codemirror/mode/ntriples/ntriples.js
528 kallithea/public/codemirror/mode/octave/
528 kallithea/public/codemirror/mode/octave/
529 kallithea/public/codemirror/mode/octave/octave.js
529 kallithea/public/codemirror/mode/octave/octave.js
530 kallithea/public/codemirror/mode/pascal/
530 kallithea/public/codemirror/mode/pascal/
531 kallithea/public/codemirror/mode/pascal/pascal.js
531 kallithea/public/codemirror/mode/pascal/pascal.js
532 kallithea/public/codemirror/mode/pegjs/
532 kallithea/public/codemirror/mode/pegjs/
533 kallithea/public/codemirror/mode/pegjs/pegjs.js
533 kallithea/public/codemirror/mode/pegjs/pegjs.js
534 kallithea/public/codemirror/mode/perl/
534 kallithea/public/codemirror/mode/perl/
535 kallithea/public/codemirror/mode/perl/perl.js
535 kallithea/public/codemirror/mode/perl/perl.js
536 kallithea/public/codemirror/mode/php/
536 kallithea/public/codemirror/mode/php/
537 kallithea/public/codemirror/mode/php/php.js
537 kallithea/public/codemirror/mode/php/php.js
538 kallithea/public/codemirror/mode/pig/
538 kallithea/public/codemirror/mode/pig/
539 kallithea/public/codemirror/mode/pig/pig.js
539 kallithea/public/codemirror/mode/pig/pig.js
540 kallithea/public/codemirror/mode/properties/
540 kallithea/public/codemirror/mode/properties/
541 kallithea/public/codemirror/mode/properties/properties.js
541 kallithea/public/codemirror/mode/properties/properties.js
542 kallithea/public/codemirror/mode/puppet/
542 kallithea/public/codemirror/mode/puppet/
543 kallithea/public/codemirror/mode/puppet/puppet.js
543 kallithea/public/codemirror/mode/puppet/puppet.js
544 kallithea/public/codemirror/mode/python/
544 kallithea/public/codemirror/mode/python/
545 kallithea/public/codemirror/mode/python/python.js
545 kallithea/public/codemirror/mode/python/python.js
546 kallithea/public/codemirror/mode/q/
546 kallithea/public/codemirror/mode/q/
547 kallithea/public/codemirror/mode/q/q.js
547 kallithea/public/codemirror/mode/q/q.js
548 kallithea/public/codemirror/mode/r/
548 kallithea/public/codemirror/mode/r/
549 kallithea/public/codemirror/mode/r/r.js
549 kallithea/public/codemirror/mode/r/r.js
550 kallithea/public/codemirror/mode/rpm/
550 kallithea/public/codemirror/mode/rpm/
551 kallithea/public/codemirror/mode/rpm/rpm.js
551 kallithea/public/codemirror/mode/rpm/rpm.js
552 kallithea/public/codemirror/mode/rst/
552 kallithea/public/codemirror/mode/rst/
553 kallithea/public/codemirror/mode/rst/rst.js
553 kallithea/public/codemirror/mode/rst/rst.js
554 kallithea/public/codemirror/mode/ruby/
554 kallithea/public/codemirror/mode/ruby/
555 kallithea/public/codemirror/mode/ruby/ruby.js
555 kallithea/public/codemirror/mode/ruby/ruby.js
556 kallithea/public/codemirror/mode/rust/
556 kallithea/public/codemirror/mode/rust/
557 kallithea/public/codemirror/mode/rust/rust.js
557 kallithea/public/codemirror/mode/rust/rust.js
558 kallithea/public/codemirror/mode/sass/
558 kallithea/public/codemirror/mode/sass/
559 kallithea/public/codemirror/mode/sass/sass.js
559 kallithea/public/codemirror/mode/sass/sass.js
560 kallithea/public/codemirror/mode/scheme/
560 kallithea/public/codemirror/mode/scheme/
561 kallithea/public/codemirror/mode/scheme/scheme.js
561 kallithea/public/codemirror/mode/scheme/scheme.js
562 kallithea/public/codemirror/mode/shell/
562 kallithea/public/codemirror/mode/shell/
563 kallithea/public/codemirror/mode/shell/shell.js
563 kallithea/public/codemirror/mode/shell/shell.js
564 kallithea/public/codemirror/mode/sieve/
564 kallithea/public/codemirror/mode/sieve/
565 kallithea/public/codemirror/mode/sieve/sieve.js
565 kallithea/public/codemirror/mode/sieve/sieve.js
566 kallithea/public/codemirror/mode/slim/
566 kallithea/public/codemirror/mode/slim/
567 kallithea/public/codemirror/mode/slim/slim.js
567 kallithea/public/codemirror/mode/slim/slim.js
568 kallithea/public/codemirror/mode/smalltalk/
568 kallithea/public/codemirror/mode/smalltalk/
569 kallithea/public/codemirror/mode/smalltalk/smalltalk.js
569 kallithea/public/codemirror/mode/smalltalk/smalltalk.js
570 kallithea/public/codemirror/mode/smarty/
570 kallithea/public/codemirror/mode/smarty/
571 kallithea/public/codemirror/mode/smarty/smarty.js
571 kallithea/public/codemirror/mode/smarty/smarty.js
572 kallithea/public/codemirror/mode/smartymixed/
572 kallithea/public/codemirror/mode/smartymixed/
573 kallithea/public/codemirror/mode/smartymixed/smartymixed.js
573 kallithea/public/codemirror/mode/smartymixed/smartymixed.js
574 kallithea/public/codemirror/mode/solr/
574 kallithea/public/codemirror/mode/solr/
575 kallithea/public/codemirror/mode/solr/solr.js
575 kallithea/public/codemirror/mode/solr/solr.js
576 kallithea/public/codemirror/mode/sparql/
576 kallithea/public/codemirror/mode/sparql/
577 kallithea/public/codemirror/mode/sparql/sparql.js
577 kallithea/public/codemirror/mode/sparql/sparql.js
578 kallithea/public/codemirror/mode/sql/
578 kallithea/public/codemirror/mode/sql/
579 kallithea/public/codemirror/mode/sql/sql.js
579 kallithea/public/codemirror/mode/sql/sql.js
580 kallithea/public/codemirror/mode/stex/
580 kallithea/public/codemirror/mode/stex/
581 kallithea/public/codemirror/mode/stex/stex.js
581 kallithea/public/codemirror/mode/stex/stex.js
582 kallithea/public/codemirror/mode/tcl/
582 kallithea/public/codemirror/mode/tcl/
583 kallithea/public/codemirror/mode/tcl/tcl.js
583 kallithea/public/codemirror/mode/tcl/tcl.js
584 kallithea/public/codemirror/mode/textile/
584 kallithea/public/codemirror/mode/textile/
585 kallithea/public/codemirror/mode/textile/textile.js
585 kallithea/public/codemirror/mode/textile/textile.js
586 kallithea/public/codemirror/mode/tiddlywiki/
586 kallithea/public/codemirror/mode/tiddlywiki/
587 kallithea/public/codemirror/mode/tiddlywiki/tiddlywiki.css
587 kallithea/public/codemirror/mode/tiddlywiki/tiddlywiki.css
588 kallithea/public/codemirror/mode/tiddlywiki/tiddlywiki.js
588 kallithea/public/codemirror/mode/tiddlywiki/tiddlywiki.js
589 kallithea/public/codemirror/mode/tiki/
589 kallithea/public/codemirror/mode/tiki/
590 kallithea/public/codemirror/mode/tiki/tiki.css
590 kallithea/public/codemirror/mode/tiki/tiki.css
591 kallithea/public/codemirror/mode/tiki/tiki.js
591 kallithea/public/codemirror/mode/tiki/tiki.js
592 kallithea/public/codemirror/mode/toml/
592 kallithea/public/codemirror/mode/toml/
593 kallithea/public/codemirror/mode/toml/toml.js
593 kallithea/public/codemirror/mode/toml/toml.js
594 kallithea/public/codemirror/mode/tornado/
594 kallithea/public/codemirror/mode/tornado/
595 kallithea/public/codemirror/mode/tornado/tornado.js
595 kallithea/public/codemirror/mode/tornado/tornado.js
596 kallithea/public/codemirror/mode/turtle/
596 kallithea/public/codemirror/mode/turtle/
597 kallithea/public/codemirror/mode/turtle/turtle.js
597 kallithea/public/codemirror/mode/turtle/turtle.js
598 kallithea/public/codemirror/mode/vb/
598 kallithea/public/codemirror/mode/vb/
599 kallithea/public/codemirror/mode/vb/vb.js
599 kallithea/public/codemirror/mode/vb/vb.js
600 kallithea/public/codemirror/mode/vbscript/
600 kallithea/public/codemirror/mode/vbscript/
601 kallithea/public/codemirror/mode/vbscript/vbscript.js
601 kallithea/public/codemirror/mode/vbscript/vbscript.js
602 kallithea/public/codemirror/mode/velocity/
602 kallithea/public/codemirror/mode/velocity/
603 kallithea/public/codemirror/mode/velocity/velocity.js
603 kallithea/public/codemirror/mode/velocity/velocity.js
604 kallithea/public/codemirror/mode/verilog/
604 kallithea/public/codemirror/mode/verilog/
605 kallithea/public/codemirror/mode/verilog/verilog.js
605 kallithea/public/codemirror/mode/verilog/verilog.js
606 kallithea/public/codemirror/mode/xml/
606 kallithea/public/codemirror/mode/xml/
607 kallithea/public/codemirror/mode/xml/xml.js
607 kallithea/public/codemirror/mode/xml/xml.js
608 kallithea/public/codemirror/mode/xquery/
608 kallithea/public/codemirror/mode/xquery/
609 kallithea/public/codemirror/mode/xquery/xquery.js
609 kallithea/public/codemirror/mode/xquery/xquery.js
610 kallithea/public/codemirror/mode/yaml/
610 kallithea/public/codemirror/mode/yaml/
611 kallithea/public/codemirror/mode/yaml/yaml.js
611 kallithea/public/codemirror/mode/yaml/yaml.js
612 kallithea/public/codemirror/mode/z80/
612 kallithea/public/codemirror/mode/z80/
613 kallithea/public/codemirror/mode/z80/z80.js
613 kallithea/public/codemirror/mode/z80/z80.js
614 kallithea/public/css/
614 kallithea/public/css/
615 kallithea/public/css/bootstrap.css
615 kallithea/public/css/bootstrap.css
616 kallithea/public/css/contextbar.css
616 kallithea/public/css/contextbar.css
617 kallithea/public/css/mergely.css
617 kallithea/public/css/mergely.css
618 kallithea/public/css/pygments.css
618 kallithea/public/css/pygments.css
619 kallithea/public/css/style.css
619 kallithea/public/css/style.css
620 kallithea/public/fontello/
620 kallithea/public/fontello/
621 kallithea/public/fontello/README-kallithea.txt
621 kallithea/public/fontello/README-kallithea.txt
622 kallithea/public/fontello/README.txt
622 kallithea/public/fontello/README.txt
623 kallithea/public/fontello/config.json
623 kallithea/public/fontello/config.json
624 kallithea/public/fontello/css/
624 kallithea/public/fontello/css/
625 kallithea/public/fontello/css/kallithea.css
625 kallithea/public/fontello/css/kallithea.css
626 kallithea/public/fontello/font/
626 kallithea/public/fontello/font/
627 kallithea/public/fontello/font/kallithea.eot
627 kallithea/public/fontello/font/kallithea.eot
628 kallithea/public/fontello/font/kallithea.svg
628 kallithea/public/fontello/font/kallithea.svg
629 kallithea/public/fontello/font/kallithea.ttf
629 kallithea/public/fontello/font/kallithea.ttf
630 kallithea/public/fontello/font/kallithea.woff
630 kallithea/public/fontello/font/kallithea.woff
631 kallithea/public/images/
631 kallithea/public/images/
632 kallithea/public/images/background.png
632 kallithea/public/images/background.png
633 kallithea/public/images/favicon.ico
633 kallithea/public/images/favicon.ico
634 kallithea/public/images/kallithea-logo.png
634 kallithea/public/images/kallithea-logo.png
635 kallithea/public/images/kallithea-logo.svg
635 kallithea/public/images/kallithea-logo.svg
636 kallithea/public/images/pager.png
636 kallithea/public/images/pager.png
637 kallithea/public/images/pager_selected.png
637 kallithea/public/images/pager_selected.png
638 kallithea/public/js/
638 kallithea/public/js/
639 kallithea/public/js/base.js
639 kallithea/public/js/base.js
640 kallithea/public/js/bootstrap.js
640 kallithea/public/js/bootstrap.js
641 kallithea/public/js/codemirror_loadmode.js
641 kallithea/public/js/codemirror_loadmode.js
642 kallithea/public/js/graph.js
642 kallithea/public/js/graph.js
643 kallithea/public/js/jquery-1.11.1.min.js
643 kallithea/public/js/jquery-1.11.1.min.js
644 kallithea/public/js/mergely.js
644 kallithea/public/js/mergely.js
645 kallithea/public/js/mousetrap.js
645 kallithea/public/js/mousetrap.js
646 kallithea/public/js/native.history.js
646 kallithea/public/js/native.history.js
647 kallithea/public/js/select2/
647 kallithea/public/js/select2/
648 kallithea/public/js/select2/select2-bootstrap.css
648 kallithea/public/js/select2/select2-bootstrap.css
649 kallithea/public/js/select2/select2-spinner.gif
649 kallithea/public/js/select2/select2-spinner.gif
650 kallithea/public/js/select2/select2.css
650 kallithea/public/js/select2/select2.css
651 kallithea/public/js/select2/select2.js
651 kallithea/public/js/select2/select2.js
652 kallithea/public/js/select2/select2.png
652 kallithea/public/js/select2/select2.png
653 kallithea/public/js/select2/select2x2.png
653 kallithea/public/js/select2/select2x2.png
654 kallithea/public/js/yui.2.9.js
654 kallithea/public/js/yui.2.9.js
655 kallithea/public/js/yui.flot.js
655 kallithea/public/js/yui.flot.js
656 kallithea/templates/
656 kallithea/templates/
657 kallithea/templates/about.html
657 kallithea/templates/about.html
658 kallithea/templates/admin/
658 kallithea/templates/admin/
659 kallithea/templates/admin/admin.html
659 kallithea/templates/admin/admin.html
660 kallithea/templates/admin/admin_log.html
660 kallithea/templates/admin/admin_log.html
661 kallithea/templates/admin/auth/
661 kallithea/templates/admin/auth/
662 kallithea/templates/admin/auth/auth_settings.html
662 kallithea/templates/admin/auth/auth_settings.html
663 kallithea/templates/admin/defaults/
663 kallithea/templates/admin/defaults/
664 kallithea/templates/admin/defaults/defaults.html
664 kallithea/templates/admin/defaults/defaults.html
665 kallithea/templates/admin/gists/
665 kallithea/templates/admin/gists/
666 kallithea/templates/admin/gists/edit.html
666 kallithea/templates/admin/gists/edit.html
667 kallithea/templates/admin/gists/index.html
667 kallithea/templates/admin/gists/index.html
668 kallithea/templates/admin/gists/new.html
668 kallithea/templates/admin/gists/new.html
669 kallithea/templates/admin/gists/show.html
669 kallithea/templates/admin/gists/show.html
670 kallithea/templates/admin/my_account/
670 kallithea/templates/admin/my_account/
671 kallithea/templates/admin/my_account/my_account.html
671 kallithea/templates/admin/my_account/my_account.html
672 kallithea/templates/admin/my_account/my_account_api_keys.html
672 kallithea/templates/admin/my_account/my_account_api_keys.html
673 kallithea/templates/admin/my_account/my_account_emails.html
673 kallithea/templates/admin/my_account/my_account_emails.html
674 kallithea/templates/admin/my_account/my_account_password.html
674 kallithea/templates/admin/my_account/my_account_password.html
675 kallithea/templates/admin/my_account/my_account_perms.html
675 kallithea/templates/admin/my_account/my_account_perms.html
676 kallithea/templates/admin/my_account/my_account_profile.html
676 kallithea/templates/admin/my_account/my_account_profile.html
677 kallithea/templates/admin/my_account/my_account_repos.html
677 kallithea/templates/admin/my_account/my_account_repos.html
678 kallithea/templates/admin/my_account/my_account_watched.html
678 kallithea/templates/admin/my_account/my_account_watched.html
679 kallithea/templates/admin/notifications/
679 kallithea/templates/admin/notifications/
680 kallithea/templates/admin/notifications/notifications.html
680 kallithea/templates/admin/notifications/notifications.html
681 kallithea/templates/admin/notifications/notifications_data.html
681 kallithea/templates/admin/notifications/notifications_data.html
682 kallithea/templates/admin/notifications/show_notification.html
682 kallithea/templates/admin/notifications/show_notification.html
683 kallithea/templates/admin/permissions/
683 kallithea/templates/admin/permissions/
684 kallithea/templates/admin/permissions/permissions.html
684 kallithea/templates/admin/permissions/permissions.html
685 kallithea/templates/admin/permissions/permissions_globals.html
685 kallithea/templates/admin/permissions/permissions_globals.html
686 kallithea/templates/admin/permissions/permissions_ips.html
686 kallithea/templates/admin/permissions/permissions_ips.html
687 kallithea/templates/admin/permissions/permissions_perms.html
687 kallithea/templates/admin/permissions/permissions_perms.html
688 kallithea/templates/admin/repo_groups/
688 kallithea/templates/admin/repo_groups/
689 kallithea/templates/admin/repo_groups/repo_group_add.html
689 kallithea/templates/admin/repo_groups/repo_group_add.html
690 kallithea/templates/admin/repo_groups/repo_group_edit.html
690 kallithea/templates/admin/repo_groups/repo_group_edit.html
691 kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html
691 kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html
692 kallithea/templates/admin/repo_groups/repo_group_edit_perms.html
692 kallithea/templates/admin/repo_groups/repo_group_edit_perms.html
693 kallithea/templates/admin/repo_groups/repo_group_edit_settings.html
693 kallithea/templates/admin/repo_groups/repo_group_edit_settings.html
694 kallithea/templates/admin/repo_groups/repo_group_show.html
694 kallithea/templates/admin/repo_groups/repo_group_show.html
695 kallithea/templates/admin/repo_groups/repo_groups.html
695 kallithea/templates/admin/repo_groups/repo_groups.html
696 kallithea/templates/admin/repos/
696 kallithea/templates/admin/repos/
697 kallithea/templates/admin/repos/repo_add.html
697 kallithea/templates/admin/repos/repo_add.html
698 kallithea/templates/admin/repos/repo_add_base.html
698 kallithea/templates/admin/repos/repo_add_base.html
699 kallithea/templates/admin/repos/repo_creating.html
699 kallithea/templates/admin/repos/repo_creating.html
700 kallithea/templates/admin/repos/repo_edit.html
700 kallithea/templates/admin/repos/repo_edit.html
701 kallithea/templates/admin/repos/repo_edit_advanced.html
701 kallithea/templates/admin/repos/repo_edit_advanced.html
702 kallithea/templates/admin/repos/repo_edit_caches.html
702 kallithea/templates/admin/repos/repo_edit_caches.html
703 kallithea/templates/admin/repos/repo_edit_fields.html
703 kallithea/templates/admin/repos/repo_edit_fields.html
704 kallithea/templates/admin/repos/repo_edit_fork.html
704 kallithea/templates/admin/repos/repo_edit_fork.html
705 kallithea/templates/admin/repos/repo_edit_permissions.html
705 kallithea/templates/admin/repos/repo_edit_permissions.html
706 kallithea/templates/admin/repos/repo_edit_remote.html
706 kallithea/templates/admin/repos/repo_edit_remote.html
707 kallithea/templates/admin/repos/repo_edit_settings.html
707 kallithea/templates/admin/repos/repo_edit_settings.html
708 kallithea/templates/admin/repos/repo_edit_statistics.html
708 kallithea/templates/admin/repos/repo_edit_statistics.html
709 kallithea/templates/admin/repos/repos.html
709 kallithea/templates/admin/repos/repos.html
710 kallithea/templates/admin/settings/
710 kallithea/templates/admin/settings/
711 kallithea/templates/admin/settings/settings.html
711 kallithea/templates/admin/settings/settings.html
712 kallithea/templates/admin/settings/settings_email.html
712 kallithea/templates/admin/settings/settings_email.html
713 kallithea/templates/admin/settings/settings_global.html
713 kallithea/templates/admin/settings/settings_global.html
714 kallithea/templates/admin/settings/settings_hooks.html
714 kallithea/templates/admin/settings/settings_hooks.html
715 kallithea/templates/admin/settings/settings_mapping.html
715 kallithea/templates/admin/settings/settings_mapping.html
716 kallithea/templates/admin/settings/settings_search.html
716 kallithea/templates/admin/settings/settings_search.html
717 kallithea/templates/admin/settings/settings_system.html
717 kallithea/templates/admin/settings/settings_system.html
718 kallithea/templates/admin/settings/settings_system_update.html
718 kallithea/templates/admin/settings/settings_system_update.html
719 kallithea/templates/admin/settings/settings_vcs.html
719 kallithea/templates/admin/settings/settings_vcs.html
720 kallithea/templates/admin/settings/settings_visual.html
720 kallithea/templates/admin/settings/settings_visual.html
721 kallithea/templates/admin/user_groups/
721 kallithea/templates/admin/user_groups/
722 kallithea/templates/admin/user_groups/user_group_add.html
722 kallithea/templates/admin/user_groups/user_group_add.html
723 kallithea/templates/admin/user_groups/user_group_edit.html
723 kallithea/templates/admin/user_groups/user_group_edit.html
724 kallithea/templates/admin/user_groups/user_group_edit_advanced.html
724 kallithea/templates/admin/user_groups/user_group_edit_advanced.html
725 kallithea/templates/admin/user_groups/user_group_edit_default_perms.html
725 kallithea/templates/admin/user_groups/user_group_edit_default_perms.html
726 kallithea/templates/admin/user_groups/user_group_edit_members.html
726 kallithea/templates/admin/user_groups/user_group_edit_members.html
727 kallithea/templates/admin/user_groups/user_group_edit_perms.html
727 kallithea/templates/admin/user_groups/user_group_edit_perms.html
728 kallithea/templates/admin/user_groups/user_group_edit_settings.html
728 kallithea/templates/admin/user_groups/user_group_edit_settings.html
729 kallithea/templates/admin/user_groups/user_groups.html
729 kallithea/templates/admin/user_groups/user_groups.html
730 kallithea/templates/admin/users/
730 kallithea/templates/admin/users/
731 kallithea/templates/admin/users/user_add.html
731 kallithea/templates/admin/users/user_add.html
732 kallithea/templates/admin/users/user_edit.html
732 kallithea/templates/admin/users/user_edit.html
733 kallithea/templates/admin/users/user_edit_advanced.html
733 kallithea/templates/admin/users/user_edit_advanced.html
734 kallithea/templates/admin/users/user_edit_api_keys.html
734 kallithea/templates/admin/users/user_edit_api_keys.html
735 kallithea/templates/admin/users/user_edit_emails.html
735 kallithea/templates/admin/users/user_edit_emails.html
736 kallithea/templates/admin/users/user_edit_ips.html
736 kallithea/templates/admin/users/user_edit_ips.html
737 kallithea/templates/admin/users/user_edit_perms.html
737 kallithea/templates/admin/users/user_edit_perms.html
738 kallithea/templates/admin/users/user_edit_profile.html
738 kallithea/templates/admin/users/user_edit_profile.html
739 kallithea/templates/admin/users/users.html
739 kallithea/templates/admin/users/users.html
740 kallithea/templates/base/
740 kallithea/templates/base/
741 kallithea/templates/base/base.html
741 kallithea/templates/base/base.html
742 kallithea/templates/base/default_perms_box.html
742 kallithea/templates/base/default_perms_box.html
743 kallithea/templates/base/flash_msg.html
743 kallithea/templates/base/flash_msg.html
744 kallithea/templates/base/perms_summary.html
744 kallithea/templates/base/perms_summary.html
745 kallithea/templates/base/root.html
745 kallithea/templates/base/root.html
746 kallithea/templates/bookmarks/
746 kallithea/templates/bookmarks/
747 kallithea/templates/bookmarks/bookmarks.html
747 kallithea/templates/bookmarks/bookmarks.html
748 kallithea/templates/bookmarks/bookmarks_data.html
748 kallithea/templates/bookmarks/bookmarks_data.html
749 kallithea/templates/branches/
749 kallithea/templates/branches/
750 kallithea/templates/branches/branches.html
750 kallithea/templates/branches/branches.html
751 kallithea/templates/branches/branches_data.html
751 kallithea/templates/branches/branches_data.html
752 kallithea/templates/changelog/
752 kallithea/templates/changelog/
753 kallithea/templates/changelog/changelog.html
753 kallithea/templates/changelog/changelog.html
754 kallithea/templates/changelog/changelog_details.html
754 kallithea/templates/changelog/changelog_details.html
755 kallithea/templates/changelog/changelog_summary_data.html
755 kallithea/templates/changelog/changelog_summary_data.html
756 kallithea/templates/changeset/
756 kallithea/templates/changeset/
757 kallithea/templates/changeset/changeset.html
757 kallithea/templates/changeset/changeset.html
758 kallithea/templates/changeset/changeset_comment_block.html
758 kallithea/templates/changeset/changeset_comment_block.html
759 kallithea/templates/changeset/changeset_file_comment.html
759 kallithea/templates/changeset/changeset_file_comment.html
760 kallithea/templates/changeset/changeset_range.html
760 kallithea/templates/changeset/changeset_range.html
761 kallithea/templates/changeset/diff_block.html
761 kallithea/templates/changeset/diff_block.html
762 kallithea/templates/changeset/patch_changeset.html
762 kallithea/templates/changeset/patch_changeset.html
763 kallithea/templates/compare/
763 kallithea/templates/compare/
764 kallithea/templates/compare/compare_cs.html
764 kallithea/templates/compare/compare_cs.html
765 kallithea/templates/compare/compare_diff.html
765 kallithea/templates/compare/compare_diff.html
766 kallithea/templates/data_table/
766 kallithea/templates/data_table/
767 kallithea/templates/data_table/_dt_elements.html
767 kallithea/templates/data_table/_dt_elements.html
768 kallithea/templates/email_templates/
768 kallithea/templates/email_templates/
769 kallithea/templates/email_templates/changeset_comment.html
769 kallithea/templates/email_templates/changeset_comment.html
770 kallithea/templates/email_templates/changeset_comment.txt
770 kallithea/templates/email_templates/changeset_comment.txt
771 kallithea/templates/email_templates/default.html
771 kallithea/templates/email_templates/default.html
772 kallithea/templates/email_templates/default.txt
772 kallithea/templates/email_templates/default.txt
773 kallithea/templates/email_templates/main.html
773 kallithea/templates/email_templates/main.html
774 kallithea/templates/email_templates/main.txt
774 kallithea/templates/email_templates/main.txt
775 kallithea/templates/email_templates/password_reset.html
775 kallithea/templates/email_templates/password_reset.html
776 kallithea/templates/email_templates/password_reset.txt
776 kallithea/templates/email_templates/password_reset.txt
777 kallithea/templates/email_templates/pull_request.html
777 kallithea/templates/email_templates/pull_request.html
778 kallithea/templates/email_templates/pull_request.txt
778 kallithea/templates/email_templates/pull_request.txt
779 kallithea/templates/email_templates/pull_request_comment.html
779 kallithea/templates/email_templates/pull_request_comment.html
780 kallithea/templates/email_templates/pull_request_comment.txt
780 kallithea/templates/email_templates/pull_request_comment.txt
781 kallithea/templates/email_templates/registration.html
781 kallithea/templates/email_templates/registration.html
782 kallithea/templates/email_templates/registration.txt
782 kallithea/templates/email_templates/registration.txt
783 kallithea/templates/errors/
783 kallithea/templates/errors/
784 kallithea/templates/errors/error_document.html
784 kallithea/templates/errors/error_document.html
785 kallithea/templates/files/
785 kallithea/templates/files/
786 kallithea/templates/files/diff_2way.html
786 kallithea/templates/files/diff_2way.html
787 kallithea/templates/files/file_diff.html
787 kallithea/templates/files/file_diff.html
788 kallithea/templates/files/files.html
788 kallithea/templates/files/files.html
789 kallithea/templates/files/files_add.html
789 kallithea/templates/files/files_add.html
790 kallithea/templates/files/files_browser.html
790 kallithea/templates/files/files_browser.html
791 kallithea/templates/files/files_delete.html
791 kallithea/templates/files/files_delete.html
792 kallithea/templates/files/files_edit.html
792 kallithea/templates/files/files_edit.html
793 kallithea/templates/files/files_history_box.html
793 kallithea/templates/files/files_history_box.html
794 kallithea/templates/files/files_source.html
794 kallithea/templates/files/files_source.html
795 kallithea/templates/files/files_ypjax.html
795 kallithea/templates/files/files_ypjax.html
796 kallithea/templates/followers/
796 kallithea/templates/followers/
797 kallithea/templates/followers/followers.html
797 kallithea/templates/followers/followers.html
798 kallithea/templates/followers/followers_data.html
798 kallithea/templates/followers/followers_data.html
799 kallithea/templates/forks/
799 kallithea/templates/forks/
800 kallithea/templates/forks/fork.html
800 kallithea/templates/forks/fork.html
801 kallithea/templates/forks/forks.html
801 kallithea/templates/forks/forks.html
802 kallithea/templates/forks/forks_data.html
802 kallithea/templates/forks/forks_data.html
803 kallithea/templates/index.html
803 kallithea/templates/index.html
804 kallithea/templates/index_base.html
804 kallithea/templates/index_base.html
805 kallithea/templates/journal/
805 kallithea/templates/journal/
806 kallithea/templates/journal/journal.html
806 kallithea/templates/journal/journal.html
807 kallithea/templates/journal/journal_data.html
807 kallithea/templates/journal/journal_data.html
808 kallithea/templates/journal/public_journal.html
808 kallithea/templates/journal/public_journal.html
809 kallithea/templates/login.html
809 kallithea/templates/login.html
810 kallithea/templates/password_reset.html
810 kallithea/templates/password_reset.html
811 kallithea/templates/password_reset_confirmation.html
811 kallithea/templates/password_reset_confirmation.html
812 kallithea/templates/pullrequests/
812 kallithea/templates/pullrequests/
813 kallithea/templates/pullrequests/pullrequest.html
813 kallithea/templates/pullrequests/pullrequest.html
814 kallithea/templates/pullrequests/pullrequest_data.html
814 kallithea/templates/pullrequests/pullrequest_data.html
815 kallithea/templates/pullrequests/pullrequest_show.html
815 kallithea/templates/pullrequests/pullrequest_show.html
816 kallithea/templates/pullrequests/pullrequest_show_all.html
816 kallithea/templates/pullrequests/pullrequest_show_all.html
817 kallithea/templates/pullrequests/pullrequest_show_my.html
817 kallithea/templates/pullrequests/pullrequest_show_my.html
818 kallithea/templates/register.html
818 kallithea/templates/register.html
819 kallithea/templates/search/
819 kallithea/templates/search/
820 kallithea/templates/search/search.html
820 kallithea/templates/search/search.html
821 kallithea/templates/search/search_commit.html
821 kallithea/templates/search/search_commit.html
822 kallithea/templates/search/search_content.html
822 kallithea/templates/search/search_content.html
823 kallithea/templates/search/search_path.html
823 kallithea/templates/search/search_path.html
824 kallithea/templates/search/search_repository.html
824 kallithea/templates/search/search_repository.html
825 kallithea/templates/summary/
825 kallithea/templates/summary/
826 kallithea/templates/summary/statistics.html
826 kallithea/templates/summary/statistics.html
827 kallithea/templates/summary/summary.html
827 kallithea/templates/summary/summary.html
828 kallithea/templates/switch_to_list.html
828 kallithea/templates/switch_to_list.html
829 kallithea/templates/tags/
829 kallithea/templates/tags/
830 kallithea/templates/tags/tags.html
830 kallithea/templates/tags/tags.html
831 kallithea/templates/tags/tags_data.html
831 kallithea/templates/tags/tags_data.html
832 kallithea/tests/
832 kallithea/tests/
833 kallithea/tests/__init__.py
833 kallithea/tests/__init__.py
834 kallithea/tests/api/
834 kallithea/tests/api/
835 kallithea/tests/api/__init__.py
835 kallithea/tests/api/__init__.py
836 kallithea/tests/api/api_base.py
836 kallithea/tests/api/api_base.py
837 kallithea/tests/api/test_api_git.py
837 kallithea/tests/api/test_api_git.py
838 kallithea/tests/api/test_api_hg.py
838 kallithea/tests/api/test_api_hg.py
839 kallithea/tests/conftest.py
839 kallithea/tests/conftest.py
840 kallithea/tests/fixture.py
840 kallithea/tests/fixture.py
841 kallithea/tests/fixtures/
841 kallithea/tests/fixtures/
842 kallithea/tests/fixtures/diff_with_diff_data.diff
842 kallithea/tests/fixtures/diff_with_diff_data.diff
843 kallithea/tests/fixtures/git_diff_binary_and_normal.diff
843 kallithea/tests/fixtures/git_diff_binary_and_normal.diff
844 kallithea/tests/fixtures/git_diff_chmod.diff
844 kallithea/tests/fixtures/git_diff_chmod.diff
845 kallithea/tests/fixtures/git_diff_mod_single_binary_file.diff
845 kallithea/tests/fixtures/git_diff_mod_single_binary_file.diff
846 kallithea/tests/fixtures/git_diff_modify_binary_file.diff
846 kallithea/tests/fixtures/git_diff_modify_binary_file.diff
847 kallithea/tests/fixtures/git_diff_rename_file.diff
847 kallithea/tests/fixtures/git_diff_rename_file.diff
848 kallithea/tests/fixtures/git_node_history_response.json
848 kallithea/tests/fixtures/git_node_history_response.json
849 kallithea/tests/fixtures/hg_diff_add_single_binary_file.diff
849 kallithea/tests/fixtures/hg_diff_add_single_binary_file.diff
850 kallithea/tests/fixtures/hg_diff_binary_and_normal.diff
850 kallithea/tests/fixtures/hg_diff_binary_and_normal.diff
851 kallithea/tests/fixtures/hg_diff_chmod.diff
851 kallithea/tests/fixtures/hg_diff_chmod.diff
852 kallithea/tests/fixtures/hg_diff_chmod_and_mod_single_binary_file.diff
852 kallithea/tests/fixtures/hg_diff_chmod_and_mod_single_binary_file.diff
853 kallithea/tests/fixtures/hg_diff_copy_and_chmod_file.diff
853 kallithea/tests/fixtures/hg_diff_copy_and_chmod_file.diff
854 kallithea/tests/fixtures/hg_diff_copy_and_modify_file.diff
854 kallithea/tests/fixtures/hg_diff_copy_and_modify_file.diff
855 kallithea/tests/fixtures/hg_diff_copy_chmod_and_edit_file.diff
855 kallithea/tests/fixtures/hg_diff_copy_chmod_and_edit_file.diff
856 kallithea/tests/fixtures/hg_diff_copy_file.diff
856 kallithea/tests/fixtures/hg_diff_copy_file.diff
857 kallithea/tests/fixtures/hg_diff_del_single_binary_file.diff
857 kallithea/tests/fixtures/hg_diff_del_single_binary_file.diff
858 kallithea/tests/fixtures/hg_diff_mod_file_and_rename.diff
858 kallithea/tests/fixtures/hg_diff_mod_file_and_rename.diff
859 kallithea/tests/fixtures/hg_diff_mod_single_binary_file.diff
859 kallithea/tests/fixtures/hg_diff_mod_single_binary_file.diff
860 kallithea/tests/fixtures/hg_diff_mod_single_file_and_rename_and_chmod.diff
860 kallithea/tests/fixtures/hg_diff_mod_single_file_and_rename_and_chmod.diff
861 kallithea/tests/fixtures/hg_diff_rename_and_chmod_file.diff
861 kallithea/tests/fixtures/hg_diff_rename_and_chmod_file.diff
862 kallithea/tests/fixtures/hg_diff_rename_file.diff
862 kallithea/tests/fixtures/hg_diff_rename_file.diff
863 kallithea/tests/fixtures/hg_diff_rename_space_cr.diff
863 kallithea/tests/fixtures/hg_diff_rename_space_cr.diff
864 kallithea/tests/fixtures/hg_node_history_response.json
864 kallithea/tests/fixtures/hg_node_history_response.json
865 kallithea/tests/fixtures/journal_dump.csv
865 kallithea/tests/fixtures/journal_dump.csv
866 kallithea/tests/fixtures/markuptest.diff
866 kallithea/tests/fixtures/markuptest.diff
867 kallithea/tests/fixtures/vcs_test_git.tar.gz
867 kallithea/tests/fixtures/vcs_test_git.tar.gz
868 kallithea/tests/fixtures/vcs_test_hg.tar.gz
868 kallithea/tests/fixtures/vcs_test_hg.tar.gz
869 kallithea/tests/functional/
869 kallithea/tests/functional/
870 kallithea/tests/functional/__init__.py
870 kallithea/tests/functional/__init__.py
871 kallithea/tests/functional/test_admin.py
871 kallithea/tests/functional/test_admin.py
872 kallithea/tests/functional/test_admin_auth_settings.py
872 kallithea/tests/functional/test_admin_auth_settings.py
873 kallithea/tests/functional/test_admin_defaults.py
873 kallithea/tests/functional/test_admin_defaults.py
874 kallithea/tests/functional/test_admin_gists.py
874 kallithea/tests/functional/test_admin_gists.py
875 kallithea/tests/functional/test_admin_notifications.py
875 kallithea/tests/functional/test_admin_notifications.py
876 kallithea/tests/functional/test_admin_permissions.py
876 kallithea/tests/functional/test_admin_permissions.py
877 kallithea/tests/functional/test_admin_repo_groups.py
877 kallithea/tests/functional/test_admin_repo_groups.py
878 kallithea/tests/functional/test_admin_repos.py
878 kallithea/tests/functional/test_admin_repos.py
879 kallithea/tests/functional/test_admin_settings.py
879 kallithea/tests/functional/test_admin_settings.py
880 kallithea/tests/functional/test_admin_user_groups.py
880 kallithea/tests/functional/test_admin_user_groups.py
881 kallithea/tests/functional/test_admin_users.py
881 kallithea/tests/functional/test_admin_users.py
882 kallithea/tests/functional/test_branches.py
882 kallithea/tests/functional/test_branches.py
883 kallithea/tests/functional/test_changelog.py
883 kallithea/tests/functional/test_changelog.py
884 kallithea/tests/functional/test_changeset.py
884 kallithea/tests/functional/test_changeset.py
885 kallithea/tests/functional/test_changeset_comments.py
885 kallithea/tests/functional/test_changeset_comments.py
886 kallithea/tests/functional/test_compare.py
886 kallithea/tests/functional/test_compare.py
887 kallithea/tests/functional/test_compare_local.py
887 kallithea/tests/functional/test_compare_local.py
888 kallithea/tests/functional/test_feed.py
888 kallithea/tests/functional/test_feed.py
889 kallithea/tests/functional/test_files.py
889 kallithea/tests/functional/test_files.py
890 kallithea/tests/functional/test_followers.py
890 kallithea/tests/functional/test_followers.py
891 kallithea/tests/functional/test_forks.py
891 kallithea/tests/functional/test_forks.py
892 kallithea/tests/functional/test_home.py
892 kallithea/tests/functional/test_home.py
893 kallithea/tests/functional/test_journal.py
893 kallithea/tests/functional/test_journal.py
894 kallithea/tests/functional/test_login.py
894 kallithea/tests/functional/test_login.py
895 kallithea/tests/functional/test_my_account.py
895 kallithea/tests/functional/test_my_account.py
896 kallithea/tests/functional/test_pullrequests.py
896 kallithea/tests/functional/test_pullrequests.py
897 kallithea/tests/functional/test_repo_groups.py
897 kallithea/tests/functional/test_repo_groups.py
898 kallithea/tests/functional/test_search.py
898 kallithea/tests/functional/test_search.py
899 kallithea/tests/functional/test_summary.py
899 kallithea/tests/functional/test_summary.py
900 kallithea/tests/functional/test_tags.py
900 kallithea/tests/functional/test_tags.py
901 kallithea/tests/models/
901 kallithea/tests/models/
902 kallithea/tests/models/__init__.py
902 kallithea/tests/models/__init__.py
903 kallithea/tests/models/common.py
903 kallithea/tests/models/common.py
904 kallithea/tests/models/test_changeset_status.py
904 kallithea/tests/models/test_changeset_status.py
905 kallithea/tests/models/test_diff_parsers.py
905 kallithea/tests/models/test_diff_parsers.py
906 kallithea/tests/models/test_notifications.py
906 kallithea/tests/models/test_notifications.py
907 kallithea/tests/models/test_permissions.py
907 kallithea/tests/models/test_permissions.py
908 kallithea/tests/models/test_repo_groups.py
908 kallithea/tests/models/test_repo_groups.py
909 kallithea/tests/models/test_repos.py
909 kallithea/tests/models/test_repos.py
910 kallithea/tests/models/test_user_group_permissions_on_repo_groups.py
910 kallithea/tests/models/test_user_group_permissions_on_repo_groups.py
911 kallithea/tests/models/test_user_groups.py
911 kallithea/tests/models/test_user_groups.py
912 kallithea/tests/models/test_user_permissions_on_repo_groups.py
912 kallithea/tests/models/test_user_permissions_on_repo_groups.py
913 kallithea/tests/models/test_user_permissions_on_repos.py
913 kallithea/tests/models/test_user_permissions_on_repos.py
914 kallithea/tests/models/test_users.py
914 kallithea/tests/models/test_users.py
915 kallithea/tests/other/
915 kallithea/tests/other/
916 kallithea/tests/other/__init__.py
916 kallithea/tests/other/__init__.py
917 kallithea/tests/other/manual_test_vcs_operations.py
917 kallithea/tests/other/manual_test_vcs_operations.py
918 kallithea/tests/other/test_libs.py
918 kallithea/tests/other/test_libs.py
919 kallithea/tests/other/test_mail.py
919 kallithea/tests/other/test_mail.py
920 kallithea/tests/other/test_validators.py
920 kallithea/tests/other/test_validators.py
921 kallithea/tests/parameterized.py
921 kallithea/tests/parameterized.py
922 kallithea/tests/scripts/
922 kallithea/tests/scripts/
923 kallithea/tests/scripts/create_rc.sh
923 kallithea/tests/scripts/create_rc.sh
924 kallithea/tests/scripts/manual_test_concurrency.py
924 kallithea/tests/scripts/manual_test_concurrency.py
925 kallithea/tests/scripts/manual_test_crawler.py
925 kallithea/tests/scripts/manual_test_crawler.py
926 kallithea/tests/scripts/mem_watch
926 kallithea/tests/scripts/mem_watch
927 kallithea/tests/test.ini
927 kallithea/tests/test.ini
928 kallithea/tests/vcs/
928 kallithea/tests/vcs/
929 kallithea/tests/vcs/__init__.py
929 kallithea/tests/vcs/__init__.py
930 kallithea/tests/vcs/aconfig
930 kallithea/tests/vcs/aconfig
931 kallithea/tests/vcs/base.py
931 kallithea/tests/vcs/base.py
932 kallithea/tests/vcs/conf.py
932 kallithea/tests/vcs/conf.py
933 kallithea/tests/vcs/test_archives.py
933 kallithea/tests/vcs/test_archives.py
934 kallithea/tests/vcs/test_branches.py
934 kallithea/tests/vcs/test_branches.py
935 kallithea/tests/vcs/test_changesets.py
935 kallithea/tests/vcs/test_changesets.py
936 kallithea/tests/vcs/test_filenodes_unicode_path.py
936 kallithea/tests/vcs/test_filenodes_unicode_path.py
937 kallithea/tests/vcs/test_getitem.py
937 kallithea/tests/vcs/test_getitem.py
938 kallithea/tests/vcs/test_getslice.py
938 kallithea/tests/vcs/test_getslice.py
939 kallithea/tests/vcs/test_git.py
939 kallithea/tests/vcs/test_git.py
940 kallithea/tests/vcs/test_hg.py
940 kallithea/tests/vcs/test_hg.py
941 kallithea/tests/vcs/test_inmemchangesets.py
941 kallithea/tests/vcs/test_inmemchangesets.py
942 kallithea/tests/vcs/test_nodes.py
942 kallithea/tests/vcs/test_nodes.py
943 kallithea/tests/vcs/test_repository.py
943 kallithea/tests/vcs/test_repository.py
944 kallithea/tests/vcs/test_tags.py
944 kallithea/tests/vcs/test_tags.py
945 kallithea/tests/vcs/test_utils.py
945 kallithea/tests/vcs/test_utils.py
946 kallithea/tests/vcs/test_utils_filesize.py
946 kallithea/tests/vcs/test_utils_filesize.py
947 kallithea/tests/vcs/test_vcs.py
947 kallithea/tests/vcs/test_vcs.py
948 kallithea/tests/vcs/test_workdirs.py
948 kallithea/tests/vcs/test_workdirs.py
949 kallithea/tests/vcs/utils.py
949 kallithea/tests/vcs/utils.py
950 kallithea/websetup.py
950 kallithea/websetup.py
951 setup.cfg
951 setup.cfg
952 setup.py
952 setup.py
General Comments 0
You need to be logged in to leave comments. Login now