| # 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 |