Git Browser
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

47 lines
2.3 KiB

  1. `gitbrowser` is just another attempt to get rid of gitweb. While there are many Git web interfaces, only a few understand gitolite access control lists (gitbrowser only implements the absolute minimum).
  2. # Features
  3. * (basic) support for Gitolite access control lists
  4. * Listing of gitolite repositories via it's `projects.list` file
  5. * Github-like url structure
  6. * Atom feeds for repositories
  7. # Configuration
  8. All configuration is done through a `GITBROWSER` dict in Django's `settings` module.
  9. The following keys are recognized:
  10. - *allow_anonymous* If set to `False`, unauthenticated requests are redirected to the login page
  11. - *clone_url_templates*:
  12. - either a single string accepting `%(paths)s` for formatting, or
  13. - a callable accepting `repo, username` as it's argument. The callable should produce a list of strings
  14. - *GL_HOME* path to the home directory for the `git` user. Defaults to `~`.
  15. - *acl* Name of the ACL class in the acl module to use for evaluating permissions. The only implementation is `GitoliteACL`. If you only have public accessible repositories, use `AllowAllACL` here.
  16. - *lister* Name of the lister class to use. The only available implementation is `GitoliteProjectsFileRepositoryLister`, which uses the `projects.list` file in `GL_HOME`
  17. ## Display and styling
  18. The `display` sub-dict takes the following keys:
  19. - *list_style*
  20. - *tree* Repositories are grouped by their relative file system paths
  21. - *flat* All repositories on a single page
  22. - *hierarchical* filesystem-like tree structure
  23. - *commit_list_style*
  24. - *default* multi-line commit list
  25. - *condensed*
  26. # Authentication and authorization
  27. If you use an acl implementation different from `AllowAllACL`, make sure your Django user names and group names match those in gitolite. Since it is possible to evaluate group membership on the fly in gitolite, gitbrowser does not use the group memberships defined in gitolite's big conf or split conf. You have to duplicate the group membership in Django
  28. **ATTENTION: DO NOT USE gitbrowser's GitoliteACL implementation if you have permissions other the R(W)+ on .***
  29. gitbrowser does not check for negative permissions (e.g. denied read access) nor does it check for permissions on refs.
  30. # Notes
  31. * If you have repositories with more than a few hundred commits, you should setup a cache using Django's Cache framework.