selectors-watcher
selector-watcher
act as a git hook and notify relevant stakeholders with any selectors change
in order to avoid instability and lack of communication between developers and automation engineers
Features
- Detect code changes according to predefined selectors
- Notify stakeholders using Slack, showing the old and the new versions of changed selectors
- Add relevant stakeholders as a reviewers in case pull request exists
Installation & Usage
Install selectors-watcher in your development project
npm install selectors-watcher --save-dev
In package.json
file, you should define a script that executes selectors-watcher.
In this example it named watch
but of you can call it whatever you want.
For example:
"scripts": {
"watch": "npx selectors-watcher --config=PATH_TO_CONFIG_FILE"
}
The script should be defined as a pre-commit/pre-push githook.
Go to .git/hooks/pre-commit
and add the command: npm run <your-script-name>
Also, you can use husky githooks
When developer making changes in one of the selectors defined in the configuration file (See below) and preapring the code for commit/push - selectors-watcher
detect the changes and notify to the relevant stakeholders (Also included in configuration file)
Configuration file
selectors-watcher
has a configuration file with defualt values.
All attributes can be override but there are attributtes that MUST be chaged in order to perform full functionality.
In order to override the values, you need to create a configuration file in your develpment project and provide -c, --config
in your script with the path to it.
Here is a description of different configuration attributtes:
-
channel_id
- The Slack channel ID whre you want to send the notification -
token
- Slack token to use for sending messages.
Here is a begginer explantion of How to quickly get and use a Slack API token. -
reviewers
- Array of github users/groups you would like to add as reviewers for the pull request including the selectors changes. -
owner
- github owner. -
repo
- github repo name -
token
- The access token for using github REST API request. How to create?
{
//The selectors you want to detect changes (e.g. "test-id", "qa-id" etc')
"selectorsType": ["id"],
"slack": {
"channel_id": "",
"token": ""
},
"github": {
"reviewers": [],
"owner": "",
"repo": "",
"octokit_token": ""
},
/* The notification can be sent before pull request created or only after.
* If the notification_level="commit", the notification will be sent before PR opened.
* If the notification_level="pr", the notification will be sent only after PR opened.
*/
"notification_level": "commit" //"commit" OR "pr"
}