用于管理大量github存储库的cli工具

repobee的Python项目详细描述


RepoBee-在GitHub和GitLab上管理Git存储库的工具

Build StatusCode CoverageDocumentation StatusPyPi VersionSupported Python VersionsSupported PlatformsLicenseCode Style: Black

Important: RepoBee v2.0.0 is out now! There are some breaking changes, see the release notes for details

概述

repobee是一个用于管理大量数据的命令行界面(cli)工具 在github和gitlab平台上的git存储库,包括云和 自我托管最基本的用例是自动生成学生 基于master(即模板)存储库的存储库,可以包含 例如指令和框架代码。给一个或多个主人 存储库,为学生或小组生成这些存储库的副本 命令离开!不过,这只是表面现象:RepoBee也有 更新学生报告的功能(也许你忘了什么?),批次 克隆学生报告(修改任务时方便),给学生 只读访问其他学生的回购供同行评审,更多! 还有一个plugin system在 允许python程序员以各种方式扩展repobee的地方,并结束 用户可以简单地安装其他人创建的插件。这种插件的一个例子 是^{},它运行 教师在克隆的学生报告中定义了Java代码上的JUnit4测试类

repobee目前正用于 KTH Royal Technical Institute of Technology。这个 课程有大约200名学生和数千个知识库, 允许我们在相当大的范围内测试repobee。

在学术背景下引用RepoBee

如果您想在论文中引用repobee,请引用以下论文:

Simon Larsén and Richard Glassey. 2019. RepoBee: Developing Tool Support for Courses using Git/GitHub. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '19). ACM, New York, NY, USA, 534-540. DOI: https://doi.org/10.1145/3304221.3319784

特色亮点

  • 兼容GitHub和GitLab(云和自托管)
    • GitLab支持在alpha中,并且正在不断更新,请参见 GitLab docs用于 细节。
  • 基于主(模板)存储库为学生生成存储库
  • 批量克隆学生存储库
  • 同行评议的特点:让学生阅读其他学生的 要进行代码复查的存储库。一旦审查完成,就可以轻松撤消读取权限 完成。
  • 支持小组作业(每个存储库有多个学生)
  • 打开、关闭并列出选定学生存储库的问题
  • plugin system
  • 在github/gitlab端只需要很少的配置
    • 唯一的要求是拥有一个具有私有存储库的组织/组 能力!
  • 不需要本地配置

安装

repobee在pypi上,所以python3 -m pip install repobee应该能做到。见 install instructions 更详细的说明。

开始

开始使用repobee的最好方法是 Docs,你(和其他人 会发现 user guide。 它通过实例介绍了repobee的各种命令的使用, 应该让你不费吹灰之力就走上正确的道路。

为什么是repobee?

repobee是在kth皇家技术学院开发的,目的是帮助 教师和助教管理GitHub存储库它是教师的工具 老师,我们在日常工作中使用它。repobee的所有功能 正被我们积极利用,所以也应该对其他老师有用。 对于新手来说,RepoBee提供了一个自以为是的工作流程,很容易采用, 而更高级的用户可以利用插件系统来增强他们的 经验。我们还认识到锁定是一个问题,因此 与github和gitlab兼容,并希望扩展支持 在某个时刻咬人。但你真正想要的可能是 repobee可以做到,下面是repobee的完整功能列表 由--help选项描述(不包括插件!).

$ repobee -h
usage: repobee [-h] [-v]
                {show-config,setup,update,migrate,clone,open-issues,
                 close-issues,list-issues,assign-reviews,
                 end-reviews,check-reviews,verify-settings}
                ...

A CLI tool for administrating large amounts of git repositories on GitHub and
GitLab instances. See the full documentation at https://repobee.readthedocs.io

positional arguments:
  {setup,update,migrate,clone,open-issues,close-issues,list-issues,assign-reviews,end-reviews,check-reviews,show-config,verify-settings,config-wizard}
    setup               Setup student repos.
    update              Update existing student repos.
    migrate             Migrate repositories into the target organization.
    clone               Clone student repos.
    open-issues         Open issues in student repos.
    close-issues        Close issues in student repos.
    list-issues         List issues in student repos.
    assign-reviews      Assign students to peer review each others' repos.
    check-reviews       Check which students have opened peer review issues.
    end-reviews         Delete review allocations created by `assign-reviews`.
                        DESTRUCTIVE ACTION: read help section before using.
    show-config         Show the configuration file
    verify-settings     Verify core settings.
    config-wizard       Interactive configuration wizard to set up the config
                        file.

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Display version info

路线图

截至2018年12月17日,repobee的cli是一个稳定的版本,并坚持Semantic Versioning 2.0.0内部结构 RepoBee的不遵循此版本控制,因此使用RepoBee作为库 不推荐。

插件系统被认为处于alpha阶段,因为它已经看到了很多 比其他cli使用更少的实时操作。功能不太可能 但是当新的用例出现时,钩子可能会被修改,因为 repobee需要修改。如果您开发了一个插件,请与我们联系,以便 如果对 插件系统

即将推出的功能

还有很多东西等着RepoBee下面是一个主要的路线图 正在开发的功能

FeatureStatusETA
Full support for GitLabWork in progress (See docs)Late 2019
Video tutorialsPlanningAugust 2019
GUIPlanningLate 2019

许可证

这个软件是根据麻省理工学院的许可证授权的。见LICENSE 详细信息请归档。

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

推荐PyPI第三方库


热门话题
MIME类型多部分/混合的java无对象DCH   Java Swing中单元格和列的间距   java为什么我不能使用For循环从集合中获取元素?   mysql Java餐厅计费系统   java MediaPlayer内存消耗   println Java添加的神秘输出:一些经过评估,一些经过打印   java我应该使用哪个对象?   PHP到Java论坛游戏集成   通过GeoNetwork上的java http post请求获取XML响应   java为什么类名与使用“==”的内部字符串比较冲突?   java反应。js如何定义自定义id,而不是在html中显示reactselect1value   java中的拼字数组   java如何使ScheduledExecutorService在其计划任务取消时自动终止   java查询未正确执行   IBatis+Java:检索HashMap   要读取的加密Java代码。txt文件并转换为二进制表示形式   Java Web Start应用程序自动加载   java Swing重写对象的paintComponent