# Scripts for PolyGerrit local development against prod using MitmProxy. ## Installation (OSX) 1. Install Docker from http://docker.com 2. Start the proxy and create a new proxied browser instance ``` cd ~/gerrit ~/mitm-gerrit/mitm-serve-app-dev.sh ``` 3. Make sure that the browser uses the proxy provided by the command line, e.g. if you are a Googler check that the BeyondCorp extension uses the "System/Alternative" proxy. 4. Install MITM certificates - Open http://mitm.it in the proxied browser window - Follow the instructions to install MITM certs ## Usage ### Add or replace a single plugin containing static content To develop unminified plugin that loads multiple files, use this. 1. Create a new proxied browser window and start mitmproxy via Docker: ``` ~/mitm-gerrit/mitm-single-plugin.sh ./path/to/static/plugin.html ``` 2. Open any *.googlesource.com domain in proxied window 3. plugin.html and ./path/to/static/* will be served ### Add or replace a minified plugin for *.googlesource.com This flow assumes no additional .html/.js are needed, i.e. the plugin is a single file. 1. Create a new proxied browser window and start mitmproxy via Docker: ``` ~/mitm-gerrit/mitm-plugins.sh ./path/to/plugin.html,./maybe/one/more.js ``` 2. Open any *.googlesource.com domain in proxied window 3. plugin.html and more.js are served ### Force or replace default site theme for *.googlesource.com 1. Create a new proxied browser window and start mitmproxy via Docker: ``` ~/mitm-gerrit/mitm-theme.sh ./path/to/theme.html ``` 2. Open any *.googlesource.com domain in proxied window 3. Default site themes are enabled. 4. Local `theme.html` content replaces `/static/gerrit-theme.html` 5. `/static/*` URLs are served from local theme directory, i.e. `./path/to/` ### Serve uncompiled PolyGerrit 1. Create a new proxied browser window and start mitmproxy via Docker: ``` cd ~/gerrit ~/mitm-gerrit/mitm-serve-app-dev.sh ``` 2. Open any *.googlesource.com domain in proxied window 3. Instead of prod UI (gr-app.html, gr-app.js), local source files will be served