Skip to content
Notify users about new branches and track commits/merges done on branches
Go HTML Shell
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

Build Status Code Climate Issue Count codecov


Github and Gitlab Release/Branch Version Watcher

Get periodic emails about the code diff for Gitlab and Github repositories

How to Setup

Install dep and run dep ensure to fetch to local vendor/ directory

List of dependencies used -

Authorization via Github/Gitlab -
Authentication -
Request Router -
Sessions -
Sending Emails -
Cron -
Yaml Parser -
Github API -
Gitlab API -
Convert between different Go Types -
TimeZone List -
Finding Differences -

How to build for Linux

  • env GOOS=linux GOARCH=amd64 go build

Runtime Dependencies

  • cp .env.sample
  • edit config.yml
  • ls tmpl/

Running on a Linux/Mac environment

  1. mkdir sessions
  2. Fill in the file and modify config.yml
  3. Load the env variables from
  4. Use the binary gitnotify and tmpl/ directory
  5. Start with ./gitnotify in a screen. All logs are currently written to stdout


  1. take a copy of the config.yml -> dataDir or data/ directory
  2. take a copy of the sessions/ directory
  3. The file containing the environment variables
  4. The config.yml file containing the settings


Can I run this inside my own organisation

Only the Configuration needs to be setup.


I started learning Go (~Sep 2016) and this is my first moderate sized project trying to "solve" a problem

Flow of user

Development Flow

  1. Users login via Github
  2. Users keep "an eye" on a project
  3. Notifies users on
  4. creation of new branches/tags
  5. Track a branch for latest commits and links
  6. Send email with summary

User Flow

  1. Landing Page at /home
  2. User logins via Github to authenticate/track
  3. User adds url of repository to track creation of branches/tags and/or branches for latest commits
  4. User receives a confirmation email with the current list of branches
  5. Users receives an email once a day about the information that has changed

Backend Flow

  1. A non logged in user sees the static page present at /home at /
  2. User logs in via Github/Gitlab
  3. Settings page has a set of repositories s/he is tracking
  4. Suggestions based on code language can be pulled for user to track
  5. Once user adds the config, we save it to the settings
  6. After validating the config, an email is sent to the user with the action made
  7. A cron job or daemon uses the user's token to pull the required information
  8. Diffs with the previous information that is present
  9. Sends an email to the user with changes based on settings


  • Copy .env.example to .env
  • Fill in data into .env
  • environment variables required to be loaded for the server to run


Get an update on demand from slack -

You can’t perform that action at this time.