If you have a GitHub project with an ever-growing number of repos, and you want to automatically activate those repos for Travis-CI builds without having to manually click all the switches on their web site, then this script is for you.
-
If you haven't already done this, you'll first need to
pip install requests
for a necessary library. -
You need to get a "token" for Travis-CI, which isn't the same thing as the "token" that Travis-CI displays when you log into it. (Why? No idea.)
-
First, get a GitHub token with all the "Repo" privileges. You do this on the GitHub website (instructions).
-
Install the httpie command-line tool.
-
Run this one-liner, or something like it with your favorite alternative tool, telling Travis your GitHub API token and returning you a Travis-API token. (Replace "XXXXX" with your GitHub API token.)
http POST https://api.travis-ci.com/auth/github github_token=XXXXX
-
Now you'll have a Travis API token. Edit the
travis-activate.py
script and paste it at the top where the code saystravisToken =
. (If you're doing this for multiple repos, you could presumably modify this script to take the token as an external argument. We're more interested in having a script that "just works" without any environmental dependencies.) -
Edit the
githubProject
string to reflect your project's name (e.g., forhttps://github.com/RiceComp215
, the project name isRiceComp215
). You should also write a suitable regular expression inrepoRegex
, specifying which repos you want to include. Non-matching repos will be ignored.
Now you can simply run python travis-activate.py
and
it will both activate any previously inactive repos (matching the
regex) and will request a rebuild for them. Easy! Run it from a cron script? Sure!
Note that this script requests that Travis synchronize itself with
GitHub, but this request appears to be asynchronous, so a single run
of this script might still miss some recently created repositories.