Why Gitblit?
Single-Stack Solution
Gitblit GO is an integrated, single-stack solution for serving and browsing Git repositories with a per-repository authentication and authorization mechanism.
You do not need Apache httpd, Perl, Git, Gitweb, or Gitolite. Should you want to use some or all of those, you still can; Gitblit plays nice with the other kids on the block. It should be noted that Gitblit does not currently offer fine-grained access controls like Gitolite.
Gitblit WAR = Gitblit GO - integrated Jetty
You provide the servlet container (e.g. Tomcat, Resin, etc) and deploy the WAR like any other webapp. Gitblit WAR offers all the same capabilities as the GO integrated stack except as noted below.
You decide how to use Gitblit
Gitblit can be used as a dumb repository viewer with no administrative controls or user accounts.
Gitblit can be used as a complete Git stack for cloning, pushing, and repository access control.
Easy Web Management
Administrators can create and manage all repositories & user accounts from the web UI.
Administrators can create and manage all repositories & user accounts from the JSON RPC interface using the Gitblit Manager or your own custom tooling.
Integration
Gitblit has a pluggable user service mechanism which allows you to implement your own authentication, authorization, and user management.
Gitblit offers RSS feeds, a JSON-based RPC mechanism, and a Java client API library which allow you to integrate Gitblit into your systems.
Backup Strategy
Gitblit includes a backup mechanism (*federation*) which can be used to backup repositories and, optionally, user accounts & server settings from your Gitblit instance to another Gitblit instance or to a Gitblit Federation Client. Similarly you can use the federation mechanism to aggregate individual workspace Gitblit instances to a common, centralized server.
Standard Features (GO/WAR)
- JGit SmartHTTP servlet
- Browser and git client authentication
- Four per-repository access control configurations with a Read-Only control flag
Anonymous View, Clone & Push
Authenticated Push
Authenticated Clone & Push
Authenticated View, Clone & Push
Freeze repository (i.e. deny push, make read-only)
- Ability to federate with one or more other Gitblit instances
- RSS/JSON RPC interface
- Java/Swing Gitblit Manager tool
- Gitweb inspired web UI
- Administrators may create, edit, rename, or delete repositories through the web UI or RPC interface
- Administrators may create, edit, rename, or delete users through the web UI or RPC interface
- Repository Owners may edit repositories through the web UI
- Git-notes display support
- Branch metrics (uses Google Charts)
- HEAD and Branch RSS feeds
- Blame annotations view
- Dates can optionally be displayed using the browser's reported timezone
- Display of Author and Committer email addresses can be disabled
- Case-insensitive searching of commit messages, authors, or committers
- Dynamic zip downloads feature
- Markdown file view support
- Syntax highlighting for popular source code types
- Customizable regular expression substitution for commit messages (i.e. bug or code review link integration)
- Single text file for users configuration
- Optional utility pages
Docs page which enumerates all Markdown files within a repository
Ticgit ticket pages (based on last MIT release bf57b032 2009-01-27)
Gitblit GO Features
- Out-of-the-box integrated stack requiring minimal configuration
- Automatically generates a self-signed certificate for localhost https communications
(includes script to generate a self-signed certificate for your hostname, see setup for details)
- Single text file for configuring server and gitblit
- A Windows service installation script and configuration tool
Limitations
- HTTP/HTTPS are the only supported protocols
- Access controls are not path-based, they are repository-based
- Only Administrators can create, rename or delete repositories
- Only Administrators can create, modify or delete users
- Commit hooks are not supported
- Native Git may be needed to periodically run git-gc as JGit does not fully support the git-gc featureset.
Caveats
- Gitblit may eat your data. Use at your own risk.
- Gitblit may have security holes. Patches welcome. :)