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)
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.
Anyone who follows the permissive developer manual (Wiki) can create a plugin in any language
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
You need to have Node and cli installed
gh extension install gh-cli-for-education/gh-edu
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