一个Django应用程序,提供对VCS系统的同质化管理。
django-anyvcs的Python项目详细描述
django anyvcs是一个django应用程序,提供对多个 版本控制系统及其访问权限。当前支持 VCS系统是Git、Mercurial和Subversion。
django_anyvcs.models.Repo的每个实例都对应于一个VCS存储库 在服务器的磁盘上。您可以将这些回购协议的访问权限授予一个或多个 djangoUser或Group(来自django.contrib.auth.models)。
所有存储库都可以通过ssh访问方法提供。宋承宪 服务器应配置用户公钥,以强制 要运行的命令,而不是请求的命令-此命令 应该是django-anyvcs-ssh,当 已安装程序包。您可能需要使用django-sshkey来帮助 你这样做。原始的ssh_dispatch.py脚本仍然包含在 向后兼容的弃用警告。
django-anyvcs-ssh程序解释原始ssh命令,该命令 应该在SSH_ORIGINAL_COMMAND环境变量中(自动 由openssh设置),并执行请求,授予和拒绝访问 在Django中配置。
配置
将django_anyvcs添加到项目的INSTALLED_APPS中。
django_anyvcs.views.access视图由django-anyvcs-ssh使用。 映射到此视图的url应该可供运行 django-anyvcs-ssh(通常是本地主机)。
视图django_anyvcs.views.api_call不被 django anyvcs,但提供了一个web api来访问 基础存储库。django_anyvcs.remote模块提供了一个python 提供类似于 anyvcs.common.VCSRepo对象。
警告
不要向公众提供来自django_anyvcs.urls的任何URL, 因为他们可以泄露敏感信息。
设置
django anyvcs查看项目设置中的以下变量。py:
- VCSREPO_ROOT
- 字符串,必需。所有VCS存储库所在的根目录 已存储。
- VCSREPO_PATH_FUNCTION
- 功能,可选。重写给定给回购的默认路径。功能 返回一个字符串(路径)。
- VCSREPO_CHECK_NESTED_PATHS
- 布尔值,默认为true。如果为true,则对所有 其他回购路径,以确保它们不相互嵌套。这是 一个相当昂贵的手术,所以如果你知道这不会发生,那么 此设置为False。
- VCSREPO_ALLOW_NESTED_PATHS
- 布尔值,默认为false。如果是真的,那么支持它的VCS系统将 允许路径嵌套。目前,只有Mercurial支持此功能。
- VCSREPO_USE_USER_RIGHTS
- 布尔值,默认为true。如果为true,则将启用用户权限模型。
- VCSREPO_USE_GROUP_RIGHTS
- 布尔值,默认为true。如果为true,那么grouprights模型将为 已启用。
- VCSREPO_USER_MODEL
- 字符串,默认为AUTH_USER_MODEL或'auth.User'。定义用户 用户权限绑定到的模型。
- VCSREPO_GROUP_MODEL
- 字符串,默认为'auth.Group'。定义组模型 组权限绑定到。
- VCSREPO_RIGHTS_FUNCTION
- 功能,可选。如果已设置,则使用两个参数调用此函数: 正在访问的存储库,以及正在访问存储库的用户(可以 无表示匿名用户)。函数应该返回 权限字符串,它是“-”(拒绝访问)、“r”(只读访问)或 “rw”(读写访问)。
- VCSREPO_USER_ACL_FUNCTION
- 功能,可选。如果已设置,则使用一个参数调用此函数 是一个存储库。函数应该返回映射的dict。 auth.User对权限字符串的实例,对于 给定存储库。
- VCSREPO_GROUP_ACL_FUNCTION
- 功能,可选。如果已设置,则使用一个参数调用此函数 是一个存储库。函数应该返回映射的dict。 auth.Group对权限字符串的实例,对于 给定存储库。
- VCSREPO_RECALCULATE_DISK_SIZE
- 布尔型,可选。如果为真,django anyvcs将自动重新计算晚的 每当调用django anyvcs ssh访问时存储库的磁盘大小 他们。默认为真。
- VCSREPO_IGNORE_PRIVATE
- 布尔型,可选。如果为true,django anyvcs将不考虑缓存 由磁盘大小的一部分python-anyvcs生成的信息。默认为 正确。
与django-sshkey一起使用时,类似的设置将绑定在一起 两个应用程序:
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
依赖关系
- python-anyvcs版本1.1.0或更高版本
尽管django anyvcs不是一个严格的依赖项,但它的设计目的是 与django-sshkey(2.0.0版或更高版本)结合,将是 如果没有它或者其他提供类似功能的东西,这是相当无用的。