James Moger
2012-10-04 9f5a860d1ecaebb80530fc22607d34fc80d8c09d
docs/01_features.mkd
@@ -1,19 +1,30 @@
## Gitblit Features
## Standard Features (GO/WAR)
- JGit SmartHTTP servlet
- Browser and git client authentication
- Four repository access control configurations with a Read-Only control flag
    <ul class='noBullets'>
    <li>![anonymous](blank.png) *Anonymous View, Clone & Push*</li>
    <li>![push](lock_go_16x16.png) *Authenticated Push*</li>
    <li>![clone](lock_pull_16x16.png) *Authenticated Clone & Push*</li>
    <li>![view](shield_16x16.png) *Authenticated View, Clone & Push*</li>
    <li>![freeze](cold_16x16.png) Freeze repository (i.e. deny push, make read-only)
    </ul>
- Four *per-repository* access control 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)
- 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
- Administrators may create, edit, rename, or delete users through the web UI
- 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
- Email push notifications *(via sendmail.groovy push script)*
- 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
- Git-notes support
- Administrators and Repository Owners may set the default branch through the web UI or RPC interface
- LDAP authentication and optional LDAP-controlled Team memberships
- Gravatar integration
- Git-notes display support
- Submodule support
- gh-pages display support (Jekyll is not supported)
- Branch metrics (uses Google Charts)
- HEAD and Branch RSS feeds
- Blame annotations view
@@ -26,42 +37,32 @@
- Customizable regular expression substitution for commit messages (i.e. bug or code review link integration)
- Single text file for users configuration
- Optional utility pages
    <ul class='noBullets'>
    <li>![docs](book_16x16.png) Docs page which enumerates all Markdown files within a repository</li>
    <li>![tickets](bug_16x16.png) Ticgit ticket pages *(based on last MIT release bf57b032 2009-01-27)*</li>
    </ul>
    - ![docs](book_16x16.png) Docs page which enumerates all Markdown files within a repository
    - ![tickets](bug_16x16.png) Ticgit ticket pages *(based on last MIT release bf57b032 2009-01-27)*
- Translations
    - English
    - Japanese
    - Spanish
    - Polish
    - Korean
## Gitblit GO Features
- Out-of-the-box integrated stack requiring minimal configuration
- Automatically generates a self-signed certificate for *localhost* https communications<br/>(includes script to generate a self-signed certificate for *your hostname*, see [setup](/setup.html) for details)
- Automatically generates a self-signed certificate for *localhost* https communications
    (includes script to generate a self-signed certificate for *your hostname*, see [setup](/setup.html) for details)
- Single text file for configuring server and gitblit
- A Windows service installation script and configuration tool
- Built-in AJP connector for Apache httpd
## Limitations
- HTTP/HTTPS are the only supported protocols
- Access controls are not path-based, they are repository-based
- HTTP/HTTPS are the only supported Git protocols
- Built-in 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
- Only Administrators can create, modify or delete teams
- Native Git may be needed to periodically run git-gc as [JGit][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.  :)
## Todo List
- Code documentation
- Unit testing
### Under Consideration
- Clone remote repository feature
- Blob page improvements
    - view images
    - view other binary files (pdf, doc, etc)
- Markdown editing feature
- Stronger Ticgit read-only integration
    - activity/timeline
    - query feature with paging support
    - change history
- Ticgit write integration
[jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
[jgit]: http://eclipse.org/jgit "Eclipse JGit Site"