diff --git a/gcp/website/frontend_handlers.py b/gcp/website/frontend_handlers.py index 5cdb9fcb5d6..8b9d3d4b4c7 100644 --- a/gcp/website/frontend_handlers.py +++ b/gcp/website/frontend_handlers.py @@ -220,6 +220,8 @@ def docs(): @blueprint.route('/linter', strict_slashes=False) def linter(): + if request.host_url == 'osv.dev': + return redirect(request.url.replace('osv.dev', 'test.osv.dev'), code=302) return render_template('linter.html') diff --git a/gcp/website/linter_api.py b/gcp/website/linter_api.py index 204215f7dc2..7f9b31b1b0d 100644 --- a/gcp/website/linter_api.py +++ b/gcp/website/linter_api.py @@ -15,7 +15,7 @@ import json import logging -from flask import Blueprint, abort, jsonify +from flask import Blueprint, abort, jsonify, redirect, request from google.cloud import storage blueprint = Blueprint('linter_api', __name__, url_prefix='/linter-findings') @@ -25,6 +25,19 @@ LINTER_PREFIX = 'linter-result/' +@blueprint.before_request +def redirect_to_test(): + """Redirect requests from production to test site.""" + if request.host == 'osv.dev': + return redirect(request.url.replace('osv.dev', 'test.osv.dev'), code=302) + + if request.host == 'api.osv.dev': + return redirect( + request.url.replace('api.osv.dev', 'api.test.osv.dev'), code=302) + + return None + + def _get_storage_client(): """Get storage client.""" return storage.Client()