Metadata-Version: 1.1
Name: django-anyvcs
Version: 2.2.1
Summary: A Django app providing homogeneous management of VCS systems.
Home-page: https://bitbucket.org/ClemsonSoCUnix/django-anyvcs
Author: Scott Duckworth
Author-email: sduckwo@clemson.edu
License: BSD
Description: =============
        django-anyvcs
        =============
        
        django-anyvcs is a Django app providing homogenous management of multiple
        version control systems, and the access rights to them.  Currently supported
        VCS systems are git, Mercurial, and Subversion.
        
        Each instance of ``django_anyvcs.models.Repo`` corresponds to a VCS repository
        on the server's disk.  You can grant access on these repos to one or more
        Django ``User`` or ``Group`` (from ``django.contrib.auth.models``).
        
        All repositories can be made available through the SSH access method.  The SSH
        server should be configured with user public keys which force a specific
        command to be run, instead of the command that was requested - this command
        should be ``django-anyvcs-ssh``, which is generated by setuptools when this
        package is installed.  You'll probably want to use django-sshkey_ to help
        you do this.  The original ``ssh_dispatch.py`` script is still included with a
        deprecation warning for backwards compatibility.
        
        The ``django-anyvcs-ssh`` program interprets the original ssh command, which
        should be in the ``SSH_ORIGINAL_COMMAND`` environment variable (automatically
        set by OpenSSH), and fulfills the request, granting and denying access as
        configured in Django.
        
        Configuration
        -------------
        
        Add ``django_anyvcs`` to your project's ``INSTALLED_APPS``.
        
        The ``django_anyvcs.views.access`` view is used by ``django-anyvcs-ssh``.
        The URL that maps to this view should be accessible to the host running
        ``django-anyvcs-ssh`` (usually localhost).
        
        The ``django_anyvcs.views.api_call`` view is not used by any component of
        django-anyvcs, but is made available to provide a web API to access the
        underlying repository.  The ``django_anyvcs.remote`` module provides a python
        API to this web API which provides an interface similar to
        ``anyvcs.common.VCSRepo`` objects.
        
        .. WARNING::
        
          Do not make any URLs from ``django_anyvcs.urls`` available to the public,
          as they can reveal sensitive information.
        
        Settings
        --------
        
        django-anyvcs looks at the following variables in your project's settings.py:
        
        ``VCSREPO_ROOT``
          String, required.  The root directory in which all VCS repositories are
          stored.
        
        ``VCSREPO_RIGHTS_FUNCTION``
          Function, optional.  If set, this function is called with two parameters: the
          repository being accessed, and the user who is accessing the repository (may
          be None to indicate an anonymous user).  The function should return the
          rights string, which is one of '-' (deny access), 'r' (read-only access), or
          'rw' (read and write access).
        
        ``VCSREPO_USER_ACL_FUNCTION``
          Function, optional.  If set, this function is called with one parameter which
          is a repository. The function should return a ``dict`` which maps
          ``auth.User`` instances to a rights string, one of '-', 'r', or 'rw' for the
          given repository.
        
        ``VCSREPO_GROUP_ACL_FUNCTION``
          Function, optional.  If set, this function is called with one parameter which
          is a repository. The function should return a ``dict`` which maps
          ``auth.Group`` instances to a rights string, one of '-', 'r', or 'rw' for the
          given repository.
        
        When used with django-sshkey_, a setting similar to this will tie together
        the two apps::
        
          SSHKEY_AUTHORIZED_KEYS_OPTIONS = \
            'command="env VCSREPO_ROOT=%s /path/to/django-anyvcs-ssh ' \
            'http://localhost:8000/anyvcs/access {username}",no-agent-forwarding,' \
            'no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding' % VCSREPO_ROOT
        
        Dependencies
        ------------
        
        * python-anyvcs_ version 1.1.0 or greater
        
        Although not a strict dependency, django-anyvcs was designed to be used in
        conjunction with django-sshkey_ (version 2.0.0 or greater) and would be
        fairly useless without it or something that provides a similar functionality.
        
        .. _django-sshkey: https://bitbucket.org/ClemsonSoCUnix/django-sshkey
        .. _python-anyvcs: https://github.com/ScottDuckworth/python-anyvcs
        
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
