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 | 377 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 330 insertions(+), 47 deletions(-) diff --git a/distrib/gitblit.properties b/distrib/gitblit.properties index 8b0027e..ebdd0b0 100644 --- a/distrib/gitblit.properties +++ b/distrib/gitblit.properties @@ -2,181 +2,464 @@ # Git Servlet Settings # -# Allow push/pull over http/https with JGit servlet -git.enableGitServlet = true - # Base folder for repositories # Use forward slashes even on Windows!! +# e.g. c:/gitrepos +# +# SINCE 0.5.0 +# RESTART REQUIRED git.repositoriesFolder = git -# Export all repositories -# if false, each exported repository must have a .git/git-daemon-export-ok file -git.exportAll = true +# Search the repositories folder subfolders for other repositories. +# Repositories MAY NOT be nested (i.e. one repository within another) +# 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 -# Search repositories folder for nested repositories -# e.g. /libraries/mylibrary.git -git.nestedRepositories = true - -# 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. -# git.otherUrls = ssh://localhost/git/{0} git://localhost/git/{0} -git.otherUrls = +# 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 +# +# SINCE 0.5.0 +# RESTART REQUIRED web.authenticateViewPages = false # Require admin authentication for the admin functions and pages +# +# SINCE 0.5.0 +# RESTART REQUIRED web.authenticateAdminPages = true -# Simple user realm file to authenticate users -realm.realmFile = users.properties +# 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. +# +# 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.authenticate=true, users with "admin" role can create repositories, -# create users, and edit repository metadata (owner, description, etc) +# If *web.authenticateAdminPages*=true, users with "admin" role can create +# repositories, create users, and edit repository metadata. # -# If web.authenticate=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 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. +# 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 +# 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 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) +# 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 is a real-time graph so generation may be expensive. +# 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 +# +# 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 -web.markdownExtensions = md mkd markdown +# +# CASE-SENSITIVE +# SINCE 0.5.0 +web.markdownExtensions = md mkd markdown MD MKD # Image extensions +# +# SINCE 0.5.0 web.imageExtensions = bmp jpg gif png # Registered extensions for binary blobs +# +# 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 but improves heap consumption. -web.aggressiveHeapManagement = true +# page. This slows down page generation a little but improves heap consumption. +# +# SINCE 0.5.0 +web.aggressiveHeapManagement = false # Run the webapp in debug mode +# +# 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 # Use !!! to separate the search pattern and the replace pattern # searchpattern!!!replacepattern -#regex.global.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://somehost/bug/$3">Bug-Id: $3</a> -#regex.global.changeid = \\b(Change-Id:\\s*)([A-Za-z0-9]*)\\b!!!<a href="http://somehost/changeid/$2">Change-Id: $2</a> +regex.global.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://somehost/bug/$3">Bug-Id: $3</a> +regex.global.changeid = \\b(Change-Id:\\s*)([A-Za-z0-9]*)\\b!!!<a href="http://somehost/changeid/$2">Change-Id: $2</a> # Example per-repository regex substitutions overrides global -#regex.myrepository.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://elsewhere/bug/$3">Bug-Id: $3</a> +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 # + +# The temporary folder to decompress the embedded gitblit webapp. +# +# SINCE 0.5.0 +# RESTART REQUIRED server.tempFolder = temp -server.log4jPattern = %-5p %d{MM-dd HH:mm:ss.SSS} %-20.20c{1} %m%n -server.log4jPattern.windows = %-5p %m%n -server.log4jPattern.linux = - - -# -# 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 Git:Blit ONLY listening to requests to +# 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 Git:Blit ONLY listening to requests to +# 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. -server.storePassword = dosomegit +# +# 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