I started learning Go couple of months ago. Writing is the best way for learning a new language and appreciating the beauty.
The project aims at notifying users periodically about the new code changes that went it. I felt I was missing out new merges happening in smaller projects while learning a language. I found amazing libraries in Go and wanted a way to get weekly diffs to understand what happened.
GitNotify is useful to:
- Observe small sized to large sized repositories
- Get daily diffs for open source libraries
- Host inside your own organization for private instances of Github
Go being a language of simplicity and no magic (unlike Ruby/Rails), the philosophy is that the developer is responsible for all the code and no complex frameworks or magic should be involved. Some of the beautiful Go Projects I have seen are
- Hugo | GitNotify Tracker
- Peach | GitNotify Tracker
- Minio | GitNotify Tracker
- caddy | GitNotify Tracker
- gorilla ecosystem | GitNotify Tracker
- docker, cockroachdb and many more…
Deciding on the periodic notifications
The interface for providing periodic notifications needed a thought. I was going to allow my users give complete customization since different people wanted different times of day and a timezone was a factor to consider
Crontab is the best and simplest way to setup recurring tasks. The UI for it became simple when you provide customization for only the hour and day of week for a recurring schedule.
For my case, timezone offset was not sufficient enough, The cron package I was using requires a Timezone instead of offset. Timezone helps detect DST offset as well which an offset like -0600 would help identify.
Support for GitlabAdded support for Gitlab on 2016/12/21 Slack NotificationsAdded support for Slack Notifications on 2016/12/12