将gitlab中的项目装载为文件系统

gitlabfs的Python项目详细描述


gitlabfs

gitlabfs允许您将公司gitlab实例中的所有项目装载为文件系统。

关于

这个项目的构思是为了方便地浏览公司中许多不同存储库中的代码。虽然gitlab有内置的浏览和搜索功能,但它不像findgrep等常用工具那样方便使用。

它通过将整个gitlab实例公开为具有以下层次结构的文件系统来解决这个问题:

/
  /user
    /project
      /master
        README.md
      /feature
        /abc
          /src
            main.py
      /v1.0
        main.py
  /group
    /subgroup
      /project

这允许您自由浏览gitlab实例中的所有代码,而无需克隆所有代码。所有文件都是在访问时从gitlab api加载的。唯一需要注意的是,它是只读视图。

安装

PyPI

安装最新版本的gitlabfs
pip install gitlabfs

用法

  1. 转到gitlab中的profile页面,使用api作用域generate a new access token

  2. 创建一个目录,从中访问项目,例如~/gitlab

  3. 将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/*

许可证

麻省理工学院许可证

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在带注释的SpringMVC中验证模型中图像的mime类型?   java无法打开Google地图活动。安卓   在另一个类文件中调用时返回空值的java getter   spring引导服务中的java线程   什么版本的Java可以使用Liquibase Maven插件?   原因:java。lang.UnsupportedOperationException:BigQuery源必须在读取之前拆分   需要java模式建议(Hibernate+Guice)   java如何在netbeans中的两个帧之间传输数据?   java在Eclipse中创建新项目,然后将其添加到Mercurial repo中   为什么打印0100用Java打印64?   java如何使用Jackson@JsonFormat注释在序列化时格式化字符串?   bash如何将java库包含到shell脚本中   java如何使我的片段利用我的活动数据?   JButton中的java波动