Skip to content
Go to file

Latest commit


Git stats


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



Manage your watched GitHub repositories per script

When participanting in large organisations on GitHub and watching all repositories it's getting noisy. Although the watched repositories are configurable it is time consuming to configure hundreds of repositories.

The github-watchlist script lets you configure your watched repositories with patterns. It can easily be set up as a cronjob once you have figured out a good configuration.

Quick Start

Install with zc.buildout:

$ git clone git://
$ cd github-watchlist
$ python
$ bin/buildout

Use bin/initialize to automatically create and configure a GitHub OAuth token:

$ bin/initialize

bin/initialize creates a config.ini file, containing your login / oAuth token and your watch configuration. Edit the config.ini to configure which repositories to watch.

Example config.ini:

github-login = jone
github-oauth-token = 51dc30ddc473d43a6011e9ebba6ca770

watchlist =
    watching:      collective/collective.dexteritytextindexer
    not-watching:  collective/.*
    watching:      jone/.*

Then run the bin/update-watchlist script.

Configuring the watchlist

The watchlist in the config.ini is processed from top-down. Each line has subscription type (watching or not-watching), followed by colon, followed by a regular expression matching one or many repository names (principal/repository-name).

Subscription types:

You receive notifications for all discussions in this repository.
You only receive notifications for discussions in which you participate or are @mentioned.

Matching repositories with regular expressions

See the python Regular expressions documentation for details about the regular expression matching.

Processing the watchlist

The watchlist is processed top-down. Once a repository is matched it will not be matched by a later expression. Therefore the specific expressions (such as an explicit repository name) should be at the top while more generic expressions (such as collective/.*) should be at the bottom.

Witch repositories are processed?

All your repositories and all repositories of organisations you participate in are manageable with this script.

Repositories where you do not participate are not manageable with this script, the subscription for those repositories is not changed.

Watchlist updater

The bin/update-watchlist script gives applies your configuration to your repositories and your current watches and shows a summary of changes you need to confirm:

$ ./bin/update-watchlist --help
usage: update-watchlist [-h] [-c CONFIGFILE] [-l LOGFILE] [-C]

Setup github watchlist.

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIGFILE, --configfile CONFIGFILE
                        Path to the config file (Default:
                        Write changed subscriptions into a logfile.
  -C, --confirmed       Update the subscriptions without user confirmation.
                        This is useful when running as cronjob.
$ ./bin/update-watchlist
 - keep not watching: collective/ArchGenXML
 - keep watching: jone/github-watchlist

 - add subscription: 4teamwork/ftw.lawgiver
 - remove subscription: collective/collective.dancing

 - Keep watching: 1
 - Keep not watching: 1
 - Start watching: 1
 - Stop watching: 1

Continue updating subscriptions? [Yes/No]: yes
INFO create subscription: 4teamwork/ftw.lawgiver
INFO delete subscription: plone/collective.dancing

Using the --confirmed option you can disable the confirmation prompt so that it can be hooked up with a cronjob.


"THE BEER-WARE LICENSE" (Revision 42):

jone wrote this script. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return.


Manage your watched GitHub repositories per script




No releases published


No packages published

Contributors 4



You can’t perform that action at this time.