Skip to main content

Repomate

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

Important: Repomate has changed name to RepoBee. Please see RepoBee's GitHub page for details.

Overview

Repomate is A CLI tool for administrating large amounts of GitHub repositories, geared towards teachers and GitHub Enterprise. Repomate is currently being used for the introductory courses in computer science at KTH Royal Technical Institute of Technology. The courses have roughly 200 students and several thousands of repositories, allowing us to test Repomate at quite a large scale.

Install

Repomate is on PyPi, so python3 -m pip install repomate should do the trick. See the install instructions for more elaborate instructions.

Getting started

The best way to get started with Repomate is to head over to the Docs, where you (among other things) will find the user guide. It covers the use of Repomate's varous commands by way of practical example, and should set you on the right path with little effort.

Why Repomate?

Repomate was developed at KTH Royal Technical Institute of Technology to help teachers and teaching assistants administrate GitHub repositories. It is inspired by the old teachers_pet tool, with added features and a user experience more to our liking. Features range from creating student repositories based on master (template) repos, to opening and closing issues in bulk, to assigning peer reviews and cloning repos in bulk. Some parts of Repomate can be customized using a simple but powerful plugin system. For example, the repomate-junit4 plugin allows for automatically running JUnit4 test classes on production code in student repos. Below is the output from running repomate -h, giving brief descriptions of each of the main features:

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

A CLI tool for administering large amounts of git repositories on GitHub
instances. See the full documentation at https://repomate.readthedocs.io

positional arguments:
  {show-config,setup,update,migrate,clone,open-issues,
   close-issues,list-issues,assign-reviews,
   purge-review-teams,check-reviews,verify-settings}
    show-config         Show the configuration file
    setup               Setup student repos.
    update              Update existing student repos.
    migrate             Migrate master 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      Randomly assign students to peer review each others'
                        repos.
    purge-review-teams  Remove all review teams associated with the specified
                        students and master repos.
    check-reviews       Fetch all peer review teams for the specified student
                        repos, and check which assigned reviews have been done
                        (i.e. which issues have been opened).
    verify-settings     Verify your settings, such as the base url and the
                        OAUTH token.

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

Roadmap

As of December 17th 2018, Repomate's CLI is a stable release and adheres to Semantic Versioning 2.0.0. The internals of Repomate do not adhere to this versioning, so using Repomate as a library is not recommended.

The plugin system is still to be considered in the beta phase, as it has seen much less live action use than the rest of the CLI. Features are highly unlikely to be cut, but hooks may be modified as new use-cases arise.

License

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

Metadata

Release files for repomate 1.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repomate 1.1.3
File Size Uploaded Provenance Actions
repomate-1.1.3.tar.gz 37.4 kB Without provenance Details for repomate-1.1.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for repomate 1.1.3
File Interpreter ABI Platform Actions
repomate-1.1.3-py3-none-any.whl Python 3 none any Details for repomate-1.1.3-py3-none-any.whl

Total release size: 80.4 kB

Release files / repomate-1.1.3.tar.gz

Download URL repomate-1.1.3.tar.gz
Size 37.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a309f8ae64e21e4e7a05e18731c927154650d348277faeb93a6e09fd53ef3b60
BLAKE2b-256 checksum
How to use checksums
0c0fb55fca2d4384cacc39ef4dea77ea091a3a14af3a8d384bd55c42741d12df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2

Release files / repomate-1.1.3-py3-none-any.whl

Download URL repomate-1.1.3-py3-none-any.whl
Size 43.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d3f2e34e91a14e80f033ab624d0012de16ccc847d9e9091c4a628cb72702af6f
BLAKE2b-256 checksum
How to use checksums
531b3b8a0a295eeb42cc19639e12930246e4507077c7dae66ee419cc8c997a05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2

Security for repomate 1.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page