Camo is all about making insecure assets look secure. This is an SSL image proxy to prevent mixed content warnings on secure pages served from github.
We want to allow people to keep embedding images in comments/issues/READMEs/google charting.
We share a key between this proxy and the main GitHub app. We encrypt the URL with hmac so we're not an open proxy. The keys come from the shell environment and are unique per deployment environment. I'm not 100% sure this step is necessary.
When the GitHub app renders markdown it replaces all of the
src attributes on any
img tags with the appropriate URL to hit the proxies.
% coffee server.coffee
To see the full URL resclient is hitting etc, try this.
% RESTCLIENT_LOG=stdout rake
You can see an example god config here.
% coffee -c server.coffee % /usr/bin/env PORT=9090 CAMO_KEY="<my application key>" node server.js