Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/viveknathani/workdiff
Generate changelogs from github commits and send them to slack, on a daily/weekly/monthly basis! 📋
https://github.com/viveknathani/workdiff
bot github node slack
Last synced: 15 days ago
JSON representation
Generate changelogs from github commits and send them to slack, on a daily/weekly/monthly basis! 📋
- Host: GitHub
- URL: https://github.com/viveknathani/workdiff
- Owner: viveknathani
- License: mit
- Created: 2024-08-10T13:46:43.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-08-15T19:47:00.000Z (3 months ago)
- Last Synced: 2024-10-04T21:36:02.480Z (about 1 month ago)
- Topics: bot, github, node, slack
- Language: TypeScript
- Homepage: https://workdiff.nattukaka.dev
- Size: 99.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# workdiff
Generate changelogs from github commits and send them to slack, on a daily/weekly/monthly basis!
### add repositories
Repositories to be tracked are stored in [src/data/input.jsonl](./src/data/input.jsonl) file.
Each JSON line expects the following keys mandatorily:
1. `owner`: owner of the repository (typically a github user or a github organization)
2. `repo`: name of the repository
3. `branch`: branch to pick commits from
4. `interval`: cron expression to define your interval of fetching data and posting to slack
5. `since`: pick commits since when? acceptable values: `LAST_DAY` | `LAST_WEEK` | `LAST_MONTH`
6. `slackUrlKey`: The environment variable in which your slack webhook URL is stored.Important => For every owner in the file, `workdiff` expects a corresponding environment variable, `GITHUB_TOKEN_${owner}`. This is your personal access token generated on github.
This file is checked into the codebase. Everytime you deploy the service, it will run a bootstrap operation that does the following:
1. Collect all tasks to run from the `jsonl` file.
2. Get rid of any old delayed tasks.
3. Schedule all the tasks.
4. Start the server!You can view the scheduled tasks at: `/`.
### deployment
This project currently runs as a docker container on a cheap VPS. Feel free to fork this and run your own version!
### contributing
I am happy to accept pull requests. No hard rules.
### acknowledgements
created by Vivek Nathani ([@viveknathani_](https://twitter.com/viveknathani_)), licensed under the [MIT License](./LICENSE).