All Projects → repobee → repobee

repobee / repobee

Licence: MIT license
CLI tool for managing Git repositories on GitHub and GitLab in the context of education

Programming Languages

python
139335 projects - #7 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to repobee

go-scm
Package scm provides a unified interface to multiple source code management systems.
Stars: ✭ 117 (+129.41%)
Mutual labels:  github-enterprise, gitlab
froggit-go
Froggit-Go is a universal Go library, allowing to perform actions on VCS providers.
Stars: ✭ 19 (-62.75%)
Mutual labels:  github-enterprise, gitlab
react-unleash-flags
React Component for Gitlab or Unleash Feature Flags
Stars: ✭ 36 (-29.41%)
Mutual labels:  gitlab
gitlabFAQ
🐧 Gitlab常见问题和有用信息、链接 📝
Stars: ✭ 21 (-58.82%)
Mutual labels:  gitlab
git-the-lines
A Discord bot that prints out the lines referenced in a GitHub, GitLab, or BitBucket snippet link
Stars: ✭ 37 (-27.45%)
Mutual labels:  gitlab
ghe-line-notify
LINE Notify Gateway for Github Enterprise.
Stars: ✭ 19 (-62.75%)
Mutual labels:  github-enterprise
toolbox
Unified kit with all the scripts required for maintaining the repository 🧰
Stars: ✭ 60 (+17.65%)
Mutual labels:  repository-management
MigrateGitlabToGogs
Migrate repositories from Gitlab to Gogs or Gitea
Stars: ✭ 49 (-3.92%)
Mutual labels:  gitlab
indy
Simple artifact proxy for maven and similar build tools
Stars: ✭ 27 (-47.06%)
Mutual labels:  repository-management
python-gitlab3
Python wrapper for the entire GitLab API
Stars: ✭ 44 (-13.73%)
Mutual labels:  gitlab
vscode-github
GitHub Support for vscode
Stars: ✭ 124 (+143.14%)
Mutual labels:  gitlab
proffy
React Native + ReactJS + NodeJS project developed on RocketSeat NexLevelWeek. This project is based on an application for connect students and teachers.
Stars: ✭ 30 (-41.18%)
Mutual labels:  teachers
trac-to-gitlab
Easily migrate your Trac instance to Gitlab
Stars: ✭ 22 (-56.86%)
Mutual labels:  gitlab
tracboat
Trac to GitLab migration toolbox
Stars: ✭ 32 (-37.25%)
Mutual labels:  gitlab
git-squash
Locally squash commits on a branch without resolving any conflicts (a'la squash and merge)
Stars: ✭ 123 (+141.18%)
Mutual labels:  gitlab
RecordingSample
Recording Sample by React Native
Stars: ✭ 27 (-47.06%)
Mutual labels:  gitlab
MergeRequestsCI
👀 UI to see all GitLab merge requests of your teams in one place
Stars: ✭ 14 (-72.55%)
Mutual labels:  gitlab
slab
gitlab API를 사용해 귀찮은 일을 덜어주는 slack 봇.
Stars: ✭ 14 (-72.55%)
Mutual labels:  gitlab
session
Aplus Framework Session Library
Stars: ✭ 170 (+233.33%)
Mutual labels:  gitlab
routing
Aplus Framework Routing Library
Stars: ✭ 186 (+264.71%)
Mutual labels:  gitlab

RepoBee Logo

Build Status Code Coverage Documentation Status PyPi Version Supported Python Versions Supported Platforms License Code Style: Black

Overview

RepoBee 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 is just one command away. RepoBee also has functionality for updating student repos, batch cloning of student repos, opening, closing and listing issues, no-blind and double-blind peer review, and much more!

In addition, RepoBee features a powerful plugin system that allows users to either use existing plugins, or write 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.

repobee-demo-low-quality.mp4

Short video demonstration of using RepoBee and writing a simple plugin. For a higher-quality version of this demo, click this link!

Feature highlights

RepoBee 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 platform
  • Generate, clone and update student repositories based on templates
  • Open, close and list issues
  • Extend and customize RepoBee with the plugin system
  • Very little configuration required on the Git service platform side
    • The only requirement is to have an Organization/Group with private repository capabilities!
  • No local configuration required

For a full list of RepoBee's built-in (i.e. non-plugin) features, see the user guide and CLI reference.

Getting started

First, either install RepoBee or grab the Docker image. Then, start exploring the Docs, where you (among other things) will find the user 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 a Gitea test instance for playing around around with RepoBee in an environment where messing up has no consequence. See the RepoBee Gitea docs for details on how to use RepoBee with Gitea.

Install

We provide an install script that sets up an isolated and correctly configured environment for RepoBee, granted that you have Python 3.7+ and Git installed. The script supports macOS, Linux and Windows Subsystem for Linux (WSL). You can execute it directly using curl, with either bash or zsh.

IMPORTANT: If you use any other shell than bash or zsh, you must still execute the install script with one of them.

$ bash <(curl -s https://repobee.org/install.sh)
$ zsh <(curl -s https://repobee.org/install.sh)

For additional details, please see the install docs.

Docker

We offer a fully featured Docker image that can be used instead of installing RepoBee.

Versioning

As of December 17th 2018, RepoBee's CLI is a stable release and adheres to Semantic Versioning 2.0.0. The internals of RepoBee do not adhere 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.

License

This software is licensed under the MIT License. See the LICENSE file for specifics.

Citing RepoBee in an academic context

If 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].