将gitlab中的项目装载为文件系统
gitlabfs的Python项目详细描述
gitlabfs
gitlabfs允许您将公司gitlab实例中的所有项目装载为文件系统。
关于
这个项目的构思是为了方便地浏览公司中许多不同存储库中的代码。虽然gitlab有内置的浏览和搜索功能,但它不像find
和grep
等常用工具那样方便使用。
它通过将整个gitlab实例公开为具有以下层次结构的文件系统来解决这个问题:
/
/user
/project
/master
README.md
/feature
/abc
/src
main.py
/v1.0
main.py
/group
/subgroup
/project
这允许您自由浏览gitlab实例中的所有代码,而无需克隆所有代码。所有文件都是在访问时从gitlab api加载的。唯一需要注意的是,它是只读视图。
安装
从PyPI:
安装最新版本的gitlabfspip install gitlabfs
用法
转到gitlab中的profile页面,使用
api
作用域generate a new access token。创建一个目录,从中访问项目,例如
~/gitlab
。将gitlab装载到该目录:
glfs https://gitlab.mycompany.com ~/gitlab
将要求您提供访问令牌,然后将装载gitlab层次结构。
配置
可以传递各种选项来配置文件系统的属性:
--tags
:在存储库引用列表中包含标记。--users
:同时列出用户存储库。
{使用指定元数据更好地近似文件修改时间。--cache-expiry=SEC
:在这几秒钟后使缓存过期(默认值:60)。--fresh-project-tree
:为项目树启用缓存过期。--debug
:为开发目的启用详细日志记录。
默认情况下,这些选项中的许多没有启用,因为它们可能会导致性能下降或更混乱。
默认情况下,访问令牌必须通过命令行提示符提供,但也可以通过GITLAB_TOKEN
环境变量传递。
限制
- 不是为拥有大量项目的Gitlab实例(例如gitlab.com)设计的。
- 文件修改时间不准确,因为gitlab api没有公开它们。
开发
使用Pipenv:
pipenv install
pipenv run ./glfs <url> <mountpoint> [options]
使用以下命令发布pypi包:
pipenv run python setup.py sdist bdist bdist_wheel
pipenv run twine upload dist/*
许可证
麻省理工学院许可证