From 831469ba89ea8bca3bfbd1d662dbdd2c9f233798 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 12 Sep 2011 15:37:55 -0400 Subject: [PATCH] Largely completed, uber-cool federation feature. --- distrib/gitblit.properties | 342 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 301 insertions(+), 41 deletions(-) diff --git a/distrib/gitblit.properties b/distrib/gitblit.properties index e41f12c..ebdd0b0 100644 --- a/distrib/gitblit.properties +++ b/distrib/gitblit.properties @@ -2,13 +2,12 @@ # Git Servlet Settings # -# Allow push/pull over http/https with JGit servlet. -git.enableGitServlet = true - # Base folder for repositories -# Changing this value requires a server restart. # Use forward slashes even on Windows!! # e.g. c:/gitrepos +# +# SINCE 0.5.0 +# RESTART REQUIRED git.repositoriesFolder = git # Search the repositories folder subfolders for other repositories. @@ -16,141 +15,251 @@ # but they may be grouped together in subfolders. # e.g. c:/gitrepos/libraries/mylibrary.git # c:/gitrepos/libraries/myotherlibrary.git +# +# SINCE 0.5.0 git.searchRepositoriesSubfolders = true + +# Allow push/pull over http/https with JGit servlet. +# If you do NOT want to allow Git clients to clone/push to Gitblit set this +# to false. You might want to do this if you are only using ssh:// or git://. +# If you set this false, consider changing the *web.otherUrls* setting to +# indicate your clone/push urls. +# +# SINCE 0.5.0 +git.enableGitServlet = true # # Authentication Settings # # Require authentication to see everything but the admin pages -# Changing this value requires a server restart. +# +# SINCE 0.5.0 +# RESTART REQUIRED web.authenticateViewPages = false # Require admin authentication for the admin functions and pages -# Changing this value requires a server restart. +# +# SINCE 0.5.0 +# RESTART REQUIRED web.authenticateAdminPages = true -# Either a simple user realm file to authenticate users -# OR a fully qualified class name that implements the ILoginService interface. +# Allow Gitblit to store a cookie in the user's browser for automatic +# authentication. The cookie is generated by the user service. +# +# SINCE 0.5.0 +web.allowCookieAuthentication = true + +# Either the path to a simple user properties file +# OR a fully qualified class name that implements the IUserService interface. # Any custom implementation must have a public default constructor. -# Changing this value requires a server restart. -realm.realmFile = users.properties +# +# SINCE 0.5.0 +# RESTART REQUIRED +realm.userService = users.properties # How to store passwords. -# Valid values are plain or md5. Default is md5. +# Valid values are plain or md5. Default is md5. +# +# SINCE 0.5.0 realm.passwordStorage = md5 # Minimum valid length for a plain text password. -# Default value is 5. Absolute minimum is 4. +# Default value is 5. Absolute minimum is 4. +# +# SINCE 0.5.0 realm.minPasswordLength = 5 # # Gitblit Web Settings # # If blank Gitblit is displayed. +# +# SINCE 0.5.0 web.siteName = -# If web.authenticateAdminPages=true, users with "admin" role can create +# If *web.authenticateAdminPages*=true, users with "admin" role can create # repositories, create users, and edit repository metadata. # -# If web.authenticateAdminPages=false, any user can execute the aforementioned -# functions. +# If *web.authenticateAdminPages*=false, any user can execute the aforementioned +# functions. +# +# SINCE 0.5.0 web.allowAdministration = true -# Allow dyanamic zip downloads. +# Allow dynamic zip downloads. +# +# SINCE 0.5.0 web.allowZipDownloads = true -# Default number of entries to include in RSS/Atom Syndication links +# Default number of entries to include in RSS Syndication links +# +# SINCE 0.5.0 web.syndicationEntries = 25 + +# Show the size of each repository on the repositories page. +# This requires recursive traversal of each repository folder. This may be +# non-performant on some operating systems and/or filesystems. +# +# SINCE 0.5.2 +web.showRepositorySizes = true + +# Show federation registrations (without token) and the current pull status +# to non-administrator users. +# +# SINCE 0.6.0 +web.showFederationRegistrations = false # This is the message display above the repositories table. # This can point to a file with Markdown content. # Specifying "gitblit" uses the internal welcome message. +# +# SINCE 0.5.0 web.repositoriesMessage = gitblit # Use the client timezone when formatting dates. -# This uses AJAX to determine the browser's timezone. -# Changing this value requires a server restart. +# This uses AJAX to determine the browser's timezone and may require more +# server overhead because a Wicket session is created. All Gitblit pages +# attempt to be stateless, if possible. +# +# SINCE 0.5.0 +# RESTART REQUIRED web.useClientTimezone = false -# Date and Time formats -# http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html +# Short date format +# <http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html> +# +# SINCE 0.5.0 web.datestampShortFormat = yyyy-MM-dd + +# Long timestamp format +# <http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html> +# +# SINCE 0.5.0 web.datetimestampLongFormat = EEEE, MMMM d, yyyy h:mm a z -# Mount parameters -# true: http://localhost/commit/myrepo/abcdef -# false: http://localhost/commit/?r=myrepo&h=abcdef -# Changing this value requires a server restart. +# Mount URL parameters +# This setting controls if pretty or parameter URLs are used. +# i.e. +# if true: +# http://localhost/commit/myrepo/abcdef +# if false: +# http://localhost/commit/?r=myrepo&h=abcdef +# +# SINCE 0.5.0 +# RESTART REQUIRED web.mountParameters = true + +# Some servlet containers (e.g. Tomcat >= 6.0.10) disallow '/' (%2F) encoding +# in URLs as a security precaution for proxies. This setting tells Gitblit +# to preemptively replace '/' with '*' or '!' for url string parameters. +# +# <https://issues.apache.org/jira/browse/WICKET-1303> +# <http://tomcat.apache.org/security-6.html> +# +# SINCE 0.5.2 +web.forwardSlashCharacter = / # Show other URLs on the summary page for accessing your git repositories # Use spaces to separate urls. {0} is the token for the repository name. # e.g. # web.otherUrls = ssh://localhost/git/{0} git://localhost/git/{0} +# +# SINCE 0.5.0 web.otherUrls = # Choose how to present the repositories list. # grouped = group nested/subfolder repositories together (no sorting) # flat = flat list of repositories (sorting allowed) +# +# SINCE 0.5.0 web.repositoryListType = grouped # If using a grouped repository list and there are repositories at the # root level of your repositories folder, you may specify the displayed # group name with this setting. This value is only used for web presentation. +# +# SINCE 0.5.0 web.repositoryRootGroupName = main # Choose the diff presentation style: gitblt, gitweb, or plain +# +# SINCE 0.5.0 web.diffStyle = gitblit # Control if email addresses are shown in web ui +# +# SINCE 0.5.0 web.showEmailAddresses = true # Shows a combobox in the page links header with commit, committer, and author # search selection. Default search is commit. +# +# SINCE 0.5.0 web.showSearchTypeSelection = false # Generates a line graph of repository activity over time on the Summary page. -# This uses the Google Charts API. +# This uses the Google Charts API. +# +# SINCE 0.5.0 web.generateActivityGraph = true # The number of commits to display on the summary page # Value must exceed 0 else default of 20 is used +# +# SINCE 0.5.0 web.summaryCommitCount = 16 -# The number of tags/heads to display on the summary page -# Value must exceed 0 else default of 5 is used +# The number of tags/branches to display on the summary page. +# -1 = all tags/branches +# 0 = hide tags/branches +# N = N tags/branches +# +# SINCE 0.5.0 web.summaryRefsCount = 5 # The number of items to show on a page before showing the first, prev, next # pagination links. A default if 50 is used for any invalid value. +# +# SINCE 0.5.0 web.itemsPerPage = 50 # Registered extensions for google-code-prettify -# (case-insensitive) +# +# SINCE 0.5.0 web.prettyPrintExtensions = c cpp cs css htm html java js php pl prefs properties py rb sh sql xml vb # Registered extensions for markdown transformation -# (CASE-SENSITIVE) +# +# CASE-SENSITIVE +# SINCE 0.5.0 web.markdownExtensions = md mkd markdown MD MKD # Image extensions -# (case-insensitive) +# +# SINCE 0.5.0 web.imageExtensions = bmp jpg gif png # Registered extensions for binary blobs -# (case-insensitive) +# +# SINCE 0.5.0 web.binaryExtensions = jar pdf tar.gz zip # Aggressive heap management will run the garbage collector on every generated # page. This slows down page generation a little but improves heap consumption. -web.aggressiveHeapManagement = true +# +# SINCE 0.5.0 +web.aggressiveHeapManagement = false # Run the webapp in debug mode -# Changing this value requires a server restart. +# +# SINCE 0.5.0 +# RESTART REQUIRED web.debugMode = false # Enable/disable global regex substitutions (i.e. shared across repositories) +# +# SINCE 0.5.0 regex.global = true # Example global regex substitutions @@ -163,43 +272,194 @@ regex.myrepository.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://elsewhere/bug/$3">Bug-Id: $3</a> # +# Mail Settings +# SINCE 0.6.0 +# +# Mail settings are used to notify administrators of received federation proposals +# + +# ip or hostname of smtp server +# +# SINCE 0.6.0 +mail.server = + +# port to use for smtp requests +# +# SINCE 0.6.0 +mail.port = 25 + +# debug the mail executor +# +# SINCE 0.6.0 +mail.debug = false + +# if your smtp server requires authentication, supply the credentials here +# +# SINCE 0.6.0 +mail.username = +mail.password = + +# from address for generated emails +# +# SINCE 0.6.0 +mail.fromAddress = + +# Space-separated list of email addresses for the Gitblit administrators +# +# SINCE 0.6.0 +mail.adminAddresses = + +# +# Federation Settings +# SINCE 0.6.0 +# +# A Gitblit federation is a way to backup one Gitblit instance to another. +# +# *git.enableGitServlet* must be true to use this feature. + +# +# Control whether or not this Gitblit instance can receive federation proposals +# from another Gitblit instance. Registering a federated Gitblit is a manual +# process. Proposals help to simplify that process by allowing a remote Gitblit +# instance to send your Gitblit instance the federation pull data. +# +# SINCE 0.6.0 +federation.allowProposals = false + +# The destination folder for cached federation proposals. +# Use forward slashes even on Windows!! +# +# SINCE 0.6.0 +federation.proposalsFolder = proposals + +# The default pull frequency if frequency is unspecified on a registration +# +# SINCE 0.6.0 +federation.defaultFrequency = 60 mins + +# Specify the unique id of this Gitblit instance. +# +# An unspecified (empty) uuid disables procesing federation requests. +# +# This value can be anything you want: an integer, a sentence, an haiku, etc. +# Keep the value simple, though, to avoid Java properties file encoding issues. +# +# Changing your uuid will break any registrations you have established with other +# Gitblit instances. +# +# CASE-SENSITIVE +# SINCE 0.6.0 +# RESTART REQUIRED +federation.uuid = + +# Your federation name is used for federation status acknowledgments. If it is +# unset, and you elect to send a status acknowledgment, your Gitblit instance +# will be identified by its hostname, if available, else your internal ip address. +# The source Gitblit instance will also append your external IP address to your +# identification to differentiate multiple pulling systems behind a single proxy. +# +# SINCE 0.6.0 +federation.name = + +# Federation pull registrations +# Registrations are read once, at startup. +# +# RESTART REQUIRED +# +# frequency: +# The shortest frequency allowed is every 5 minutes +# Decimal frequency values are cast to integers +# Frequency values may be specified in mins, hours, or days +# Values that can not be parsed default to *federation.defaultFrequency* +# +# folder: +# if blank, the folder is *git.repositoriesFolder* +# if specified, the folder is relative to *git.repositoriesFolder* +# +# mergeAccounts: +# if true, remote accounts and their permissions are merged into your +# users.properties file +# +# notifyOnError: +# if true and the mail configuration is properly set, administrators will be +# notified by email of pull failures +# +# include and exclude: +# space-separated list of repositories to include or exclude from pull +# may be * wildcard to include or exclude all +# may use fuzzy match (e.g. org.eclipse.*) + +# +# (Nearly) Perfect Mirror example +# + +#federation.example1.url = https://go.gitblit.com +#federation.example1.token = 6f3b8a24bf970f17289b234284c94f43eb42f0e4 +#federation.example1.frequency = 120 mins +#federation.example1.folder = +#federation.example1.mergeAccounts = true + +# # Server Settings # -# Changing any of these values requires a server restart. -# The temporary folder to decompress the gitblit webapp. +# The temporary folder to decompress the embedded gitblit webapp. +# +# SINCE 0.5.0 +# RESTART REQUIRED server.tempFolder = temp -# -# Jetty Settings -# - # Use Jetty NIO connectors. If false, Jetty Socket connectors will be used. +# +# SINCE 0.5.0 +# RESTART REQUIRED server.useNio = true # Standard http port to serve. <= 0 disables this connector. +# On Unix/Linux systems, ports < 1024 require root permissions. +# Recommended value: 80 or 8080 +# +# SINCE 0.5.0 +# RESTART REQUIRED server.httpPort = 0 # Secure/SSL https port to serve. <= 0 disables this connector. -server.httpsPort = 443 +# On Unix/Linux systems, ports < 1024 require root permissions. +# Recommended value: 443 or 8443 +# +# SINCE 0.5.0 +# RESTART REQUIRED +server.httpsPort = 8443 # Specify the interface for Jetty to bind the standard connector. # You may specify an ip or an empty value to bind to all interfaces. # Specifying localhost will result in Gitblit ONLY listening to requests to # localhost. +# +# SINCE 0.5.0 +# RESTART REQUIRED server.httpBindInterface = localhost # Specify the interface for Jetty to bind the secure connector. # You may specify an ip or an empty value to bind to all interfaces. # Specifying localhost will result in Gitblit ONLY listening to requests to # localhost. +# +# SINCE 0.5.0 +# RESTART REQUIRED server.httpsBindInterface = localhost # Password for SSL keystore. # Keystore password and certificate password must match. # This is provided for convenience, its probably more secure to set this value # using the --storePassword command line parameter. +# +# SINCE 0.5.0 +# RESTART REQUIRED server.storePassword = gitblit # Port for shutdown monitor to listen on. +# +# SINCE 0.5.0 +# RESTART REQUIRED server.shutdownPort = 8081 -- Gitblit v1.9.1