## Standard Features (GO/WAR)
- Integrated JGit http/https SmartHTTP servlet
- Integrated JGit git protocol daemon
- Integrated Mina SSHD daemon
- Optional feature to allow users to create personal repositories
- Optional feature to fork a repository to a personal repository
- Optional feature to create a repository on push
- Optional feature to automatically fetch ref updates for repository mirrors
- Optional Issue Tracker and Pull-Request-like mechanism
- Four *per-repository* access restriction configurations with a Read-Only control flag
    - ![anonymous](blank.png) *Anonymous View, Clone & Push*
    - ![push](lock_go_16x16.png) *Authenticated Push*
    - ![clone](lock_pull_16x16.png) *Authenticated Clone & Push*
    - ![view](shield_16x16.png) *Authenticated View, Clone & Push*
    - ![freeze](cold_16x16.png) Freeze repository (i.e. deny push, make read-only)
- Six *per-user/team* repository access permissions
    - **V** (view in web ui, RSS feeds, download zip)
    - **R** (clone)
    - **RW** (clone and push)
    - **RWC** (clone and push with ref creation)
    - **RWD** (clone and push with ref creation, deletion)
    - **RW+** (clone and push with ref creation, deletion, rewind)
- Menu driven native platform clone links for all popular Git clients
- Garbage Collection service
- Ability to federate with one or more other Gitblit instances
- RSS/JSON RPC interface
- An evolving plugin infrastructure
- Java/Swing Gitblit Manager tool
- Responsive web UI that subtracts elements to be usable on phones, tablets, and desktop browsers
- Groovy pre- and post- push hook scripts, per-repository or globally for all repositories
- Rich Push email notifications *(via sendmail.groovy push script)*
- Rich Ticket email notifications
- Lucene indexing of specified repository branches
- 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
- Administrators may create, edit, rename, or delete teams through the web UI or RPC interface
- Repository Owners may edit repositories through the web UI
- Administrators and Repository Owners may set the default branch through the web UI or RPC interface
- LDAP authentication and optional LDAP-controlled Team memberships
- Redmine authentication
- Salesforce.com authentication
- Windows authentication
- PAM authentication
- Gravatar integration
- Git-notes display support
- Submodule support
- User-tracked reflog for pushes, tags, etc.
- Fanout PubSub notifications service for self-hosted [Sparkleshare](http://sparkleshare.org) use
- gh-pages display support (Jekyll is not supported)
- Branch metrics
- 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
- Docs page which enumerates all Markdown files within a repository
- Markdown, Confluence, Textile, Twiki, Tracwiki, & Mediawiki markup rendering 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
- Translations
    - German (de)
    - English (en)
    - Spanish (es)
    - French (fr)
    - Italian (it)
    - Japanese (ja)
    - Korean (ko)
    - Dutch (nl)
    - Norwegian (no)
    - Polish (pl)
    - Brazilian Portuguese (pt_BR)
    - Simplified Chinese (zh_CN)

## Gitblit GO Features
- Out-of-the-box integrated stack requiring minimal configuration
- Automatic generation of ssl certificate for https communications
- Integrated GUI tool to facilitate x509 PKI including ssl and client certificate generation, client certificate revocation, and client certificate distribution
- Single text file for configuring server and gitblit
- A Windows service installation script and configuration tool

## Limitations
- Built-in access controls are not branch-based, they are repository-based.

[jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
