Skip to main content

A CLI tool for managing large amounts of GitHub repositories

Project description

repomate

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

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.

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 install instructions and user guide.

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 featues:

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

A CLI tool for administrating student repositories.

positional arguments:
  {show-config,setup,update,migrate,clone,add-to-teams,
   open-issues,close-issues,list-issues,assign-peer-reviews,
   purge-peer-review-teams,check-peer-review-progress,
   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.
    add-to-teams        Create student teams and add students to them. This
                        command is automatically executed by the `setup`
                        command.
    open-issues         Open issues in student repos.
    close-issues        Close issues in student repos.
    list-issues         List issues in student repos.
    assign-peer-reviews
                        Randomly assign students to peer review each others'
                        repos.
    purge-peer-review-teams
                        Remove all review teams associated with the specified
                        students and master repos.
    check-peer-review-progress
                        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

repomate is currently in public beta. The currently existing commands are fairly stable and are unlikely to change, barring unexpected bugs or usability issues. This is with the exception of the peer review commands, that are under active development.

The internal API of repomate, including the plugin system, is less stable and may or may not change significantly in the near future.

Any breaking changes will be advertised with deprecation messages in the application well before they are put in effect. repomate is expected to reach 1.0 before December 14th.

License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
repomate-0.6.0-py3-none-any.whl (41.8 kB) Copy SHA256 hash SHA256 Wheel py3
repomate-0.6.0.tar.gz (35.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page