{ "info": { "author": "Scott Duckworth", "author_email": "sduckwo@clemson.edu", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "=============\ndjango-anyvcs\n=============\n\ndjango-anyvcs is a Django app providing homogenous management of multiple\nversion control systems, and the access rights to them. Currently supported\nVCS systems are git, Mercurial, and Subversion.\n\nEach instance of ``django_anyvcs.models.Repo`` corresponds to a VCS repository\non the server's disk. You can grant access on these repos to one or more\nDjango ``User`` or ``Group`` (from ``django.contrib.auth.models``).\n\nAll repositories can be made available through the SSH access method. The SSH\nserver should be configured with user public keys which force a specific\ncommand to be run, instead of the command that was requested - this command\nshould be ``django-anyvcs-ssh``, which is generated by setuptools when this\npackage is installed. You'll probably want to use django-sshkey_ to help\nyou do this. The original ``ssh_dispatch.py`` script is still included with a\ndeprecation warning for backwards compatibility.\n\nThe ``django-anyvcs-ssh`` program interprets the original ssh command, which\nshould be in the ``SSH_ORIGINAL_COMMAND`` environment variable (automatically\nset by OpenSSH), and fulfills the request, granting and denying access as\nconfigured in Django.\n\nConfiguration\n-------------\n\nAdd ``django_anyvcs`` to your project's ``INSTALLED_APPS``.\n\nThe ``django_anyvcs.views.access`` view is used by ``django-anyvcs-ssh``.\nThe URL that maps to this view should be accessible to the host running\n``django-anyvcs-ssh`` (usually localhost).\n\nThe ``django_anyvcs.views.api_call`` view is not used by any component of\ndjango-anyvcs, but is made available to provide a web API to access the\nunderlying repository. The ``django_anyvcs.remote`` module provides a python\nAPI to this web API which provides an interface similar to\n``anyvcs.common.VCSRepo`` objects.\n\n.. WARNING::\n\n Do not make any URLs from ``django_anyvcs.urls`` available to the public,\n as they can reveal sensitive information.\n\nSettings\n--------\n\ndjango-anyvcs looks at the following variables in your project's settings.py:\n\n``VCSREPO_ROOT``\n String, required. The root directory in which all VCS repositories are\n stored.\n\n``VCSREPO_PATH_FUNCTION``\n Function, optional. Override the default path given to a repo. The function\n is given a repo and returns a string (the path).\n\n``VCSREPO_CHECK_NESTED_PATHS``\n Boolean, defaults to True. If true then repo paths are checked against all\n other repo paths to make sure they aren't nested inside each other. This is\n a fairly expensive operation, so if you know this won't ever happen then set\n this to False.\n\n``VCSREPO_ALLOW_NESTED_PATHS``\n Boolean, defaults to False. If true then VCS systems that support it will\n allow path nesting. Currently, only Mercurial supports this.\n\n``VCSREPO_USE_USER_RIGHTS``\n Boolean, defaults to True. If true then the UserRights model will be enabled.\n\n``VCSREPO_USE_GROUP_RIGHTS``\n Boolean, defaults to True. If true then the GroupRights model will be\n enabled.\n\n``VCSREPO_USER_MODEL``\n String, defaults to ``AUTH_USER_MODEL`` or ``'auth.User'``. Defines the user\n model that UserRights is tied to.\n\n``VCSREPO_GROUP_MODEL``\n String, defaults to ``'auth.Group'``. Defines the group model that\n GroupRights is tied to.\n\n``VCSREPO_RIGHTS_FUNCTION``\n Function, optional. If set, this function is called with two parameters: the\n repository being accessed, and the user who is accessing the repository (may\n be None to indicate an anonymous user). The function should return the\n rights string, which is one of '-' (deny access), 'r' (read-only access), or\n 'rw' (read and write access).\n\n``VCSREPO_USER_ACL_FUNCTION``\n Function, optional. If set, this function is called with one parameter which\n is a repository. The function should return a ``dict`` which maps\n ``auth.User`` instances to a rights string, one of '-', 'r', or 'rw' for the\n given repository.\n\n``VCSREPO_GROUP_ACL_FUNCTION``\n Function, optional. If set, this function is called with one parameter which\n is a repository. The function should return a ``dict`` which maps\n ``auth.Group`` instances to a rights string, one of '-', 'r', or 'rw' for the\n given repository.\n\n``VCSREPO_RECALCULATE_DISK_SIZE``\n Boolean, optional. If true, django-anyvcs will automatically recalculate\n disk size of repositories whenever `django-anyvcs-ssh` is invoked to access\n them. Defaults to true.\n\n``VCSREPO_IGNORE_PRIVATE``\n Boolean, optional. If true, django-anyvcs will not consider cached\n information generated by python-anyvcs_ a part of the disk size. Defaults to\n true.\n\nWhen used with django-sshkey_, a setting similar to this will tie together\nthe two apps::\n\n SSHKEY_AUTHORIZED_KEYS_OPTIONS = \\\n 'command=\"env VCSREPO_ROOT=%s /path/to/django-anyvcs-ssh ' \\\n 'http://localhost:8000/anyvcs/access {username}\",no-agent-forwarding,' \\\n 'no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding' % VCSREPO_ROOT\n\nDependencies\n------------\n\n* python-anyvcs_ version 1.1.0 or greater\n\nAlthough not a strict dependency, django-anyvcs was designed to be used in\nconjunction with django-sshkey_ (version 2.0.0 or greater) and would be\nfairly useless without it or something that provides a similar functionality.\n\n.. _django-sshkey: https://github.com/ClemsonSoCUnix/django-sshkey\n.. _python-anyvcs: https://github.com/ScottDuckworth/python-anyvcs", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ClemsonSoCUnix/django-anyvcs", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-anyvcs", "package_url": "https://pypi.org/project/django-anyvcs/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-anyvcs/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/ClemsonSoCUnix/django-anyvcs" }, "release_url": "https://pypi.org/project/django-anyvcs/2.5.0/", "requires_dist": null, "requires_python": null, "summary": "A Django app providing homogeneous management of VCS systems.", "version": "2.5.0" }, "last_serial": 2171429, "releases": { "2.2.0": [ { "comment_text": "", "digests": { "md5": "aa7004cd976a197240fff324c7f0e059", "sha256": "c248a15d2bc2a90938415c428b7c81b119a1b525d80bc81d21b0613b42514b17" }, "downloads": -1, "filename": "django-anyvcs-2.2.0.tar.gz", "has_sig": false, "md5_digest": "aa7004cd976a197240fff324c7f0e059", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32568, "upload_time": "2014-07-24T21:45:31", "url": "https://files.pythonhosted.org/packages/43/2f/4715ebb9a2544b3f11f9478795dcce081a850ae96c414c3b79e6b6ab5bc5/django-anyvcs-2.2.0.tar.gz" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "54d47585a5fead79f31ad9016e0807d0", "sha256": "df9128dad5c554f68676a7506835bb4356f80b6cc069fdd2c2b3ade555be9ffb" }, "downloads": -1, "filename": "django-anyvcs-2.2.1.tar.gz", "has_sig": false, "md5_digest": "54d47585a5fead79f31ad9016e0807d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17960, "upload_time": "2014-07-30T12:46:45", "url": "https://files.pythonhosted.org/packages/35/da/62c650abdacf3e420669864cee3dfeeaa27b2f81a72c5baf4432993d0da4/django-anyvcs-2.2.1.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "8a166c804a61059d4b2e511fa17444d2", "sha256": "cf528e47b3d85c375706b89951a7f8f399c3c277c195c102264a2d48ec9a66bc" }, "downloads": -1, "filename": "django-anyvcs-2.3.0.tar.gz", "has_sig": false, "md5_digest": "8a166c804a61059d4b2e511fa17444d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19804, "upload_time": "2014-08-08T20:08:45", "url": "https://files.pythonhosted.org/packages/51/21/372637b3a7b0494f49748c6551bb858324998464b94da8bfdbbd7fe49ef5/django-anyvcs-2.3.0.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "88e7a4935f9344ee085f74fb113e78fd", "sha256": "2c00117a093b4e54133db5e69e9f57b7fd34b4b26f3eaa1f370348db5d6fc4d4" }, "downloads": -1, "filename": "django-anyvcs-2.3.1.tar.gz", "has_sig": false, "md5_digest": "88e7a4935f9344ee085f74fb113e78fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20406, "upload_time": "2014-08-18T21:04:31", "url": "https://files.pythonhosted.org/packages/53/23/0405ff1f20f1fa5c0bfec1f14bfbfff0a17cec8bf7d07eccbd14191449d4/django-anyvcs-2.3.1.tar.gz" } ], "2.3.2": [ { "comment_text": "", "digests": { "md5": "a6e5af95184224502a8df50631634e98", "sha256": "a748a5f98fcb266fa5bf6d7826d2bfd57ee7560972be159a90b16fff67fe9a00" }, "downloads": -1, "filename": "django-anyvcs-2.3.2.tar.gz", "has_sig": false, "md5_digest": "a6e5af95184224502a8df50631634e98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20479, "upload_time": "2014-08-20T00:51:01", "url": "https://files.pythonhosted.org/packages/f0/c1/dc82abbf4fb1fa93a482ac007677043ef6bcd1ee62d85cf5af2e8b177ec1/django-anyvcs-2.3.2.tar.gz" } ], "2.3.3": [ { "comment_text": "", "digests": { "md5": "5e604ebea6c0ed803cf39d534a4e42f5", "sha256": "ea2fbb547ee08f348ee65b90c515a31731183f3d0328e765e5426dd4359f1edd" }, "downloads": -1, "filename": "django-anyvcs-2.3.3.tar.gz", "has_sig": false, "md5_digest": "5e604ebea6c0ed803cf39d534a4e42f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20559, "upload_time": "2014-08-21T12:34:45", "url": "https://files.pythonhosted.org/packages/1a/5b/46a5611ad54049714165ff17bc46e6b89569ab3328869265dc88f714d368/django-anyvcs-2.3.3.tar.gz" } ], "2.3.4": [ { "comment_text": "", "digests": { "md5": "6c93a3cfcd697a20ce2940334b797b2a", "sha256": "4e24059f0c9574140acc020986cccb2d9e1300515e825b7b0f571782920bc917" }, "downloads": -1, "filename": "django-anyvcs-2.3.4.tar.gz", "has_sig": false, "md5_digest": "6c93a3cfcd697a20ce2940334b797b2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20605, "upload_time": "2014-09-22T20:49:05", "url": "https://files.pythonhosted.org/packages/95/aa/66399a7268217c003950af3cd878aca009fd2efb0b96a5eb84d5683e841b/django-anyvcs-2.3.4.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "5c0a715b7ee75deff77cf4df79f747f7", "sha256": "37241a4cd9d5bd7f1cb771049f7632e779295e48165ee1dd9c04543ff0df019e" }, "downloads": -1, "filename": "django-anyvcs-2.4.0.tar.gz", "has_sig": false, "md5_digest": "5c0a715b7ee75deff77cf4df79f747f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28644, "upload_time": "2015-09-23T19:29:11", "url": "https://files.pythonhosted.org/packages/79/2a/c2e290567c8decc02a55d2955c688bd10f6d9481b1e13cb4d219288567f5/django-anyvcs-2.4.0.tar.gz" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "06121abef4a6e552f3d0a51863509f28", "sha256": "e9663c93b60c77e61dd3055135d2798528621030f17ffdab62e834ac0b753060" }, "downloads": -1, "filename": "django-anyvcs-2.5.0.tar.gz", "has_sig": false, "md5_digest": "06121abef4a6e552f3d0a51863509f28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30794, "upload_time": "2016-06-16T20:08:21", "url": "https://files.pythonhosted.org/packages/0c/9b/f306ed3765558e81b22fe374d19059e9268595fde0a162f6534086e78ce3/django-anyvcs-2.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "06121abef4a6e552f3d0a51863509f28", "sha256": "e9663c93b60c77e61dd3055135d2798528621030f17ffdab62e834ac0b753060" }, "downloads": -1, "filename": "django-anyvcs-2.5.0.tar.gz", "has_sig": false, "md5_digest": "06121abef4a6e552f3d0a51863509f28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30794, "upload_time": "2016-06-16T20:08:21", "url": "https://files.pythonhosted.org/packages/0c/9b/f306ed3765558e81b22fe374d19059e9268595fde0a162f6534086e78ce3/django-anyvcs-2.5.0.tar.gz" } ] }