用于备份或克隆Gitlab组的Gitlab clone/pull实用程序

gitlabber的Python项目详细描述


https://travis-ci.org/ezbz/gitlabber.svg?branch=masterhttps://codecov.io/gh/ezbz/gitlabber/branch/master/graph/badge.svghttps://badge.fury.io/py/gitlabber.svghttps://img.shields.io/pypi/l/gitlabber.svghttps://img.shields.io/pypi/pyversions/ansicolortags.svg

吉特拉伯

  • 一个Gitlab克隆/拉工具来管理整个Gitlab树(组、子组、项目)*

目的

使用大型Gitlab设置时,通常需要驻留在感兴趣组中的项目子集。在

gitlaber允许您克隆组/子组子集下的所有项目。在

gitlaber从Gitlab服务器构建一个树结构,并允许您使用glob或regex表达式指定要克隆的树的哪个子集

这使得gitlaber适合于开发环境或备份场景

安装

  • 您可以从PyPi安装gitlabber:
pip install gitlabber
  • 您需要从Gitlab创建一个access token,API scoperead_存储库

用法

  • 参数可以通过CLI参数直接提供,也可以通过环境变量::
    ArgumentFlagEnvironment Variable
    token-tGITLAB_TOKEN
    url-uGITLAB_URL
    method-mGITLABBER_CLONE_METHOD
    include-iGITLABBER_INCLUDE
    exclude-xGITLABBER_EXCLUDE
  • 要查看树,请运行带有includes/excludes和-p标志的命令,它将按如下方式打印树

^{pr2}$
  • 要了解如何使用glob模式和regex过滤树节点,请参见globre project page。在
  • 印刷用法:
usage: gitlabber [-h][-t token][-u url][--verbose][-p][--print-format {json,yaml,tree}][-m {ssh,https}][-i csv][-x csv][--version][dest]

Gitlabber - clones or pulls entire groups/projects tree from gitlab

positional arguments:
dest                  destination path for the cloned tree (created if doesn't exist)

optional arguments:
-h, --help            show this help message and exit
-t token, --token token
                        gitlab personal access token https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html
-u url, --url url     gitlab url (e.g.: 'http://gitlab.mycompany.com')
--verbose             print more verbose output
-p, --print           print the tree without cloning
--print-format {json,yaml,tree}
                        print format (default: 'tree')
-m {ssh,http}, --method {ssh,http}
                        the method to use for cloning (either "ssh" or "http")
-i csv, --include csv
                        comma delimited list of glob patterns of paths to projects or groups to clone/pull
-x csv, --exclude csv
                        comma delimited list of glob patterns of paths to projects or groups to exclude from clone/pull
--version             print the version

examples:

    clone an entire gitlab tree using a url and a token:
    gitlabber -t <personal access token> -u <gitlab url>

    only print the gitlab tree:
    gitlabber -p .

    clone only projects under subgroup 'MySubGroup' to location '~/GitlabRoot':
    gitlabber -i '/MyGroup/MySubGroup**' ~/GitlabRoot

    clone only projects under group 'MyGroup' excluding any projects under subgroup 'MySubGroup':
    gitlabber -i '/MyGroup**' -x '/MyGroup/MySubGroup**' .

    clone an entire gitlab tree except projects under groups named 'ArchiveGroup':
    gitlabber -x '/ArchiveGroup**' .

    clone projects that start with a case insensitive 'w' using a regular expression:
    gitlabber -i '/{[w].*}' .

调试

  • 可以使用–verbose标志打印gitlaber调试消息
  • 对于更详细的gitlab消息,可以通过设置环境变量使GitPython模块打印更多调试消息:
exportGIT_PYTHON_TRACE='full'

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

推荐PyPI第三方库


热门话题
当使用RequestDispatcher时,servlets Java最终没有被调用   java生成对具有可变参数数的方法的调用   java如何使用select子句中的参数化列映射iBATIS的查询?   java无法创建类型为org的插件。阿帕奇。登录中。log4j。果心阿佩德。元素RollingFile的RollingFileAppender   java当子实体和父实体之间存在OneTONE JPA关系时,是否可以将其与父实体一起持久化?   Android上的java Facebook集成fbconnect断开链接   获取方法调用方的java机制   从列表创建Oracle阵列时出现java问题   添加和检索元素的ArrayList的java ArrayList   在java中从字符串中删除无效的XML字符   java如何构建完整生成的maven模块   java如何准确地改变播放所有分辨率midi文件的速度?   shell javac:无效标志:/src/中位_度。ubuntu中的java   java使用从其他类的方法检索到的信息