James Moger [Mon, 25 Nov 2013 18:02:20 +0000 (13:02 -0500)]
Add support for per-repository bugtraq configuration
Imported the reference implementation contributed by syntevo which
is used in their SmartGit product. You may create a bugtraq config
section inf your .git/config file OR you may add a .gitbugtraq file
to the root of your repository.
Alex Lewis [Wed, 20 Nov 2013 17:32:27 +0000 (17:32 +0000)]
Add coloring modes to the blame page (issue-2, pull request #125)
Blame output is now colored according to Commit (default), Author or
Age. Both Commit and Author output uses random colors whereas Age uses a
single color with varying tints applied to indicate the age. White
indicates the eldest commit with the tint darkening as the commits get
younger.
James Moger [Sun, 17 Nov 2013 21:15:24 +0000 (16:15 -0500)]
Define manager interfaces and update all of Gitblit to use managers
These manager interfaces define how the GitBlit singleton will
eventually be split into smaller component managers. The Wicket app and
all servlets have been updated to request the needed managers. There
are _very_ few method signature changes - although there are a handful.
This is a surgical sharding of responsibility based on a proof of
concept refactor. Instead of random references to GittBlit.self()
there are now precise references to the manager interface required to
accomplish some task. Some tasks may require references to multiple
managers.
The code is now littered with calls to GitBlit.getManager(class) and
those familiar with the code-base will no doubt notice the duplication
of methods from IUserService in IUserManager and the addition of
implementation methods in the GitBlit context class. When the
GitBlit class is broken apart and the existing external authentication
user service classes are refactored to AuthenticationService classes,
this will again simplify and flatten. But in order to safely and
cleanly modularize the stable code-base we will have to live with a
little duplication for a short while.
James Moger [Sat, 16 Nov 2013 16:42:06 +0000 (11:42 -0500)]
Eliminate nearly all direct GitBlit singleton references in Wicket
This is the first step towards modularization and injection. All
direct references to the GitBlit singleton within the Wicket pages
and panels have been replaced to proxy methods in the GitBlitWebApp
singleton. There are still two Wicket classes which rely on the
GitBlit singleton; those require manual instantiation (servlet 3).
James Moger [Sat, 16 Nov 2013 14:12:10 +0000 (09:12 -0500)]
Automatically adjust web.forwardSlash on Tomcat containers
One issue that frequently arises in the discussion group and the bug
tracker is how Tomcat automatically re-encodes %2f as '/' which breaks
url parameters with %2f. After documenting this in half a dozen places
it still comes up. Clearly I haven't done enough.
Gitblit will now act on, instead of just report, an improperly configured
web.forwardSlash character on Tomcat containers. This will make Gitblit
"just work" for more users and will make the world a better place.
Florian Zschocke [Fri, 22 Nov 2013 15:09:05 +0000 (10:09 -0500)]
Merge pull request #122 from fzs/ldap-deref-alias
Currently the LDAP user service will not dereference aliases when
searching for groups. This patch enables dereferencing aliases for the
group search. This is benefitial if groups are defined in the DIT in a
common place but only certain ones shall play a role in Gitblit. These
can now be linked under a group that can be provided as search base for
groups, without having to recreate the existing groups under the search
base.
In addition, the new doSearch() method implemented in this patch also
limits the attributes returned for the group search to the "cn"
attribute, which is the only one used. That prevents returning all the
members of the result groups, which can be a lot.
James Moger [Wed, 13 Nov 2013 22:56:50 +0000 (17:56 -0500)]
Implement mirror executor (issue-5)
The mirror executor will fetch ref updates for repository mirrors. This
feature is disabled by default and can be enabled by setting
git.enableMirroring=true. The period between update checks is
configurable, but it is global. An individual rpeository may not set
it's own update schedule.
Requirements:
1. you must manually clone the repository using native git
git clone --mirror git://somewhere.com/myrepo.git
2. the "origin" remote must be the mirror source
3. the "origin" repository must be accessible without authentication OR
the credentials must be embedded in the origin url (not recommended)
Notes:
1. "origin" SSH urls are untested and not likely to work
2. mirrors cloned while Gitblit is running are likely to require
clearing the gitblit cache (link on the repositories page of an
administrator account)
3. Gitblit will automatically repair any invalid fetch refspecs with a
"//" sequence.
Luca Milanesio [Fri, 8 Nov 2013 15:51:51 +0000 (15:51 +0000)]
Allows the home root link top-left anchor to be customised.
A new property web.rootLink has been introduced to
customise the link underlying the top-left logo in GitBlit.
When undefined the older behaviour is to link to the
GitBlit home page.
James Moger [Fri, 25 Oct 2013 03:44:11 +0000 (23:44 -0400)]
Support for intra-Markdown linking using [[WikiLinks]] syntax (issue-324)
All WikiLinks must be specified relative to the root of the repository.
The displayed link text is stripped to just the document name. Spaces in
the document name are replaced with '-' characters; this is consistent with
wiki syntax and Github.