schema-diff-bot
schema-diff-bot copied to clipboard
A simple slack bot to send the differences between graphql schemas
Schema diff bot
A simple slack bot to send the differences between graphql schemas
How to use
- install the lib globally or local and be free to configure how to call the bot.
npm install [-g] schema-diff-bot
My suggestion is to call the bot using git hook before push new code to the remote repository. I would suggest the usage of Husky to configure git hooks using npm scripts in an easy way.
config file
schema diff bot uses cosmiconfig so, you can create the config file using:
- a package.json property
- a JSON or YAML, extensionless "rc file"
- an "rc file" with the extensions .json, .yaml, .yml, or .js.
- a .config.js CommonJS module
our module is called schemaDiffBot so, you can create:
- a
schemaDiffBotproperty in package.json - a
.schemaDiffBotrcfile in JSON or YAML format - a
.schemaDiffBotrc.jsonfile - a
.schemaDiffBotrc.yaml,.schemaDiffBotrc.yml, or.schemaDiffBotrc.jsfile - a
schemaDiffBot.config.jsfile exporting a JS object
config options
{
leftSchema: "path to file or url to graphql schema",
rightSchema: "path to file or url to graphql schema",
options: {
//headers to be applied in both schemas
headers: {
authorization: "Bearer token",
},
//headers to be applied on leftSchema
leftSchema: {
headers: {}
},
//headers to applied on rightSchema
rightSchema: {
headers: {}
}
},
slack: {
//you should create an slack app e get the token to use web client API
token: "token",
//you also should provide channelId
channelId: "CGU94K7S8"
},
icons: {
//you can change default icons per type of action
//the actions covered are:
changed: ":exclamation:",
removed: ":fire:",
added: ":white_check_mark:"
},
// if true, when has differences the process will stop, useful to run in CI process
stopProcessIfHasDifferences: "false"
}
Example of message received:
