gitextract_pmdwueda/ ├── .github/ │ ├── actions/ │ │ └── make-in-docker/ │ │ └── action.yml │ ├── dependabot.yml │ └── workflows/ │ ├── ci.yml │ ├── codeql.yml │ ├── deploy.yml │ └── docker-update.yml ├── .gitignore ├── .golangci.yaml ├── .vscode/ │ ├── launch.json │ ├── settings.json │ └── tasks.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── ISSUE_TEMPLATE/ │ ├── checks.md │ ├── prod-deployment.md │ ├── screenshots.md │ └── search.md ├── ISSUE_TEMPLATE.md ├── LICENSE ├── Makefile ├── PULL_REQUEST_TEMPLATE.md ├── README.md ├── api/ │ ├── CORS_list.go │ ├── README.md │ ├── azure/ │ │ ├── api.go │ │ ├── mock_azure/ │ │ │ └── api_mock.go │ │ ├── notify.go │ │ ├── routes.go │ │ ├── webhook.go │ │ └── webhook_test.go │ ├── bsf_handler.go │ ├── bsf_handler_test.go │ ├── checks/ │ │ ├── README.md │ │ ├── api.go │ │ ├── jwt.go │ │ ├── mock_checks/ │ │ │ └── api_mock.go │ │ ├── routes.go │ │ ├── runs.go │ │ ├── suites.go │ │ ├── suites_medium_test.go │ │ ├── summaries/ │ │ │ ├── actions.go │ │ │ ├── actions_test.go │ │ │ ├── compile.go │ │ │ ├── compile_test.go │ │ │ ├── completed.go │ │ │ ├── pending.go │ │ │ ├── regressed.go │ │ │ └── templates/ │ │ │ ├── _file_an_issue.md │ │ │ ├── _pr_and_master_specs.md │ │ │ ├── _pr_runs_links.md │ │ │ ├── _successfully_scraped.md │ │ │ ├── completed.md │ │ │ ├── pending.md │ │ │ └── regressed.md │ │ ├── update.go │ │ ├── update_medium_test.go │ │ ├── update_test.go │ │ ├── webhook.go │ │ └── webhook_test.go │ ├── diff.go │ ├── ghactions/ │ │ ├── notify.go │ │ ├── notify_test.go │ │ └── routes.go │ ├── labels.go │ ├── labels_medium_test.go │ ├── manifest/ │ │ ├── api.go │ │ ├── mock_manifest/ │ │ │ └── api_mock.go │ │ ├── util.go │ │ └── util_test.go │ ├── manifest.go │ ├── manifest_test.go │ ├── metadata_cache.go │ ├── metadata_handler.go │ ├── metadata_handler_test.go │ ├── pending_test_runs.go │ ├── pending_test_runs_medium_test.go │ ├── query/ │ │ ├── README.md │ │ ├── atoms.go │ │ ├── atoms_test.go │ │ ├── cache/ │ │ │ ├── README.md │ │ │ ├── backfill/ │ │ │ │ ├── backfill.go │ │ │ │ ├── backfill_medium_test.go │ │ │ │ ├── backfill_test.go │ │ │ │ └── mock_backfill/ │ │ │ │ └── backfill_mock.go │ │ │ ├── index/ │ │ │ │ ├── aggregator.go │ │ │ │ ├── filter.go │ │ │ │ ├── index.go │ │ │ │ ├── index_filter_test.go │ │ │ │ ├── index_medium_test.go │ │ │ │ ├── index_mock.go │ │ │ │ ├── index_test.go │ │ │ │ ├── results.go │ │ │ │ ├── results_test.go │ │ │ │ ├── tests.go │ │ │ │ └── tests_test.go │ │ │ ├── lru/ │ │ │ │ ├── lru.go │ │ │ │ └── lru_test.go │ │ │ ├── monitor/ │ │ │ │ ├── monitor.go │ │ │ │ ├── monitor_mock.go │ │ │ │ └── monitor_test.go │ │ │ ├── poll/ │ │ │ │ ├── poll.go │ │ │ │ └── poll_test.go │ │ │ └── query/ │ │ │ ├── query.go │ │ │ └── query_test.go │ │ ├── concrete_query.go │ │ ├── metadata_cache.go │ │ ├── query.go │ │ ├── query_test.go │ │ ├── routes.go │ │ ├── search.go │ │ ├── search_medium_test.go │ │ ├── search_test.go │ │ ├── test/ │ │ │ └── types.go │ │ ├── util.go │ │ └── web_features_manifest_cache.go │ ├── receiver/ │ │ ├── api.go │ │ ├── api_cloud_test.go │ │ ├── api_medium_test.go │ │ ├── azure.go │ │ ├── azure_test.go │ │ ├── client/ │ │ │ ├── client.go │ │ │ └── client_test.go │ │ ├── create_run.go │ │ ├── create_run_test.go │ │ ├── gcs.go │ │ ├── handlers.go │ │ ├── mock_receiver/ │ │ │ └── api_mock.go │ │ ├── receive_results.go │ │ ├── receive_results_test.go │ │ ├── routes.go │ │ ├── update_pending_run.go │ │ └── update_pending_run_test.go │ ├── results_redirect_handler.go │ ├── routes.go │ ├── screenshot/ │ │ ├── cache.go │ │ ├── model.go │ │ ├── model_medium_test.go │ │ └── routes.go │ ├── screenshot_redirect_handler.go │ ├── shas.go │ ├── shas_medium_test.go │ ├── taskcluster/ │ │ ├── mock_taskcluster/ │ │ │ └── webhook_mock.go │ │ ├── routes.go │ │ ├── webhook.go │ │ └── webhook_test.go │ ├── test_history.go │ ├── test_history_test.go │ ├── test_run.go │ ├── test_run_medium_test.go │ ├── test_runs.go │ ├── test_runs_medium_test.go │ ├── user.go │ ├── versions.go │ └── versions_medium_test.go ├── docs/ │ ├── admin.md │ ├── api.md │ ├── app-engine.md │ ├── cache.md │ ├── docker.md │ ├── gcs.md │ ├── triaging.md │ ├── ui.md │ └── upgrading-go.md ├── git/ │ └── hooks/ │ ├── README.md │ └── pre-push ├── go.mod ├── go.sum ├── results-processor/ │ ├── .gcloudignore │ ├── .gitignore │ ├── .python-version │ ├── Dockerfile │ ├── README.md │ ├── app.staging.yaml │ ├── app.yaml │ ├── config.py │ ├── gsutil.py │ ├── main.py │ ├── mypy.ini │ ├── processor.py │ ├── processor_test.py │ ├── requirements.in │ ├── requirements.txt │ ├── test_server.py │ ├── test_util.py │ ├── tox.ini │ ├── wptreport.py │ ├── wptreport_test.py │ ├── wptscreenshot.py │ └── wptscreenshot_test.py ├── scripts/ │ ├── README.md │ ├── check_chromium_revision.py │ ├── process_test_history.py │ └── update_chromium_revision.py ├── shared/ │ ├── appengine.go │ ├── appengine_test.go │ ├── browsers.go │ ├── browsers_test.go │ ├── cache.go │ ├── cache_test.go │ ├── datastore.go │ ├── datastore_cached.go │ ├── datastore_cloud.go │ ├── datastore_medium_test.go │ ├── errors.go │ ├── errors_test.go │ ├── fetch_bsf.go │ ├── fetch_bsf_test.go │ ├── fetch_runs.go │ ├── github_oauth.go │ ├── logger.go │ ├── manifest.go │ ├── manifest_test.go │ ├── metadata.go │ ├── metadata_test.go │ ├── metadata_util.go │ ├── metadata_util_test.go │ ├── metrics/ │ │ ├── models.go │ │ └── models_test.go │ ├── models.go │ ├── models_test.go │ ├── params.go │ ├── params_test.go │ ├── product_spec.go │ ├── request_caching.go │ ├── request_caching_test.go │ ├── routing.go │ ├── run_diff.go │ ├── run_diff_test.go │ ├── secret_manager.go │ ├── secret_manager_cloud.go │ ├── secret_manager_cloud_cloud_test.go │ ├── sharedtest/ │ │ ├── README.md │ │ ├── appengine_mock.go │ │ ├── cache_mock.go │ │ ├── datastore_mock.go │ │ ├── fetch_bsf_mock.go │ │ ├── github_oauth_mock.go │ │ ├── io.go │ │ ├── metadata_util_mock.go │ │ ├── run_diff_mock.go │ │ ├── test_run_query_mock.go │ │ ├── triage_metadata_mock.go │ │ └── util.go │ ├── statuses.go │ ├── statuses_test.go │ ├── tag_test.go │ ├── test_run_filter.go │ ├── test_run_filter_test.go │ ├── test_run_query.go │ ├── test_run_query_medium_test.go │ ├── triage_metadata.go │ ├── triage_metadata_test.go │ ├── util.go │ ├── util_test.go │ ├── web_features.go │ ├── web_features_manifest_github_download.go │ ├── web_features_manifest_github_download_test.go │ ├── web_features_manifest_util.go │ ├── web_features_manifest_util_test.go │ └── web_features_test.go ├── util/ │ ├── __init__.py │ ├── add_production_run.py │ ├── cleanup-versions.sh │ ├── commands.sh │ ├── crontab-example │ ├── deploy-comment.sh │ ├── deploy-production.sh │ ├── deploy-staging.sh │ ├── deploy.sh │ ├── docker-dev/ │ │ ├── dev_data.sh │ │ ├── run.sh │ │ └── web_server.sh │ ├── generate_testrun_index.py │ ├── gs-cors.json │ ├── logging.sh │ ├── populate_dev_data.go │ ├── pull_run_into_static.py │ ├── server-watch.sh │ ├── tools.go │ └── wct.sh ├── webapp/ │ ├── .gitignore │ ├── README.md │ ├── about_handler.go │ ├── about_handler_medium_test.go │ ├── admin_handler.go │ ├── admin_handler_test.go │ ├── analyzer_handler.go │ ├── components/ │ │ ├── browser-picker.js │ │ ├── channel-picker.js │ │ ├── compat-2021.js │ │ ├── display-logo.js │ │ ├── github-login.js │ │ ├── info-banner.js │ │ ├── interop-dashboard.js │ │ ├── interop-data-manager.js │ │ ├── interop-data.js │ │ ├── interop-feature-chart.js │ │ ├── interop-summary.js │ │ ├── interop.js │ │ ├── loading-state.js │ │ ├── ohm.js │ │ ├── path.js │ │ ├── pluralize.js │ │ ├── product-builder.js │ │ ├── product-info.js │ │ ├── reftest-analyzer.js │ │ ├── results-navigation.js │ │ ├── self-navigator.js │ │ ├── test/ │ │ │ ├── fixtures/ │ │ │ │ ├── interop.json │ │ │ │ └── passrates.json │ │ │ ├── interop-data.html │ │ │ ├── loading-state.html │ │ │ ├── path.html │ │ │ ├── product-builder.html │ │ │ ├── product-info.html │ │ │ ├── reftest-analyzer.html │ │ │ ├── test-file-results-table.html │ │ │ ├── test-file-results.html │ │ │ ├── test-run.html │ │ │ ├── test-runs-query-builder.html │ │ │ ├── test-runs-query.html │ │ │ ├── test-runs.html │ │ │ ├── test-search.html │ │ │ ├── test-utils.html │ │ │ ├── util/ │ │ │ │ └── helpers.js │ │ │ ├── wpt-amend-metadata.html │ │ │ ├── wpt-app.html │ │ │ ├── wpt-flags.html │ │ │ ├── wpt-metadata.html │ │ │ ├── wpt-permalinks.html │ │ │ └── wpt-results.html │ │ ├── test-file-results-table.js │ │ ├── test-file-results.js │ │ ├── test-info.js │ │ ├── test-results-history-timeline.js │ │ ├── test-run.js │ │ ├── test-runs-query-builder.js │ │ ├── test-runs-query.js │ │ ├── test-runs.js │ │ ├── test-search.js │ │ ├── utils.js │ │ ├── wpt-amend-metadata.js │ │ ├── wpt-bsf.js │ │ ├── wpt-colors.js │ │ ├── wpt-flags.js │ │ ├── wpt-header.js │ │ ├── wpt-insights.js │ │ ├── wpt-metadata.js │ │ ├── wpt-permalinks.js │ │ ├── wpt-processor.js │ │ └── wpt-runs.js │ ├── components_handler.go │ ├── components_handler_test.go │ ├── dynamic-components/ │ │ ├── templates/ │ │ │ └── wpt-env-flags.js │ │ └── wpt-env-flags.js │ ├── dynamic_components_handler.go │ ├── eslint.config.mjs │ ├── flags_handler.go │ ├── insights_handler.go │ ├── interop_handler.go │ ├── interop_handler_test.go │ ├── login.go │ ├── login_test.go │ ├── package.json │ ├── processor.go │ ├── routes.go │ ├── static/ │ │ ├── common.css │ │ ├── interop-2021-experimental.csv │ │ ├── interop-2021-stable.csv │ │ ├── interop-2022-experimental.csv │ │ ├── interop-2022-stable.csv │ │ ├── interop-2023-experimental.csv │ │ ├── interop-2023-stable.csv │ │ ├── interop-2024-experimental.csv │ │ ├── interop-2024-mobile-experimental.csv │ │ ├── interop-2024-stable.csv │ │ ├── interop-2025-experimental.csv │ │ ├── interop-2025-mobile-experimental.csv │ │ ├── interop-2025-stable.csv │ │ ├── interop-data.json │ │ ├── robots.txt │ │ └── wptd-metrics/ │ │ └── 0-0/ │ │ ├── chrome-failures.json │ │ ├── edge-failures.json │ │ ├── firefox-failures.json │ │ ├── pass-rates.json │ │ └── safari-failures.json │ ├── template.go │ ├── templates/ │ │ ├── _ga.html │ │ ├── _head_common.html │ │ ├── _test_run_query_params.html │ │ ├── _test_run_ui_query_params.html │ │ ├── about.html │ │ ├── admin_flags.html │ │ ├── admin_upload.html │ │ ├── analyzer.html │ │ ├── compat-2021.html │ │ ├── flags.html │ │ ├── index.html │ │ ├── insights.html │ │ ├── interop.html │ │ ├── processor.html │ │ └── test-runs.html │ ├── test_results_handler.go │ ├── test_results_handler_medium_test.go │ ├── test_runs_handler.go │ ├── views/ │ │ ├── wpt-404.js │ │ ├── wpt-app.js │ │ └── wpt-results.js │ ├── wct.conf.json │ └── web/ │ ├── .gcloudignore │ ├── Dockerfile │ ├── app.staging.yaml │ ├── app.yaml │ ├── dispatch.yaml │ ├── index.yaml │ ├── main.go │ ├── nginx.conf │ ├── queue.yaml │ └── routes_test.go └── webdriver/ ├── README.md ├── appserver.js ├── builder_test.go ├── chrome.go ├── datastore.js ├── dev-data.js ├── file_results_test.go ├── firefox.go ├── label_test.go ├── package.json ├── path-test.js ├── path_test.go ├── product_test.go ├── search_test.go ├── test_runs_test.go ├── util.js ├── webapp_server.go ├── webdriver.go └── webdriver.js