Skip to main content

GitHub Commit Watcher

Project description

GitHub’s Watch feature doesn’t send notifications when commits are pushed. This script aims to implement this feature and much more.

Installation

$ sudo apt-get install sendmail
$ sudo pip install gicowa

Quick setup

Add the following line to your /etc/crontab:

0 * * * * root gicowa --persist --no-color --mailto myself@mydomain.com lastwatchedcommits MyGitHubUsername sincelast > /tmp/gicowa 2>&1

That’s it. As long as your machine is running you’ll get e-mails when something gets pushed on a repo you’re watching. NOTES:

  • The e-mails are likely to be considered as spam until you mark one as non-spam in your e-mail client. Or use the –mailfrom option.

  • If you’re watching 15 repos or more, you probably want to use the –credentials option to make sure you don’t hit the GitHub API rate limit.

Other/Advanced usage

gicowa is a generic command-line tool with which you can make much more that just implementing the use case depicted in the introduction. This section shows what it can.

List repos watched by a user

$ gicowa watchlist AurelienLourot
watchlist AurelienLourot
AurelienLourot/uncommitted
AurelienLourot/crouton-emacs-conf
brillout/FasterWeb
AurelienLourot/github-commit-watcher

List last commits on a repo

$ gicowa lastrepocommits AurelienLourot/github-commit-watcher since 2015 07 05 09 12 00
lastrepocommits AurelienLourot/github-commit-watcher since 2015-07-05 09:12:00
Last commit pushed on 2015-07-05 10:48:58
Committed on 2015-07-05 10:46:27 - Aurelien Lourot - Minor cleanup.
Committed on 2015-07-05 09:39:01 - Aurelien Lourot - watchlist command implemented.
Committed on 2015-07-05 09:12:00 - Aurelien Lourot - argparse added.

NOTE: keep in mind that a commit’s committer timestamp isn’t the time at which it gets pushed.

List last commits on repos watched by a user

$ gicowa lastwatchedcommits AurelienLourot since 2015 07 04 00 00 00
lastwatchedcommits AurelienLourot since 2015-07-04 00:00:00
AurelienLourot/crouton-emacs-conf - Last commit pushed on 2015-07-04 17:10:18
AurelienLourot/crouton-emacs-conf - Committed on 2015-07-04 17:08:48 - Aurelien Lourot - Support for Del key.
brillout/FasterWeb - Last commit pushed on 2015-07-04 16:40:54
brillout/FasterWeb - Committed on 2015-07-04 16:38:55 - brillout - add README
AurelienLourot/github-commit-watcher - Last commit pushed on 2015-07-05 10:48:58
AurelienLourot/github-commit-watcher - Committed on 2015-07-05 10:46:27 - Aurelien Lourot - Minor cleanup.
AurelienLourot/github-commit-watcher - Committed on 2015-07-05 09:39:01 - Aurelien Lourot - watchlist command implemented.
AurelienLourot/github-commit-watcher - Committed on 2015-07-05 09:12:00 - Aurelien Lourot - argparse added.
AurelienLourot/github-commit-watcher - Committed on 2015-07-05 09:07:14 - AurelienLourot - Initial commit

NOTE: if you’re watching 15 repos or more, you probably want to use the –credentials option to make sure you don’t hit the GitHub API rate limit.

List last commits since last run

Any listing command taking a since <timestamp> argument takes also a sincelast one. It will then use the time where that same command has been run for the last time on that machine with the option –persist. This option makes gicowa remember the last execution time of each command in ~/.gicowa.

$ gicowa --persist lastwatchedcommits AurelienLourot sincelast
lastwatchedcommits AurelienLourot since 2015-07-05 20:17:46
$ gicowa --persist lastwatchedcommits AurelienLourot sincelast
lastwatchedcommits AurelienLourot since 2015-07-05 20:25:33

Send output by e-mail

You can send the output of any command to yourself by e-mail:

$ gicowa --no-color --mailto myself@mydomain.com lastwatchedcommits AurelienLourot since 2015 07 04 00 00 00
lastwatchedcommits AurelienLourot since 2015-07-04 00:00:00
AurelienLourot/crouton-emacs-conf - Last commit pushed on 2015-07-04 17:10:18
AurelienLourot/crouton-emacs-conf - Committed on 2015-07-04 17:08:48 - Aurelien Lourot - Support for Del key.
brillout/FasterWeb - Last commit pushed on 2015-07-04 16:40:54
brillout/FasterWeb - Committed on 2015-07-04 16:38:55 - brillout - add README
AurelienLourot/github-commit-watcher - Last commit pushed on 2015-07-05 10:48:58
AurelienLourot/github-commit-watcher - Committed on 2015-07-05 10:46:27 - Aurelien Lourot - Minor cleanup.
AurelienLourot/github-commit-watcher - Committed on 2015-07-05 09:39:01 - Aurelien Lourot - watchlist command implemented.
AurelienLourot/github-commit-watcher - Committed on 2015-07-05 09:12:00 - Aurelien Lourot - argparse added.
AurelienLourot/github-commit-watcher - Committed on 2015-07-05 09:07:14 - AurelienLourot - Initial commit
Sent by e-mail to myself@mydomain.com

NOTES:

  • You probably want to use –no-color because your e-mail client is likely not to render the bash color escape sequences properly.

  • The e-mails are likely to be considered as spam until you mark one as non-spam in your e-mail client. Or use the –mailfrom option.

Changelog

1.0.1 (2015-08-18) to 1.0.6 (2015-08.19)

  • Documentation improved.

Initial Author

Aurelien Lourot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gicowa-1.0.6.tar.gz (7.5 kB view details)

Uploaded Source

File details

Details for the file gicowa-1.0.6.tar.gz.

File metadata

  • Download URL: gicowa-1.0.6.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for gicowa-1.0.6.tar.gz
Algorithm Hash digest
SHA256 47708329ac182e30d463e7c1fa81f1fc4c97bcacd24717b47deaa1a8136605cc
MD5 0eb14f2136ef38b7ca95cde6a6df2481
BLAKE2b-256 9b9aee30a26175f1feecd84588132c24d6ec61f3306f2310bc7ccc4284b481eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page