github-streak
v0.2.1
Published
github-streak is a tool to monitor a GitHub repository and collect short-term information about contributions, triggering a webhook based on the event.
Downloads
7
Maintainers
Readme
github-streak
The purpose of github-streak is to monitor a GitHub repository and collect short-term information about contributions, triggering a webhook based on the event.
Use case
Example: you have a pretty active team and you want to gamify the workflow by displaying "Double kill!" message in a connected Slack channel, when somebody makes a double commit, or "RA-A-AMPAGE" on 6 sequential commits.
What is done now
Currently it works only by posting a formatted message about each commit to a given Slack webhook URL as well as multi commits (2x-5x from 'double' to 'RA-A-AMPAGE').
More integrations and event types will come soon.
How to use
NOTE: Usually it's good to have this running on a free Heroku server, or a local Raspberry Pi.
- Define an environmental variable
SLACK_WEBHOOK_URL
with an address of your Slack Webhook. - Run
npm start
on a remote always working machine (e.g. Heroku app) - Add a webhook to your GitHub repository to post
push
events to.../webhooks/push
endpoint. - Flexible configuration is comming, but for now to change event message templates you need to fork a repo and update
config.json
.
Configuration
Templates are defined in config.json
file in events
in a following way:
"EVENT_TYPE": "TEMPLATE"
Available message replacements in templates:
%an
- author name%au
- author username%ae
- author email%cm
- commit message
Example (see config.json
):
{
"multi_timeout": 120000,
"events": {
"COMMIT": "%an made a commit: %cm",
"DOUBLE_COMMIT": "%an got a double commit!",
"TRIPLE_COMMIT": "%an got a triple commit!"
}
}
To-do
- think about other use cases :)
- monitor BitBucket or other git repository
- monitor private repositories
- add more event types and replacers:
"FIRST_COMMIT": "%an opened a coding day by pushing his first commit at %cd: %cm",
- moar ...
Contributions
...are always welcome.
Tests can be found in /tests
folder and be run by npm test
or npm run test:watch
to continuously run tests on a file change.