A Probot extension to easily share configs between repositories.
Just put common configuration keys in a common repository within your organization. Then reference this repository from config files with the same name.
# octocat/probot-settings:.github/test.yaml
shared1: will be merged
shared2: will also be merged
# octocat/repo1:.github/test.yaml
_extends: probot-settings
other: AAA
# octocat/repo2:.github/test.yaml
_extends: probot-settings
shared2: overrides shared2
other: BBB
# octocat/repo3:.github/test.yaml
other: CCC # standalone, does not extend other configs
You can also reference configurations from other organizations:
_extends: other/probot-settings
other: DDD
Note that the files must be at the exact same location within the repositories. Configs are shallow-merged, nested objects have to be redefined completely.
const getConfig = require('probot-config');
module.exports = robot => {
robot.on('push', async context => {
// Will look for 'test.yml' inside the '.github' folder
const config = await getConfig(context, 'test.yml');
});
};
# Install dependencies
yarn
# Run the bot
yarn start
# Run test watchers
yarn test:watch
We use prettier for auto-formatting and eslint as linter. Both tools can automatically fix a lot of issues for you. To invoke them, simply run:
yarn fix
It is highly recommended to use VSCode and install the suggested extensions. They will configure your IDE to match the coding style, invoke auto formatters every time you save and run tests in the background for you. No need to run the watchers manually.