django存储和浏览git存储库的视图
django-gitstorage的Python项目详细描述
一个django应用程序,用于浏览git存储库并在其上构建web应用程序。
gitstorage是:
- 一个djangostorage来浏览存储库的内容(您在工作副本中看到的内容) 从光秃秃的存储库(没有工作副本);
- Models以丰富git对象,即向blob添加元数据并允许访问树
- MIXIN ^ {A3}将与基于类的视图相结合,以浏览存储库并添加或移除对象。 在存储库的顶部;
- Management commands。
gitstorage构建在PyGit2和libgit2之上,它不从命令行调用git。
内容
Storage
Django存储支持大部分存储API:打开、保存、存在、Listdir…缺少的特征包括MTIME, ctime和atime,因为git不直接存储这些值。
存储空间和任何git存储库一样有限。它是为一个作家和许多读者设计的。同时发生的 写作甚至没有经过测试。也没有努力优化读取访问。你的里程可能不同。
存储是一个有趣的概念证明,但即使是git storage的其余部分也直接加载git对象。
Models
BlobMetadata
将元数据添加到blob,目前仅限mimetype。
TreePermission
默认情况下只允许管理员用户。将对树及其blob(但不是其子树)的访问权共享给普通用户。
Views
这些视图被设计为基于类的视图的基础,如TeMtPaveVIEW和FraveVIEW, 以及你自己的商业逻辑。
TreeViewMixin
树的默认视图,列出其内容。
BlobViewMixin
blob的默认视图显示其信息。
PreviewViewMixin
如果可能,请在浏览器中预览当前blob,否则请下载。
DownloadViewMixin
强制下载当前blob。
DeleteViewMixin
删除当前blob。
UploadViewMixin
将新文件上载到当前树(作为blob)。
Management Commands
sync blobmetadata
浏览存储库以计算每个未知blob的元数据。
在将新提交推送到存储库之后调用,最好是从git钩子调用。
不处理孤立blob的元数据清理。
Tests
一个最小的django项目被用来运行测试套件。尝试make coverage(在编写本文时为100%)。
Migrations
Gitstorage使用南方。