Package: repobee
OverviewRepoBee is a command line tool that allows teachers and teaching assistants to
work with large amounts of student Git repositories on the GitHub, GitLab and
Gitea platforms (cloud and self-hosted). The archetypical use case is to
automate creation of student repositories based on template repositories, that
can contain for example instructions and skeleton code. Given any number of
template repositories, creating a copy for each student or group isjust one command away.
RepoBee also has functionality forupdating student repos,batch cloning of student repos,opening, closing and listing issues,no-blindanddouble-blindpeer review, and much more!In addition, RepoBee features a powerfulplugin systemthat allows
users to either use existing plugins, orwrite their own.
Plugins can do a wide range of things, including making RepoBee compatible with
multiple hosting platforms (GitHub, GitLab, Gitea), providing compatibility
with repositories managed by GitHub Classroom, or running JUnit4 test classes
on cloned student repositories.Still not quite sure what RepoBee actually does? The demo video below briefly
explains some of the most important concepts, and showcases how RepoBee can be
used to setup and clone student repositories, as well as how to write a simple
plugin.https://user-images.githubusercontent.com/14223379/121573132-2d725380-ca25-11eb-8aa0-8f50ac3f28f0.mp4Short video demonstration of using RepoBee and writing a simple plugin.For a higher-quality version of this demo, click this link!Feature highlightsRepoBee has a lot going for it. Here are some of the things we are most proud
of:Compatible with GitHub, GitLab and Gitea: No platform lock-in!Support for group assignments (multiple students per repository)No-blind and double-blind peer review, directly on the hosting platformGenerate, clone and update student repositories based on templatesOpen, close and list issuesExtend and customize RepoBee with theplugin systemVery little configuration required on the Git service platform sideThe only requirement is to have an Organization/Group with private repository
capabilities!No local configuration requiredAlthoughsetting a few defaultsis highly recommendedFor a full list of RepoBee's built-in (i.e. non-plugin) features, see theuser guideandCLI reference.Getting startedFirst, eitherinstall RepoBeeor grab theDocker image.
Then, start exploring theDocs,
where you (among other things) will find theuser
guide. It covers use
of RepoBee's various commands by way of practical example, and should set you
on the right path with little effort.We also provide aGitea test instancefor playing
around around with RepoBee in an environment where messing up has no
consequence. See theRepoBee Gitea docsfor details
on how to use RepoBee with Gitea.InstallWe provide an install script that sets up an isolated and correctly configured
environment for RepoBee, granted that you havePython 3.8+ and Git
installed. The script
supports macOS, Linux and Windows Subsystem for Linux (WSL). You can execute it
directly usingcurl, with eitherbashorzsh.IMPORTANT:If you use any other shell than bash or zsh, you must still
execute the install script with one of them.$bash<(curl-shttps://repobee.org/install.sh)$zsh<(curl-shttps://repobee.org/install.sh)For additional details, please seethe install
docs.DockerWe offer a fully featuredDocker imagethat can be used instead of installing RepoBee.VersioningAs of December 17th 2018, RepoBee's CLI is a stable release and adheres toSemantic Versioning 2.0.0. The internals
of RepoBeedo notadhere to this versioning, so using RepoBee as a library
is not recommended.The plugin system is mostly stable as of RepoBee 3.0, but there is a slight
risk of breakage due to unforeseen problems.If you develop a plugin, please
get in touch so that can be taken into consideration if breaking changes are
introduced to the plugin system.LicenseThis software is licensed under the MIT License. See theLICENSEfile for specifics.Citing RepoBee in an academic contextIf you want to reference RepoBee in a paper, please cite the following paper: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