Repository Analysis

nginx-proxy/nginx-proxy

Automated Nginx Reverse Proxy for Docker

17.1 Moderate AI signal View on GitHub
17.1
Adjusted Score
17.1
Raw Score
100%
Time Factor
2026-05-27
Last Push
19,842
Stars
Python
Language
9,359
Lines of Code
226
Files
138
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 3LOW 135

Pattern Findings

138 matches across 6 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers131 hits · 148 pts
SeverityFileLineSnippet
LOWtest/conftest.py103 def get_nginx_proxy_container() -> Container:
LOWtest/conftest.py265def docker_container_dns_resolver(domain_name: str) -> Optional[str]:
LOWtest/conftest.py294def monkey_patch_urllib_dns_resolver():
LOWtest/conftest.py337def restore_urllib_dns_resolver(getaddrinfo_func):
LOWtest/conftest.py341def get_nginx_conf_from_container(container: Container) -> bytes:
LOWtest/conftest.py356def __prepare_and_execute_compose_cmd(compose_files: List[str], project_name: str, cmd: str):
LOWtest/conftest.py392def wait_for_nginxproxy_to_be_ready():
LOWtest/conftest.py676def pytest_runtest_makereport(item, call):
LOWtest/test_nominal/test_nominal.py7def test_unknown_virtual_host(docker_compose, nginxproxy):
LOWtest/test_nominal/test_nominal.py33def test_container_version_is_displayed(docker_compose, nginxproxy):
LOWtest/test_virtual-proto/test_virtual-proto.py5def test_upstream_with_https_virtual_proto(docker_compose, nginxproxy, subdomain):
LOW…st_acme-http-challenge-location-accept-unknown-host.py1def test_redirect_acme_challenge_location_enabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…st_acme-http-challenge-location-accept-unknown-host.py8def test_redirect_acme_challenge_location_disabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…st_acme-http-challenge-location-accept-unknown-host.py15def test_noredirect_acme_challenge_location_enabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…st_acme-http-challenge-location-accept-unknown-host.py22def test_noredirect_acme_challenge_location_disabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…st_acme-http-challenge-location-accept-unknown-host.py29def test_unknown_domain_acme_challenge_location_default_enabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…location/test_acme-http-challenge-location-disabled.py1def test_redirect_acme_challenge_location_disabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…location/test_acme-http-challenge-location-disabled.py8def test_redirect_acme_challenge_location_enabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…location/test_acme-http-challenge-location-disabled.py15def test_noredirect_acme_challenge_location_disabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…location/test_acme-http-challenge-location-disabled.py22def test_noredirect_acme_challenge_location_enabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…location/test_acme-http-challenge-location-disabled.py29def test_unknown_domain_acme_challenge_location_disabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…est_acme-http-challenge-location-enabled-is-default.py1def test_redirect_acme_challenge_location_enabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…est_acme-http-challenge-location-enabled-is-default.py8def test_redirect_acme_challenge_location_disabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…est_acme-http-challenge-location-enabled-is-default.py15def test_noredirect_acme_challenge_location_enabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…est_acme-http-challenge-location-enabled-is-default.py22def test_noredirect_acme_challenge_location_disabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…est_acme-http-challenge-location-enabled-is-default.py29def test_unknown_domain_acme_challenge_location_default_enabled(docker_compose, nginxproxy, acme_challenge_path):
LOW…e-location/test_acme-http-challenge-location-legacy.py1def test_redirect_acme_challenge_location_legacy(docker_compose, nginxproxy, acme_challenge_path):
LOW…e-location/test_acme-http-challenge-location-legacy.py8def test_noredirect_acme_challenge_location_legacy(docker_compose, nginxproxy, acme_challenge_path):
LOW…e-location/test_acme-http-challenge-location-legacy.py15def test_unknown_domain_acme_challenge_location_legacy(docker_compose, nginxproxy, acme_challenge_path):
LOWtest/test_ssl/test_nohttps.py16def test_http_acme_challenge_does_not_work(docker_compose, nginxproxy, acme_challenge_path):
LOWtest/test_ssl/test_cert-selection.py12def test_certificate_selection(
LOWtest/test_ssl/test_mtls-client-certificate.py46def test_mtls_client_certificates(docker_compose, nginxproxy, clientcerts, description, url, cert, expected_code, expect
LOWtest/test_ssl/test_virtual-path.py20def test_acme_challenge_does_not_work(docker_compose, nginxproxy, acme_challenge_path, port):
LOWtest/test_ssl/test_redirect_default.py15def test_default_redirect_by_method(
LOWtest/test_ssl/test_redirect_custom.py24def test_custom_redirect_by_method(
LOWtest/test_ssl/test_wildcard-cert-nohttps.py12def test_http_redirects_to_https(docker_compose, nginxproxy, subdomain, should_redirect_to_https):
LOWtest/test_ssl/test_wildcard-cert-nohttps.py28def test_https_request_to_nohttps_vhost_goes_to_fallback_server(docker_compose, nginxproxy):
LOWtest/test_ssl/test_wildcard-cert-nohttps.py43def test_acme_challenge_works(
LOWtest/test_ssl/test_dhparam.py92def can_negotiate_dhe_ciphersuite(sut_container, dh_bits=4096, additional_params=''):
LOWtest/test_ssl/test_dhparam.py104def cannot_negotiate_dhe_ciphersuite(sut_container):
LOWtest/test_ssl/test_dhparam.py128def can_verify_chain_of_trust(sut_container, ca_cert, fqdn):
LOWtest/test_ssl/test_dhparam.py135def should_be_equivalent_content(sut_container, expected, actual):
LOWtest/test_ssl/test_dhparam.py177def test_can_change_dhparam_group(docker_compose):
LOWtest/test_ssl/test_dhparam.py194def test_fail_if_dhparam_group_not_supported(docker_compose):
LOWtest/test_ssl/test_dhparam.py209def test_custom_dhparam_is_supported(docker_compose):
LOWtest/test_ssl/test_dhparam.py231def test_custom_dhparam_is_supported_per_site(docker_compose, ca_root_certificate):
LOWtest/test_ssl/test_dhparam.py272def test_can_skip_dhparam_backward_compatibility(docker_compose):
LOWtest/test_debug-endpoint/test_per-container.py6def test_debug_endpoint_is_disabled_globally(docker_compose, nginxproxy):
LOWtest/test_debug-endpoint/test_per-container.py13def test_debug_endpoint_is_enabled_per_container(docker_compose, nginxproxy):
LOWtest/test_debug-endpoint/test_per-container.py18def test_debug_endpoint_response_contains_expected_values(docker_compose, nginxproxy):
LOWtest/test_debug-endpoint/test_global.py6def test_debug_endpoint_is_enabled_globally(docker_compose, nginxproxy):
LOWtest/test_debug-endpoint/test_global.py13def test_debug_endpoint_response_contains_expected_values(docker_compose, nginxproxy):
LOWtest/test_debug-endpoint/test_global.py24def test_debug_endpoint_paths_stripped_if_response_too_long(docker_compose, nginxproxy):
LOWtest/test_debug-endpoint/test_global.py36def test_debug_endpoint_hostname_replaced_by_warning_if_regexp(docker_compose, nginxproxy):
LOWtest/test_debug-endpoint/test_global.py46def test_debug_endpoint_is_disabled_per_container(docker_compose, nginxproxy):
LOWtest/test_external-ports/test_multiports-priority.py1def test_multiports_external_port_takes_precedence_over_virtualhost_external_port(docker_compose, nginxproxy):
LOWtest/test_htpasswd/test_htpasswd-virtual-host.py1def test_htpasswd_virtual_host_is_restricted(docker_compose, nginxproxy):
LOWtest/test_htpasswd/test_htpasswd-virtual-host.py8def test_htpasswd_virtual_host_basic_auth(docker_compose, nginxproxy):
LOWtest/test_htpasswd/test_htpasswd-virtual-path.py1def test_htpasswd_virtual_path_is_restricted(docker_compose, nginxproxy):
LOWtest/test_htpasswd/test_htpasswd-virtual-path.py7def test_htpasswd_virtual_path_basic_auth(docker_compose, nginxproxy):
71 more matches not shown…
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippet
MEDIUMtest/certs/create_server_certificate.sh24# Create a nginx container (which conveniently provides the `openssl` command)
MEDIUMtest/certs/create_server_certificate.sh138# Create a CA root certificate
Excessive Try-Catch Wrapping2 hits · 4 pts
SeverityFileLineSnippet
LOW…t_proxy_protocol/test_proxy-protocol-global-enabled.py10 except Exception as e:
MEDIUM…t_proxy_protocol/test_proxy-protocol-global-enabled.py4def test_proxy_protocol_global_enabled_normal_request_fails(docker_compose, ngin
Over-Commented Block1 hit · 1 pts
SeverityFileLineSnippet
LOWtest/pytest.sh1#!/bin/sh
Unused Imports1 hit · 1 pts
SeverityFileLineSnippet
LOWtest/test_ssl/test_mtls-client-certificate.py4
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippet
LOWtest/requirements/web/webserver.py8