Official documentation here.
gicowa.py - GitHub Commit Watcher
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.2.3 (2015-10-17) to 1.2.5 (2015-10-19):
Exception on non-ASCII characters fixed.
1.2.2 (2015-10-12):
Machine name appended to e-mail content.
1.2.1 (2015-08-20):
Documentation improved.
1.2.0 (2015-08-20):
--version option implemented.
1.1.0 (2015-08-20):
--errorto option implemented.
1.0.1 (2015-08-18) to 1.0.9 (2015-08-19):
Documentation improved.
Contributors
Metadata
Release files for gicowa 1.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| gicowa-1.2.5.tar.gz | 11.1 kB | Without provenance | Details |
Release files / gicowa-1.2.5.tar.gz
| Download URL | gicowa-1.2.5.tar.gz |
|---|---|
| Size | 11.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e615fffc06cf5df8a1d3d8d652e53a24de00d55522a37abfa9833f1ec9ec80c
|
|
BLAKE2b-256 checksum How to use checksums |
74f890acedb11c7a30971fbdc307603935699a3918355af40986bd6ca210aac7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for gicowa 1.2.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.