Skip to content

gh-cli-for-education/gh-edu

Repository files navigation

gh-edu is an ecosystem/plugin to help teachers and students that use GitHub on their assignments. The objective is not to replace GitHub classroom but to provide new alternatives and new solutions that are better adapted to the context of the terminal.

gh-edu can refer to the whole ecosystem or the core part, kind of like Linux the kernel and Linux the operative system (GNU/Linux)

Features

One-file and portable configuration

The configuration and data file (config.json) is the main data provider, where any plugin can read from It is auto generated and personal to each user, and can be portable and version controlled with a private GitHub repository called gh-edu-profile, which the user can control manually or thought the pertinent commands Any plugin can take advantage of this configuration file to read data generated by the built-in commands or even third party plugins.

Extensible

Anyone who follows the permissive developer manual (Wiki) can create a plugin in any language

Usable

Designed to be easy to use and well documented. Commands should be as intuitive as using an GUI interface, learn what the commands do and you are ready to go

Installation

You need to have Node and cli installed

gh extension install gh-cli-for-education/gh-edu

Usage

Keep in mind

As plugins artists you have total freedom to develop the extension as you want. But for consistency's sake keep in mind the next points:

To load the configuration file you can add this code (js/ts)

/** Load configuration */
import fs from 'fs'
const stringConfig = fs.readFileSync(process.cwd() + "/../gh-edu/config.json", { encoding: "utf8", flag: "r" })
const config = JSON.parse(stringConfig);
/** END loadConfig */

More solutions will be available for diferents languages

  • -f, --force will not ask for user input.
  • The options -s, --silence, will mute log information and user input. These options have been designed with scripting in mind. Output results and errors ignore these flags.

Upload node_modules to github the gh installation process doesn't install any dependency