Skip to main content

A plugin that adds the issue-feedback command to RepoBee

Project description

repobee-feedback

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

A RepoBee plugin that adds the issue-feedback command to RepoBee. It allows the user to specify a directory containing issue files. Issue files are simply markdown files in which the first line is taken to be the title of the issue, and the rest the body. The issue-feedback command looks for issue files called <STUDENT_REPO_NAME>.md, and opens them in the respective student repos.

Alternatively, you can also use a special file format to put all issues into the same file, see The multi issues file.

Important: This plugin is still in very early stages and may change considerably over the coming weeks.

Install

repobee-feedback is on PyPi, so installing is as simple as:

python3 -m pip install --user --upgrade repobee-feedback

If you want the latest dev-build, you can also install directly from the repo:

$ python3 -m pip install git+https://github.com/repobee/repobee-feedback.git

Usage

Activate the plugin

To use repobee-feedback, you first need to install it, and then activate it as a plugin. You can do that either by providing it on the command line:

$ repobee -p feedback issue-feedback [...]

Or, you can add it to the plugins section of the config file.

[DEFAULTS]
plugins = feedback

And then the issue-feedback command will simply appear. For more details on using plugins, see the RepoBee plugin docs.

The issue files

issue-feedback looks for files called <STUDENT_REPO_NAME>.md. So, if you for example want to open feedback issues for students slarse and rjglasse for assignment task-1, it will expect the files slarse-task-1.md and rjglasse-task-1.md to be present in the issue files directory. More files can be present, but if any of the expected issue files are missing, an error is displayed and no issues are opened.

The issue files should be Markdown-formatted. The first line of the file is the title, the rest is the body. Note that the title (i.e. first line) should not contain any formatting as it typically does not render well on GitHub/GitLab.

The multi issues file

Alternatively, you can put all issues into a single file and specify the path to it with the --multi-issues-file argument (see Optional arguments). Each issue should begin with #ISSUE#<STUDENT_REPO_NAME>#<ISSUE_TITLE>, and everything between that line and the next such line is considered to be the body of the issue. Here is an example file with issues for students slarse and rjglasse for assignment task-1.

#ISSUE#slarse-task-1#This is a neat title
Well done mr slarse, you did good here.
You could have done a bit better on blabla, though.

Overall well done!

#ISSUE#rjglasse-task-1#This is another title
Hmm, not sure what's going on here.

Could you explain it better?

Note: The first line of the multi issues file must be an #ISSUE# line.

Using the issue-feedback command

The issue-feedback command is straightforward. It takes the "regular" options that most RepoBee commands (base url, token, etc), but these are also picked from the config file as per usual. With a typical RepoBee configuration, you only need to supply --mn|--master-repo-names and -s|--students (or --sf|--students_file). Here's an example:

$ repobee -p feedback issue-feedback --mn task-1 -s slarse rjglasse

This will cause issue-feedback to search through the current directory (which is the default issue directory) for slarse-task-1.md and rjglasse-task-1.md.

Note: By default, issue-feedback runs in interactive mode: it will prompt you y/n before opening an issue. See the next section for how to disable that.

Optional arguments

issue-feedback has three optional arguments: -b|--batch-mode, --id|--issue-dir and --mi|--multi-issues-file.

Note: --id and --mi are mutually exclusive, you can only supply one.

  -b, --batch-mode      Run without any yes/no promts.
  --id ISSUES_DIR, --issues-dir ISSUES_DIR
                        Directory containing issue files. The files should be
                        named <STUDENT_REPO_NAME>.md (for example, slarse-
                        task-1.md). The first line is assumed to be the title,
                        and the rest the body. Defaults to the current
  --mi MULTI_ISSUES_FILE, --multi-issues-file MULTI_ISSUES_FILE
                        File containing all issues to be openend. Each
                        separate issue should begin with a line containing
                        only #ISSUE#<STUDENT_REPO_NAME>#<ISSUE_TITLE>. For
                        example, for student `slarse` and assignment `task-1`
                        and issue title `Pass`, the line should read
                        `#ISSUE#slarse-task-1#Pass` (without backticks). The
                        very first line of the file must be an #ISSUE# line.

License

See LICENSE for details.

Project details


Download files

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

Source Distribution

repobee-feedback-0.5.0.tar.gz (6.4 kB view hashes)

Uploaded Source

Built Distribution

repobee_feedback-0.5.0-py3-none-any.whl (7.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page