James Moger
2012-10-31 9ba9be513a347ea9893c51f2db6b13f6c7cb08dd
commit | author | age
f98825 1 #
JM 2 # Git Servlet Settings
3 #
4
b86562 5 # Base folder for repositories.
JM 6 # This folder may contain bare and non-bare repositories but Gitblit will only
7 # allow you to push to bare repositories.
f98825 8 # Use forward slashes even on Windows!!
1f9dae 9 # e.g. c:/gitrepos
373a96 10 #
JM 11 # SINCE 0.5.0
12 # RESTART REQUIRED
2a7306 13 git.repositoriesFolder = git
f98825 14
fee060 15 # Build the available repository list at startup and cache this list for reuse.
JM 16 # This reduces disk io when presenting the repositories page, responding to rpcs,
17 # etc, but it means that  Gitblit will not automatically identify repositories
18 # added or deleted by external tools.
19 #
20 # For this case you can use curl, wget, etc to issue an rpc request to clear the
21 # cache (e.g. https://localhost/rpc?req=CLEAR_REPOSITORY_CACHE)
22 #
23 # SINCE 1.1.0
24 git.cacheRepositoryList = true
25
a125cf 26 # Search the repositories folder subfolders for other repositories.
JM 27 # Repositories MAY NOT be nested (i.e. one repository within another)
28 # but they may be grouped together in subfolders.
1f9dae 29 # e.g. c:/gitrepos/libraries/mylibrary.git
a125cf 30 #      c:/gitrepos/libraries/myotherlibrary.git
373a96 31 #
JM 32 # SINCE 0.5.0
a125cf 33 git.searchRepositoriesSubfolders = true
f98825 34
65f55e 35 # Maximum number of folders to recurse into when searching for repositories.
JM 36 # The default value, -1, disables depth limits.
37 #
fee060 38 # SINCE 1.1.0
65f55e 39 git.searchRecursionDepth = -1
JM 40
0adceb 41 # List of regex exclusion patterns to match against folders found in
JM 42 # *git.repositoriesFolder*.
43 # Use forward slashes even on Windows!!
44 # e.g. test/jgit\.git
45 #
46 # SPACE-DELIMITED
47 # CASE-SENSITIVE
fee060 48 # SINCE 1.1.0
0adceb 49 git.searchExclusions =
JM 50
eb870f 51 # List of regex url patterns for extracting a repository name when locating
JM 52 # submodules.
53 #   e.g. git.submoduleUrlPatterns = .*?://github.com/(.*) will extract
54 #   *gitblit/gitblit.git* from *git://github.com/gitblit/gitblit.git*
55 # If no matches are found then the submodule repository name is assumed to be
56 # whatever trails the last / character. (e.g. gitblit.git).
57 #
58 # SPACE-DELIMITED
59 # CASE-SENSITIVE
fee060 60 # SINCE 1.1.0
eb870f 61 git.submoduleUrlPatterns = .*?://github.com/(.*)
JM 62
85c2e6 63 # Allow push/pull over http/https with JGit servlet.
ed21d2 64 # If you do NOT want to allow Git clients to clone/push to Gitblit set this
JM 65 # to false.  You might want to do this if you are only using ssh:// or git://.
a3f474 66 # If you set this false, consider changing the *web.otherUrls* setting to
ed21d2 67 # indicate your clone/push urls.
373a96 68 #
JM 69 # SINCE 0.5.0
85c2e6 70 git.enableGitServlet = true
JM 71
b86562 72 # Only serve/display bare repositories.
JM 73 # If there are non-bare repositories in git.repositoriesFolder and this setting
74 # is true, they will be excluded from the ui. 
75 #
76 # SINCE 0.9.0
77 git.onlyAccessBareRepositories = false
78
72cb19 79 # Allow an authenticated user to create a destination repository on a push if
JM 80 # the repository does not already exist.
81 #
82 # Administrator accounts can create a repository in any project.
83 # These repositories are created with the default access restriction and authorization
84 # control values.  The pushing account is set as the owner.
85 #
86 # Non-administrator accounts with the CREATE role may create personal repositories.
87 # These repositories are created as VIEW restricted for NAMED users.
88 # The pushing account is set as the owner.
89 #
90 # SINCE 1.2.0
91 git.allowCreateOnPush = true
92
94dcbd 93 # The default access restriction for new repositories.
JM 94 # Valid values are NONE, PUSH, CLONE, VIEW
95 #  NONE = anonymous view, clone, & push
96 #  PUSH = anonymous view & clone and authenticated push
97 #  CLONE = anonymous view, authenticated clone & push
98 #  VIEW = authenticated view, clone, & push
99 #
100 # SINCE 1.0.0
101 git.defaultAccessRestriction = NONE
102
6adf56 103 # The default authorization control for new repositories.
JM 104 # Valid values are AUTHENTICATED and NAMED
105 #  AUTHENTICATED = any authenticated user is granted restricted access
106 #  NAMED = only named users/teams are granted restricted access
107 #
fee060 108 # SINCE 1.1.0
6adf56 109 git.defaultAuthorizationControl = NAMED
JM 110
e92c6d 111 # Enable JGit-based garbage collection. (!!EXPERIMENTAL!!)
JM 112 #
e26d93 113 # USE AT YOUR OWN RISK!
JM 114 #
e92c6d 115 # If enabled, the garbage collection executor scans all repositories once a day
JM 116 # at the hour of your choosing.  The GC executor will take each repository "offline",
117 # one-at-a-time, to check if the repository satisfies it's GC trigger requirements.
118 #
119 # While the repository is offline it will be inaccessible from the web UI or from
120 # any of the other services (git, rpc, rss, etc).
121 #
122 # Gitblit's GC Executor MAY NOT PLAY NICE with the other Git kids on the block,
123 # especially on Windows systems, so if you are using other tools please coordinate
124 # their usage with your GC Executor schedule or do not use this feature.
125 #
126 # The GC algorithm complex and the JGit team advises caution when using their
127 # young implementation of GC.
128 #
129 # http://wiki.eclipse.org/EGit/New_and_Noteworthy/2.1#Garbage_Collector_and_Repository_Storage_Statistics
130 #
131 # EXPERIMENTAL
132 # SINCE 1.2.0
133 # RESTART REQUIRED
134 git.enableGarbageCollection = false
135
136 # Hour of the day for the GC Executor to scan repositories.
137 # This value is in 24-hour time.
138 #
139 # SINCE 1.2.0
140 git.garbageCollectionHour = 0
141
142 # The default minimum total filesize of loose objects to trigger early garbage
143 # collection.
144 #
145 # You may specify a custom threshold for a repository in the repository's settings.
146 # Common unit suffixes of k, m, or g are supported.
147 #
148 # SINCE 1.2.0
149 git.defaultGarbageCollectionThreshold = 500k
150
e26d93 151 # The default period, in days, between GCs for a repository.  If the total filesize
JM 152 # of the loose object exceeds *git.garbageCollectionThreshold* or the repository's
e92c6d 153 # custom threshold, this period will be short-circuited. 
JM 154 #
155 # e.g. if a repository collects 100KB of loose objects every day with a 500KB
156 # threshold and a period of 7 days, it will take 5 days for the loose objects to
157 # be collected, packed, and pruned.
158 #
159 # OR
160 #
161 # if a repository collects 10KB of loose objects every day with a 500KB threshold
162 # and a period of 7 days, it will take the full 7 days for the loose objects to be
163 # collected, packed, and pruned.
164 #
165 # You may specify a custom period for a repository in the repository's settings.
166 #
167 # The minimum value is 1 day since the GC Executor only runs once a day.
168 #
169 # SINCE 1.2.0
e26d93 170 git.defaultGarbageCollectionPeriod = 7
e92c6d 171
478678 172 # Number of bytes of a pack file to load into memory in a single read operation.
JM 173 # This is the "page size" of the JGit buffer cache, used for all pack access
174 # operations. All disk IO occurs as single window reads. Setting this too large
175 # may cause the process to load more data than is required; setting this too small
176 # may increase the frequency of read() system calls.
177 #
178 # Default on JGit is 8 KiB on all platforms.
179 #
180 # Common unit suffixes of k, m, or g are supported.
e4547f 181 # Documentation courtesy of the Gerrit project.
478678 182 #
JM 183 # SINCE 1.0.0
184 # RESTART REQUIRED
185 git.packedGitWindowSize = 8k
186
187 # Maximum number of bytes to load and cache in memory from pack files. If JGit
188 # needs to access more than this many bytes it will unload less frequently used
189 # windows to reclaim memory space within the process. As this buffer must be shared
190 # with the rest of the JVM heap, it should be a fraction of the total memory available.
191 #
192 # The JGit team recommends setting this value larger than the size of your biggest
193 # repository. This ensures you can serve most requests from memory.
194 #
195 # Default on JGit is 10 MiB on all platforms.
196 #
197 # Common unit suffixes of k, m, or g are supported.
e4547f 198 # Documentation courtesy of the Gerrit project.
478678 199 #
JM 200 # SINCE 1.0.0
201 # RESTART REQUIRED
202 git.packedGitLimit = 10m
203
204 # Maximum number of bytes to reserve for caching base objects that multiple deltafied
205 # objects reference. By storing the entire decompressed base object in a cache Git
206 # is able to avoid unpacking and decompressing frequently used base objects multiple times.
207 #
208 # Default on JGit is 10 MiB on all platforms. You probably do not need to adjust
209 # this value.
210 #
211 # Common unit suffixes of k, m, or g are supported.
e4547f 212 # Documentation courtesy of the Gerrit project.
478678 213 #
JM 214 # SINCE 1.0.0
215 # RESTART REQUIRED
216 git.deltaBaseCacheLimit = 10m
217
218 # Maximum number of pack files to have open at once. A pack file must be opened
219 # in order for any of its data to be available in a cached window.
220 #
221 # If you increase this to a larger setting you may need to also adjust the ulimit
222 # on file descriptors for the host JVM, as Gitblit needs additional file descriptors
223 # available for network sockets and other repository data manipulation.
224 #
225 # Default on JGit is 128 file descriptors on all platforms.
e4547f 226 # Documentation courtesy of the Gerrit project.
478678 227 #
JM 228 # SINCE 1.0.0
229 # RESTART REQUIRED
230 git.packedGitOpenFiles = 128
231
232 # Largest object size, in bytes, that JGit will allocate as a contiguous byte
233 # array. Any file revision larger than this threshold will have to be streamed,
234 # typically requiring the use of temporary files under $GIT_DIR/objects to implement
235 # psuedo-random access during delta decompression.
236 #
237 # Servers with very high traffic should set this to be larger than the size of
238 # their common big files. For example a server managing the Android platform
239 # typically has to deal with ~10-12 MiB XML files, so 15 m would be a reasonable
240 # setting in that environment. Setting this too high may cause the JVM to run out
241 # of heap space when handling very big binary files, such as device firmware or
242 # CD-ROM ISO images. Make sure to adjust your JVM heap accordingly. 
243 #
244 # Default is 50 MiB on all platforms.
245 #
246 # Common unit suffixes of k, m, or g are supported.
e4547f 247 # Documentation courtesy of the Gerrit project.
478678 248 #
JM 249 # SINCE 1.0.0
250 # RESTART REQUIRED
251 git.streamFileThreshold = 50m
252
253 # When true, JGit will use mmap() rather than malloc()+read() to load data from
254 # pack files.  The use of mmap can be problematic on some JVMs as the garbage
255 # collector must deduce that a memory mapped segment is no longer in use before
256 # a call to munmap() can be made by the JVM native code.
257 #
258 # In server applications (such as Gitblit) that need to access many pack files,
259 # setting this to true risks artificially running out of virtual address space, 
260 # as the garbage collector cannot reclaim unused mapped spaces fast enough.
261 #
262 # Default on JGit is false. Although potentially slower, it yields much more
263 # predictable behavior.
e4547f 264 # Documentation courtesy of the Gerrit project.
478678 265 #
JM 266 # SINCE 1.0.0
267 # RESTART REQUIRED
268 git.packedGitMmap = false
269
f98825 270 #
fa54be 271 # Groovy Integration
JM 272 #
273
274 # Location of Groovy scripts to use for Pre and Post receive hooks.
275 # Use forward slashes even on Windows!!
276 # e.g. c:/groovy
277 #
6cc1d4 278 # RESTART REQUIRED
fa54be 279 # SINCE 0.8.0
JM 280 groovy.scriptsFolder = groovy
281
67d4f8 282 # Specify the directory Grape uses for downloading libraries.
JM 283 # http://groovy.codehaus.org/Grape
284 #
285 # RESTART REQUIRED
286 # SINCE 1.0.0
287 groovy.grapeFolder = groovy/grape
288
fa54be 289 # Scripts to execute on Pre-Receive.
JM 290 #
291 # These scripts execute after an incoming push has been parsed and validated
292 # but BEFORE the changes are applied to the repository.  You might reject a
293 # push in this script based on the repository and branch the push is attempting
294 # to change.
295 #
6cc1d4 296 # Script names are case-sensitive on case-sensitive file systems.  You may omit
JM 297 # the traditional ".groovy" from this list if your file extension is ".groovy" 
298 #
fa54be 299 # NOTE:
JM 300 # These scripts are only executed when pushing to *Gitblit*, not to other Git
301 # tooling you may be using.  Also note that these scripts are shared between
302 # repositories. These are NOT repository-specific scripts!  Within the script
303 # you may customize the control-flow for a specific repository by checking the
304 # *repository* variable.
305 #
306 # SPACE-DELIMITED
6cc1d4 307 # CASE-SENSITIVE
fa54be 308 # SINCE 0.8.0
JM 309 groovy.preReceiveScripts =
310
311 # Scripts to execute on Post-Receive.
312 #
313 # These scripts execute AFTER an incoming push has been applied to a repository.
314 # You might trigger a continuous-integration build here or send a notification.
6cc1d4 315 #
JM 316 # Script names are case-sensitive on case-sensitive file systems.  You may omit
317 # the traditional ".groovy" from this list if your file extension is ".groovy" 
fa54be 318 #
JM 319 # NOTE:
320 # These scripts are only executed when pushing to *Gitblit*, not to other Git
321 # tooling you may be using.  Also note that these scripts are shared between
322 # repositories. These are NOT repository-specific scripts!  Within the script
323 # you may customize the control-flow for a specific repository by checking the
324 # *repository* variable.
325
326 # SPACE-DELIMITED
6cc1d4 327 # CASE-SENSITIVE
fa54be 328 # SINCE 0.8.0
JM 329 groovy.postReceiveScripts =
330
380afa 331 # Repository custom fields for Groovy Hook mechanism
JM 332 #
333 # List of key=label pairs of custom fields to prompt for in the Edit Repository
334 # page.  These keys are stored in the repository's git config file in the 
335 # section [gitblit "customFields"].  Key names are alphanumeric only.  These
336 # fields are intended to be used for the Groovy hook mechanism where a script
337 # can adjust it's execution based on the custom fields stored in the repository
338 # config.
339 #
340 # e.g. "commitMsgRegex=Commit Message Regular Expression" anotherProperty=Another
341 #
342 # SPACE-DELIMITED
343 # SINCE 1.0.0
344 groovy.customFields = 
345
fa54be 346 #
f98825 347 # Authentication Settings
JM 348 #
349
350 # Require authentication to see everything but the admin pages
373a96 351 #
JM 352 # SINCE 0.5.0
353 # RESTART REQUIRED
f98825 354 web.authenticateViewPages = false
JM 355
356 # Require admin authentication for the admin functions and pages
373a96 357 #
JM 358 # SINCE 0.5.0
359 # RESTART REQUIRED
f98825 360 web.authenticateAdminPages = true
JM 361
85c2e6 362 # Allow Gitblit to store a cookie in the user's browser for automatic
JM 363 # authentication.  The cookie is generated by the user service.
373a96 364 #
JM 365 # SINCE 0.5.0
85c2e6 366 web.allowCookieAuthentication = true
JM 367
13a3f5 368 # Config file for storing project metadata
JM 369 #
370 # SINCE 1.2.0
371 web.projectsFile = projects.conf
372
93f472 373 # Either the full path to a user config file (users.conf)
JM 374 # OR the full path to a simple user properties file (users.properties)
85c2e6 375 # OR a fully qualified class name that implements the IUserService interface.
6e15cb 376 #
JM 377 # Alternative user services:
378 #    com.gitblit.LdapUserService
98ba4e 379 #    com.gitblit.RedmineUserService
6e15cb 380 #
JM 381 # Any custom user service implementation must have a public default constructor.
373a96 382 #
JM 383 # SINCE 0.5.0
384 # RESTART REQUIRED
93f472 385 realm.userService = users.conf
f98825 386
JM 387 # How to store passwords.
d5623a 388 # Valid values are plain, md5, or combined-md5.  md5 is the hash of password.
JM 389 # combined-md5 is the hash of username.toLowerCase()+password.
390 # Default is md5.
373a96 391 #
JM 392 # SINCE 0.5.0 
f98825 393 realm.passwordStorage = md5
JM 394
a098da 395 # Minimum valid length for a plain text password.
373a96 396 # Default value is 5.  Absolute minimum is 4.
JM 397 #
398 # SINCE 0.5.0 
a098da 399 realm.minPasswordLength = 5
7e0ce4 400
f98825 401 #
f13c4c 402 # Gitblit Web Settings
f98825 403 #
f13c4c 404 # If blank Gitblit is displayed.
373a96 405 #
JM 406 # SINCE 0.5.0
f98825 407 web.siteName =
JM 408
a3f474 409 # If *web.authenticateAdminPages*=true, users with "admin" role can create
1f9dae 410 # repositories, create users, and edit repository metadata.
f98825 411 #
a3f474 412 # If *web.authenticateAdminPages*=false, any user can execute the aforementioned
373a96 413 # functions. 
JM 414 #
415 # SINCE 0.5.0 
f98825 416 web.allowAdministration = true
JM 417
cd8f9d 418 # Allows rpc clients to list repositories and possibly manage or administer the 
JM 419 # Gitblit server, if the authenticated account has administrator permissions.
420 # See *web.enableRpcManagement* and *web.enableRpcAdministration*.
93f0b1 421 #
13b838 422 # SINCE 0.7.0 
841651 423 web.enableRpcServlet = true
JM 424
cd8f9d 425 # Allows rpc clients to manage repositories and users of the Gitblit instance,
d03aff 426 # if the authenticated account has administrator permissions.
JM 427 # Requires *web.enableRpcServlet=true*.
428 #
429 # SINCE 0.7.0 
430 web.enableRpcManagement = false
431
cd8f9d 432 # Allows rpc clients to control the server settings and monitor the health of this
JM 433 # this Gitblit instance, if the authenticated account has administrator permissions.
d03aff 434 # Requires *web.enableRpcServlet=true* and *web.enableRpcManagement*.
841651 435 #
13b838 436 # SINCE 0.7.0 
841651 437 web.enableRpcAdministration = false
93f0b1 438
27506b 439 # Full path to a configurable robots.txt file.  With this file you can control
JM 440 # what parts of your Gitblit server respectable robots are allowed to traverse.
441 # http://googlewebmastercentral.blogspot.com/2008/06/improving-on-robots-exclusion-protocol.html
442 #
443 # SINCE 1.0.0
444 web.robots.txt = 
445
62cec2 446 # If true, the web ui layout will respond and adapt to the browser's dimensions.
JM 447 # if false, the web ui will use a 940px fixed-width layout.
448 # http://twitter.github.com/bootstrap/scaffolding.html#responsive
449 #
450 # SINCE 1.0.0
451 web.useResponsiveLayout = true
452
9dcd53 453 # Allow Gravatar images to be displayed in Gitblit pages.
JM 454 #
455 # SINCE 0.8.0
456 web.allowGravatar = true
457
373a96 458 # Allow dynamic zip downloads.
JM 459 #
460 # SINCE 0.5.0   
9197d3 461 web.allowZipDownloads = true
JM 462
7db092 463 # Allow optional Lucene integration. Lucene indexing is an opt-in feature.
JM 464 # A repository may specify branches to index with Lucene instead of using Git
465 # commit traversal. There are scenarios where you may want to completely disable
466 # Lucene indexing despite a repository specifying indexed branches.  One such
467 # scenario is on a resource-constrained federated Gitblit mirror.
468 #
469 # SINCE 0.9.0
470 web.allowLuceneIndexing = true
471
3b6904 472 # Use Clippy (Flash solution) to provide a copy-to-clipboard button.
JM 473 # If false, a button with a more primitive JavaScript-based prompt box will
474 # offer a 3-step (click, ctrl+c, enter) copy-to-clipboard alternative.
475 #
476 # SINCE 0.8.0
477 web.allowFlashCopyToClipboard = true
478
85c2e6 479 # Default number of entries to include in RSS Syndication links
373a96 480 #
JM 481 # SINCE 0.5.0
c22722 482 web.syndicationEntries = 25
JM 483
5c2841 484 # Show the size of each repository on the repositories page.
JM 485 # This requires recursive traversal of each repository folder.  This may be
486 # non-performant on some operating systems and/or filesystems. 
487 #
488 # SINCE 0.5.2
489 web.showRepositorySizes = true
490
31bcbe 491 # List of custom regex expressions that can be displayed in the Filters menu
JM 492 # of the Repositories and Activity pages.  Keep them very simple because you
493 # are likely to run into encoding issues if they are too complex.
494 #
495 # Use !!! to separate the filters 
496 #
497 # SINCE 0.8.0
498 web.customFilters =
499
831469 500 # Show federation registrations (without token) and the current pull status
JM 501 # to non-administrator users. 
502 #
503 # SINCE 0.6.0
504 web.showFederationRegistrations = false
505
8c5d72 506 # This is the message displayed when *web.authenticateViewPages=true*.
JM 507 # This can point to a file with Markdown content.
508 # Specifying "gitblit" uses the internal login message.
509 #
70b492 510 # SINCE 0.7.0
8c5d72 511 web.loginMessage = gitblit
JM 512
513 # This is the message displayed above the repositories table.
f98825 514 # This can point to a file with Markdown content.
JM 515 # Specifying "gitblit" uses the internal welcome message.
373a96 516 #
JM 517 # SINCE 0.5.0
f98825 518 web.repositoriesMessage = gitblit
JM 519
ae9e15 520 # Ordered list of charsets/encodings to use when trying to display a blob.
JM 521 # If empty, UTF-8 and ISO-8859-1 are used.  The server's default charset
522 # is always appended to the encoding list.  If all encodings fail to cleanly
523 # decode the blob content, UTF-8 will be used with the standard malformed
524 # input/unmappable character replacement strings.
525
526 # SPACE-DELIMITED
527 # SINCE 1.0.0
528 web.blobEncodings = UTF-8 ISO-8859-1
529
6c6e7d 530 # Manually set the default timezone to be used by Gitblit for display in the 
JM 531 # web ui.  This value is independent of the JVM timezone.  Specifying a blank
532 # value will default to the JVM timezone.
533 # e.g. America/New_York, US/Pacific, UTC, Europe/Berlin
534 #
535 # SINCE 0.9.0
536 # RESTART REQUIRED
537 web.timezone =
538
f98825 539 # Use the client timezone when formatting dates.
85c2e6 540 # This uses AJAX to determine the browser's timezone and may require more
JM 541 # server overhead because a Wicket session is created.  All Gitblit pages
542 # attempt to be stateless, if possible.
373a96 543 #
JM 544 # SINCE 0.5.0
545 # RESTART REQUIRED
f98825 546 web.useClientTimezone = false
JM 547
6e6f9f 548 # Time format
JM 549 # <http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html>
550 #
551 # SINCE 0.8.0
552 web.timeFormat = HH:mm
553
a3f474 554 # Short date format
JM 555 # <http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html>
373a96 556 #
JM 557 # SINCE 0.5.0
f98825 558 web.datestampShortFormat = yyyy-MM-dd
6e6f9f 559
JM 560 # Long date format
561 #
562 # SINCE 0.8.0
563 web.datestampLongFormat = EEEE, MMMM d, yyyy
a3f474 564
JM 565 # Long timestamp format
566 # <http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html>
567 #
568 # SINCE 0.5.0
a4ed6d 569 web.datetimestampLongFormat = EEEE, MMMM d, yyyy HH:mm Z
f98825 570
a3f474 571 # Mount URL parameters
JM 572 # This setting controls if pretty or parameter URLs are used.
573 # i.e.
7e5ee5 574 # if true:
JM 575 #     http://localhost/commit/myrepo/abcdef
576 # if false:
577 #     http://localhost/commit/?r=myrepo&h=abcdef
373a96 578 #
JM 579 # SINCE 0.5.0
580 # RESTART REQUIRED
b01ca0 581 web.mountParameters = true
JM 582
7e5ee5 583 # Some servlet containers (e.g. Tomcat >= 6.0.10) disallow '/' (%2F) encoding
JM 584 # in URLs as a security precaution for proxies.  This setting tells Gitblit
585 # to preemptively replace '/' with '*' or '!' for url string parameters.
586 #
587 # <https://issues.apache.org/jira/browse/WICKET-1303>
486ee1 588 # <http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10>
3cc6e2 589 # Add *-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true* to your
JM 590 # *CATALINA_OPTS* or to your JVM launch parameters
7e5ee5 591 #
JM 592 # SINCE 0.5.2
593 web.forwardSlashCharacter = /
594
17c417 595 # Show other URLs on the summary page for accessing your git repositories
JM 596 # Use spaces to separate urls. {0} is the token for the repository name.
1f9dae 597 # e.g.
17c417 598 # web.otherUrls = ssh://localhost/git/{0} git://localhost/git/{0}
373a96 599 #
ae9e15 600 # SPACE-DELIMITED
373a96 601 # SINCE 0.5.0
17c417 602 web.otherUrls = 
JM 603
00afd7 604 # Choose how to present the repositories list.
1f9dae 605 #   grouped = group nested/subfolder repositories together (no sorting)
JM 606 #   flat = flat list of repositories (sorting allowed)
373a96 607 #
JM 608 # SINCE 0.5.0
a4d249 609 web.repositoryListType = grouped
00afd7 610
JM 611 # If using a grouped repository list and there are repositories at the
612 # root level of your repositories folder, you may specify the displayed
613 # group name with this setting.  This value is only used for web presentation.
373a96 614 #
JM 615 # SINCE 0.5.0
00afd7 616 web.repositoryRootGroupName = main
JM 617
309c55 618 # Display the repository swatch color next to the repository name link in the 
JM 619 # repositories list. 
620 #
621 # SINCE 0.8.0
622 web.repositoryListSwatches = true
623
f98825 624 # Choose the diff presentation style: gitblt, gitweb, or plain
373a96 625 #
JM 626 # SINCE 0.5.0
f98825 627 web.diffStyle = gitblit
JM 628
629 # Control if email addresses are shown in web ui
373a96 630 #
JM 631 # SINCE 0.5.0
f98825 632 web.showEmailAddresses = true
JM 633
634 # Shows a combobox in the page links header with commit, committer, and author
635 # search selection.  Default search is commit.
373a96 636 #
JM 637 # SINCE 0.5.0
f98825 638 web.showSearchTypeSelection = false
JM 639
640 # Generates a line graph of repository activity over time on the Summary page.
373a96 641 # This uses the Google Charts API.
JM 642 #
643 # SINCE 0.5.0 
f98825 644 web.generateActivityGraph = true
JM 645
6e6f9f 646 # The number of days to show on the activity page.
JM 647 # Value must exceed 0 else default of 14 is used
648 #
649 # SINCE 0.8.0
650 web.activityDuration = 14
651
f98825 652 # The number of commits to display on the summary page
JM 653 # Value must exceed 0 else default of 20 is used
373a96 654 #
JM 655 # SINCE 0.5.0
f98825 656 web.summaryCommitCount = 16
JM 657
85c2e6 658 # The number of tags/branches to display on the summary page.
JM 659 # -1 = all tags/branches
660 # 0 = hide tags/branches
661 # N = N tags/branches
373a96 662 #
JM 663 # SINCE 0.5.0
f98825 664 web.summaryRefsCount = 5
JM 665
666 # The number of items to show on a page before showing the first, prev, next
667 # pagination links.  A default if 50 is used for any invalid value.
373a96 668 #
JM 669 # SINCE 0.5.0
f98825 670 web.itemsPerPage = 50
JM 671
f1d2ad 672 # Registered file extensions to ignore during Lucene indexing
JM 673 #
674 # SPACE-DELIMITED
675 # SINCE 0.9.0
676 web.luceneIgnoreExtensions = 7z arc arj bin bmp dll doc docx exe gif gz jar jpg lib lzh odg odf odt pdf ppt png so swf xcf xls xlsx zip
677
f98825 678 # Registered extensions for google-code-prettify
373a96 679 #
8f73a7 680 # SPACE-DELIMITED
373a96 681 # SINCE 0.5.0
9ba9be 682 web.prettyPrintExtensions = c cpp cs css frm htm html java js php pl prefs properties py rb sh sql xml vb
f98825 683
JM 684 # Registered extensions for markdown transformation
373a96 685 #
8f73a7 686 # SPACE-DELIMITED
373a96 687 # CASE-SENSITIVE
JM 688 # SINCE 0.5.0
1f9dae 689 web.markdownExtensions = md mkd markdown MD MKD
f98825 690
JM 691 # Image extensions
373a96 692 #
8f73a7 693 # SPACE-DELIMITED
373a96 694 # SINCE 0.5.0
f98825 695 web.imageExtensions = bmp jpg gif png 
JM 696
697 # Registered extensions for binary blobs
373a96 698 #
8f73a7 699 # SPACE-DELIMITED
373a96 700 # SINCE 0.5.0
f98825 701 web.binaryExtensions = jar pdf tar.gz zip
JM 702
703 # Aggressive heap management will run the garbage collector on every generated
1f9dae 704 # page.  This slows down page generation a little but improves heap consumption. 
373a96 705 #
JM 706 # SINCE 0.5.0
85c2e6 707 web.aggressiveHeapManagement = false
f98825 708
JM 709 # Run the webapp in debug mode
373a96 710 #
JM 711 # SINCE 0.5.0
712 # RESTART REQUIRED
f98825 713 web.debugMode = false
JM 714
715 # Enable/disable global regex substitutions (i.e. shared across repositories)
373a96 716 #
JM 717 # SINCE 0.5.0
f98825 718 regex.global = true
JM 719
720 # Example global regex substitutions
721 # Use !!! to separate the search pattern and the replace pattern
722 # searchpattern!!!replacepattern
fc42a5 723 # SINCE 0.5.0
5450d0 724 regex.global.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://somehost/bug/$3">Bug-Id: $3</a>
fc42a5 725 # SINCE 0.5.0
5450d0 726 regex.global.changeid = \\b(Change-Id:\\s*)([A-Za-z0-9]*)\\b!!!<a href="http://somehost/changeid/$2">Change-Id: $2</a>
f98825 727
JM 728 # Example per-repository regex substitutions overrides global
fc42a5 729 # SINCE 0.5.0
5450d0 730 regex.myrepository.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://elsewhere/bug/$3">Bug-Id: $3</a>
f98825 731
JM 732 #
831469 733 # Mail Settings
JM 734 # SINCE 0.6.0
735 #
736 # Mail settings are used to notify administrators of received federation proposals
737 #
738
739 # ip or hostname of smtp server
740 #
741 # SINCE 0.6.0
742 mail.server =
743
744 # port to use for smtp requests
745 #
746 # SINCE 0.6.0
747 mail.port = 25
748
749 # debug the mail executor
750 #
751 # SINCE 0.6.0
752 mail.debug = false
753
754 # if your smtp server requires authentication, supply the credentials here
755 #
756 # SINCE 0.6.0
757 mail.username =
fc42a5 758 # SINCE 0.6.0
831469 759 mail.password =
JM 760
761 # from address for generated emails
762 #
763 # SINCE 0.6.0
764 mail.fromAddress = 
765
8f73a7 766 # List of email addresses for the Gitblit administrators
831469 767 #
8f73a7 768 # SPACE-DELIMITED
831469 769 # SINCE 0.6.0
JM 770 mail.adminAddresses = 
771
9fd38c 772 # List of email addresses for sending push email notifications.
fa54be 773 #
JM 774 # This key currently requires use of the sendemail.groovy hook script.
775 # If you set sendemail.groovy in *groovy.postReceiveScripts* then email
9fd38c 776 # notifications for all repositories (regardless of access restrictions!)
fa54be 777 # will be sent to these addresses.
JM 778 #
779 # SPACE-DELIMITED
780 # SINCE 0.8.0
781 mail.mailingLists =
782
831469 783 #
JM 784 # Federation Settings
785 # SINCE 0.6.0
786 #
787 # A Gitblit federation is a way to backup one Gitblit instance to another.
788 #
789 # *git.enableGitServlet* must be true to use this feature.
790
2c32fd 791 # Your federation name is used for federation status acknowledgments.  If it is
JM 792 # unset, and you elect to send a status acknowledgment, your Gitblit instance
793 # will be identified by its hostname, if available, else your internal ip address.
794 # The source Gitblit instance will also append your external IP address to your
795 # identification to differentiate multiple pulling systems behind a single proxy.
831469 796 #
2c32fd 797 # SINCE 0.6.0
JM 798 federation.name =
799
800 # Specify the passphrase of this Gitblit instance.
801 #
802 # An unspecified (empty) passphrase disables processing federation requests.
803 #
804 # This value can be anything you want: an integer, a sentence, an haiku, etc.
805 # Keep the value simple, though, to avoid Java properties file encoding issues.
806 #
807 # Changing your passphrase will break any registrations you have established with other
808 # Gitblit instances.
809 #
810 # CASE-SENSITIVE
811 # SINCE 0.6.0
8f73a7 812 # RESTART REQUIRED *(only to enable or disable federation)*
2c32fd 813 federation.passphrase =
JM 814
831469 815 # Control whether or not this Gitblit instance can receive federation proposals
JM 816 # from another Gitblit instance.  Registering a federated Gitblit is a manual
817 # process.  Proposals help to simplify that process by allowing a remote Gitblit
818 # instance to send your Gitblit instance the federation pull data.
819 #
820 # SINCE 0.6.0
821 federation.allowProposals = false
822
823 # The destination folder for cached federation proposals.
824 # Use forward slashes even on Windows!!
825 #
826 # SINCE 0.6.0
827 federation.proposalsFolder = proposals
828
829 # The default pull frequency if frequency is unspecified on a registration
830 #
831 # SINCE 0.6.0
832 federation.defaultFrequency = 60 mins
833
8f73a7 834 # Federation Sets are named groups of repositories.  The Federation Sets are 
JM 835 # available for selection in the repository settings page.  You can assign a
836 # repository to one or more sets and then distribute the token for the set.
837 # This allows you to grant federation pull access to a subset of your available
838 # repositories.  Tokens for federation sets only grant repository pull access.
839 #
840 # SPACE-DELIMITED
841 # CASE-SENSITIVE
842 # SINCE 0.6.0
843 federation.sets = 
844
831469 845 # Federation pull registrations
JM 846 # Registrations are read once, at startup.
847 #
848 # RESTART REQUIRED
849 #
850 # frequency:
851 #   The shortest frequency allowed is every 5 minutes
852 #   Decimal frequency values are cast to integers
853 #   Frequency values may be specified in mins, hours, or days
8f73a7 854 #   Values that can not be parsed or are unspecified default to *federation.defaultFrequency*
831469 855 #
JM 856 # folder:
8f73a7 857 #   if unspecified, the folder is *git.repositoriesFolder*
831469 858 #   if specified, the folder is relative to *git.repositoriesFolder*
JM 859 #
b083f5 860 # bare:
JM 861 #   if true, each repository will be created as a *bare* repository and will not
862 #   have a working directory.
863 #
864 #   if false, each repository will be created as a normal repository suitable
865 #   for local work.
866 #
2548a7 867 # mirror:
JM 868 #   if true, each repository HEAD is reset to *origin/master* after each pull.
869 #   The repository will be flagged *isFrozen* after the initial clone.
870 #
871 #   if false, each repository HEAD will point to the FETCH_HEAD of the initial
872 #   clone from the origin until pushed to or otherwise manipulated.
873 #
831469 874 # mergeAccounts:
JM 875 #   if true, remote accounts and their permissions are merged into your 
876 #   users.properties file 
877 #
878 # notifyOnError:
879 #   if true and the mail configuration is properly set, administrators will be
880 #   notified by email of pull failures
881 #
882 # include and exclude:
8f73a7 883 #   Space-delimited list of repositories to include or exclude from pull
831469 884 #   may be * wildcard to include or exclude all
JM 885 #   may use fuzzy match (e.g. org.eclipse.*)
886
887 #
888 # (Nearly) Perfect Mirror example
889 #
890
891 #federation.example1.url = https://go.gitblit.com
892 #federation.example1.token = 6f3b8a24bf970f17289b234284c94f43eb42f0e4
893 #federation.example1.frequency = 120 mins
2548a7 894 #federation.example1.folder =
f6740d 895 #federation.example1.bare = true 
2548a7 896 #federation.example1.mirror = true 
831469 897 #federation.example1.mergeAccounts = true
JM 898
899 #
478678 900 # Advanced Realm Settings
JM 901 #
902
903 # URL of the LDAP server.
845b53 904 # To use encrypted transport, use either ldaps:// URL for SSL or ldap+tls:// to
SG 905 # send StartTLS command.
478678 906 #
JM 907 # SINCE 1.0.0
908 realm.ldap.server = ldap://localhost
909
910 # Login username for LDAP searches.
911 # If this value is unspecified, anonymous LDAP login will be used.
912
913 # e.g. mydomain\\username
914 #
915 # SINCE 1.0.0
916 realm.ldap.username = cn=Directory Manager
917
918 # Login password for LDAP searches.
919 #
920 # SINCE 1.0.0
921 realm.ldap.password = password
922
923 # The LdapUserService must be backed by another user service for standard user
924 # and team management.
925 # default: users.conf
926 #
927 # SINCE 1.0.0
928 # RESTART REQUIRED
929 realm.ldap.backingUserService = users.conf
930
931 # Delegate team membership control to LDAP.
932 #
933 # If true, team user memberships will be specified by LDAP groups.  This will
934 # disable team selection in Edit User and user selection in Edit Team.
935 #
936 # If false, LDAP will only be used for authentication and Gitblit will maintain
937 # team memberships with the *realm.ldap.backingUserService*.
938 #
939 # SINCE 1.0.0
940 realm.ldap.maintainTeams = false
941
942 # Root node for all LDAP users
943 #
944 # This is the root node from which subtree user searches will begin.
945 # If blank, Gitblit will search ALL nodes.
946 #
947 # SINCE 1.0.0
948 realm.ldap.accountBase = OU=Users,OU=UserControl,OU=MyOrganization,DC=MyDomain
949
950 # Filter criteria for LDAP users
951 #
952 # Query pattern to use when searching for a user account. This may be any valid 
953 # LDAP query expression, including the standard (&) and (|) operators.
954 #
955 # Variables may be injected via the ${variableName} syntax.
956 # Recognized variables are:
957 #    ${username} - The text entered as the user name
958 #
959 # SINCE 1.0.0
960 realm.ldap.accountPattern = (&(objectClass=person)(sAMAccountName=${username}))
961
962 # Root node for all LDAP groups to be used as Gitblit Teams
963 #
964 # This is the root node from which subtree team searches will begin.
965 # If blank, Gitblit will search ALL nodes.  
966 #
967 # SINCE 1.0.0
968 realm.ldap.groupBase = OU=Groups,OU=UserControl,OU=MyOrganization,DC=MyDomain
969
970 # Filter criteria for LDAP groups
971 #
972 # Query pattern to use when searching for a team. This may be any valid 
973 # LDAP query expression, including the standard (&) and (|) operators.
974 #
975 # Variables may be injected via the ${variableName} syntax.
976 # Recognized variables are:
977 #    ${username} - The text entered as the user name
978 #    ${dn} - The Distinguished Name of the user logged in
979 #
980 # All attributes from the LDAP User record are available. For example, if a user
981 # has an attribute "fullName" set to "John", "(fn=${fullName})" will be 
982 # translated to "(fn=John)".
983 #
984 # SINCE 1.0.0
985 realm.ldap.groupMemberPattern = (&(objectClass=group)(member=${dn}))
986
987 # LDAP users or groups that should be given administrator privileges.
988 #
989 # Teams are specified with a leading '@' character.  Groups with spaces in the
990 # name can be entered as "@team name".
991 #
992 # e.g. realm.ldap.admins = john @git_admins "@git admins"
993 #
994 # SPACE-DELIMITED
995 # SINCE 1.0.0
996 realm.ldap.admins = @Git_Admins
997
998 # Attribute(s) on the USER record that indicate their display (or full) name.
999 # Leave blank for no mapping available in LDAP.
1000 #
1001 # This may be a single attribute, or a string of multiple attributes.  Examples:
1002 #  displayName - Uses the attribute 'displayName' on the user record
1003 #  ${personalTitle}. ${givenName} ${surname} - Will concatenate the 3 
1004 #       attributes together, with a '.' after personalTitle
1005 #
1006 # SINCE 1.0.0
1007 realm.ldap.displayName = displayName
1008
1009 # Attribute(s) on the USER record that indicate their email address.
1010 # Leave blank for no mapping available in LDAP.
1011 #
1012 # This may be a single attribute, or a string of multiple attributes.  Examples:
1013 #  email - Uses the attribute 'email' on the user record
1014 #  ${givenName}.${surname}@gitblit.com -Will concatenate the 2 attributes
1015 #       together with a '.' and '@' creating something like first.last@gitblit.com 
1016 #
1017 # SINCE 1.0.0
1018 realm.ldap.email = email
1019
98ba4e 1020 # The RedmineUserService must be backed by another user service for standard user
M 1021 # and team management.
1022 # default: users.conf
1023 #
1024 # RESTART REQUIRED
1025 realm.redmine.backingUserService = users.conf
1026
1027 # URL of the Redmine.
1028 realm.redmine.url = http://example.com/redmine
1029
478678 1030 #
f98825 1031 # Server Settings
JM 1032 #
1f9dae 1033
373a96 1034 # The temporary folder to decompress the embedded gitblit webapp. 
JM 1035 #
1036 # SINCE 0.5.0
1037 # RESTART REQUIRED
f98825 1038 server.tempFolder = temp
JM 1039
1040 # Use Jetty NIO connectors.  If false, Jetty Socket connectors will be used.
373a96 1041 #
JM 1042 # SINCE 0.5.0
1043 # RESTART REQUIRED
f98825 1044 server.useNio = true
JM 1045
4c6dab 1046 # Context path for the GO application.  You might want to change the context
JM 1047 # path if running Gitblit behind a proxy layer such as mod_proxy.
70b492 1048 #
JM 1049 # SINCE 0.7.0
1050 # RESTART REQUIRED
1051 server.contextPath = /
1052
f98825 1053 # Standard http port to serve.  <= 0 disables this connector.
18422e 1054 # On Unix/Linux systems, ports < 1024 require root permissions.
JM 1055 # Recommended value: 80 or 8080
373a96 1056 #
JM 1057 # SINCE 0.5.0
1058 # RESTART REQUIRED
f98825 1059 server.httpPort = 0
JM 1060
1061 # Secure/SSL https port to serve. <= 0 disables this connector.
18422e 1062 # On Unix/Linux systems, ports < 1024 require root permissions.
JM 1063 # Recommended value: 443 or 8443
373a96 1064 #
JM 1065 # SINCE 0.5.0
1066 # RESTART REQUIRED
18422e 1067 server.httpsPort = 8443
f98825 1068
4b9d64 1069 # Port for serving an Apache JServ Protocol (AJP) 1.3 connector for integrating
JM 1070 # Gitblit GO into an Apache HTTP server setup.  <= 0 disables this connector.
1071 # Recommended value: 8009
1072 #
1073 # SINCE 0.9.0
1074 # RESTART REQUIRED
1075 server.ajpPort = 0
1076
f98825 1077 # Specify the interface for Jetty to bind the standard connector.
dd7961 1078 # You may specify an ip or an empty value to bind to all interfaces.
1f9dae 1079 # Specifying localhost will result in Gitblit ONLY listening to requests to
dd7961 1080 # localhost.
373a96 1081 #
JM 1082 # SINCE 0.5.0
1083 # RESTART REQUIRED
f98825 1084 server.httpBindInterface = localhost
JM 1085
1086 # Specify the interface for Jetty to bind the secure connector.
1087 # You may specify an ip or an empty value to bind to all interfaces.
1f9dae 1088 # Specifying localhost will result in Gitblit ONLY listening to requests to
dd7961 1089 # localhost.
373a96 1090 #
JM 1091 # SINCE 0.5.0
1092 # RESTART REQUIRED
f98825 1093 server.httpsBindInterface = localhost
JM 1094
4b9d64 1095 # Specify the interface for Jetty to bind the AJP connector.
JM 1096 # You may specify an ip or an empty value to bind to all interfaces.
1097 # Specifying localhost will result in Gitblit ONLY listening to requests to
1098 # localhost.
1099 #
1100 # SINCE 0.9.0
1101 # RESTART REQUIRED
1102 server.ajpBindInterface = localhost
1103
f98825 1104 # Password for SSL keystore.
JM 1105 # Keystore password and certificate password must match.
1106 # This is provided for convenience, its probably more secure to set this value
1107 # using the --storePassword command line parameter.
373a96 1108 #
JM 1109 # SINCE 0.5.0
1110 # RESTART REQUIRED
1f9dae 1111 server.storePassword = gitblit
f98825 1112
JM 1113 # Port for shutdown monitor to listen on.
373a96 1114 #
JM 1115 # SINCE 0.5.0
1116 # RESTART REQUIRED
380afa 1117 server.shutdownPort = 8081