Certbot is EFF's tool to obtain certs from Let's Encrypt and (optionally) auto-enable HTTPS on your server. It can also act as a client for any other CA that uses the ACME protocol.
This report presents the forensic synthetic code analysis of certbot/certbot, a Python project with 33,132 GitHub stars. SynthScan v2.0 examined 94,227 lines of code across 501 source files, recording 1516 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 21.5 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1516 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/venv.py | 133 | def subprocess_output_with_print(cmd, env=None, shell=False): | CODE |
| LOW | tools/finish_release.py | 89 | def assert_logged_into_snapcraft(): | CODE |
| LOW | tools/finish_release.py | 239 | def _sync_candidate_from_temp_to_origin(version: str) -> None: | CODE |
| LOW | tools/finish_release.py | 250 | def _create_release_pr_to_main(version: str) -> None: | CODE |
| LOW | tools/finish_release.py | 258 | def _create_release_pr_to_minor_branch( | CODE |
| LOW | tools/finish_release.py | 271 | def _create_and_push_branch_without_version_bump(version: str, branch_name: str) -> None: | CODE |
| LOW | tools/finish_release.py | 300 | def _check_branch_matches_version(version: str) -> None: | CODE |
| LOW | tools/finish_release.py | 335 | def generate_community_forum_post(version: str): | CODE |
| LOW | acme/src/acme/standalone.py | 97 | def shutdown_and_server_close(self) -> None: | CODE |
| LOW | acme/src/acme/standalone.py | 139 | class HTTP01RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): | CODE |
| LOW | acme/src/acme/standalone.py | 157 | # In parent class BaseHTTPRequestHandler, 'timeout' is a class-level property but we | COMMENT |
| LOW | acme/src/acme/standalone.py | 203 | def handle_simple_http_resource(self) -> None: | CODE |
| LOW | acme/src/acme/client.py | 386 | def external_account_required(self) -> bool: | CODE |
| LOW | acme/src/acme/client.py | 831 | def _renewal_info_path_component(cert: x509.Certificate) -> str: | CODE |
| LOW | acme/src/acme/messages.py | 402 | def _add_contact_if_appropriate(self, jobj: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW | acme/src/acme/crypto_util.py | 144 | def get_names_from_subject_and_extensions( | CODE |
| LOW | acme/src/acme/crypto_util.py | 198 | def _cryptography_cert_or_req_san( | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 50 | def test_from_json_with_subproblems(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/messages_test.py | 170 | def test_init_wrong_key_value_success(self): # pylint: disable=no-self-use | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/messages_test.py | 177 | def test_getitem_fails_with_key_error(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/messages_test.py | 184 | def test_getattr_fails_with_attribute_error(self): | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 203 | def test_from_json_deserialization_unknown_key_success(self): # pylint: disable=no-self-use | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 233 | def test_from_data_invalid_hmac_alg(self): | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 241 | def test_from_data_default_hmac_alg(self): | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 290 | def test_new_registration_from_data_with_eab(self): | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 326 | def test_default_not_transmitted(self): | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 465 | def test_json_de_serializable(self): | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 480 | def test_json_de_serializable(self): | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 495 | def test_json_de_serializable(self): | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 528 | def test_json_de_serializable(self): | CODE |
| LOW | acme/src/acme/_internal/tests/messages_test.py | 572 | def test_default_profile_empty(self): | CODE |
| LOW | acme/src/acme/_internal/tests/challenges_test.py | 21 | def test_from_json_unrecognized(self): | CODE |
| LOW | acme/src/acme/_internal/tests/challenges_test.py | 64 | def test_verify_wrong_thumbprint(self): | CODE |
| LOW | acme/src/acme/_internal/tests/challenges_test.py | 104 | def test_simple_verify_failure(self): | CODE |
| LOW | acme/src/acme/_internal/tests/challenges_test.py | 110 | def test_simple_verify_success(self): | CODE |
| LOW | acme/src/acme/_internal/tests/challenges_test.py | 127 | def test_validation_domain_name(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/challenges_test.py | 173 | def test_simple_verify_bad_key_authorization(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/challenges_test.py | 178 | def test_simple_verify_good_validation(self, mock_get): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/challenges_test.py | 187 | def test_simple_verify_bad_validation(self, mock_get): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/challenges_test.py | 193 | def test_simple_verify_whitespace_validation(self, mock_get): | CODE |
| LOW | acme/src/acme/_internal/tests/challenges_test.py | 204 | def test_simple_verify_connection_error(self, mock_get): | CODE |
| LOW | acme/src/acme/_internal/tests/challenges_test.py | 218 | def test_simple_verify_timeout(self, mock_get): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/challenges_test.py | 307 | def test_gen_check_validation(self, key, alg, msg: 'DNS'): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/challenges_test.py | 311 | def test_gen_check_validation_wrong_key(self, msg: 'DNS'): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/challenges_test.py | 316 | def test_check_validation_wrong_payload(self, msg: 'DNS'): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/challenges_test.py | 325 | def test_check_validation_wrong_fields(self, msg: 'DNS'): | CODE |
| LOW | acme/src/acme/_internal/tests/challenges_test.py | 340 | def test_validation_domain_name(self, msg: 'DNS'): | CODE |
| LOW | acme/src/acme/_internal/tests/challenges_test.py | 343 | def test_validation_domain_name_ecdsa(self, msg: 'DNS'): | CODE |
| LOW | acme/src/acme/_internal/tests/fields_test.py | 42 | def test_default_encoder_naive_fails(self): | CODE |
| LOW | acme/src/acme/_internal/tests/fields_test.py | 51 | def test_default_decoder_raises_deserialization_error(self): | CODE |
| LOW | acme/src/acme/_internal/tests/crypto_util_test.py | 18 | def test_to_cryptography_encoding(self): | CODE |
| LOW | acme/src/acme/_internal/tests/crypto_util_test.py | 27 | def test_dump_cryptography_chain(self): | CODE |
| LOW | acme/src/acme/_internal/tests/crypto_util_test.py | 39 | def test_dump_cryptography_chain_wrong_encoding(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/crypto_util_test.py | 250 | def test_make_csr_must_staple(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/crypto_util_test.py | 259 | def test_make_csr_without_hostname(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/crypto_util_test.py | 263 | def test_make_csr_invalid_key_type(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/client_test.py | 387 | def test_external_account_required_true(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/client_test.py | 394 | def test_external_account_required_false(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/client_test.py | 401 | def test_external_account_required_default(self): | CODE |
| LOW⚡ | acme/src/acme/_internal/tests/client_test.py | 404 | def test_query_registration_client(self): | CODE |
| 920 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | certbot/src/certbot/_internal/plugins/apache/obj.py | 30 | return f"certbot._internal.plugins.apache.obj.Addr({repr(self.tup)})" | CODE |
| CRITICAL | …ot/src/certbot/_internal/plugins/apache/display_ops.py | 86 | "certbot._internal.plugins.apache.display_ops._vhost_menu()") | CODE |
| CRITICAL | …src/certbot/_internal/tests/plugins/apache/obj_test.py | 30 | "certbot._internal.plugins.apache.obj.Addr(('127.0.0.1', '443'))" | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 168 | self.cf.dns.records.create.assert_called_with( | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 238 | self.cf.dns.records.list.assert_called_once_with( | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 241 | self.cf.dns.records.delete.assert_called_once_with( | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 256 | self.cf.dns.records.delete.assert_called_once_with( | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 265 | self.cf.dns.records.list.assert_called_once() | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 266 | self.cf.dns.records.delete.assert_not_called() | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 274 | self.cf.dns.records.list.assert_called_once() | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 275 | self.cf.dns.records.delete.assert_not_called() | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 291 | self.cf.dns.records.delete.assert_called_once_with( | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 300 | self.cf.dns.records.list.assert_called_once() | CODE |
| CRITICAL⚡ | …_dns_cloudflare/_internal/tests/dns_cloudflare_test.py | 301 | self.cf.dns.records.delete.assert_not_called() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | certbot-dns-luadns/src/certbot_dns_luadns/__init__.py | 0 | the `~certbot_dns_gehirn.dns_gehirn` plugin automates the process of completing a ``dns-01`` challenge (`~acme.challenge | STRING |
| HIGH | …tbot-dns-dnsimple/src/certbot_dns_dnsimple/__init__.py | 0 | the `~certbot_dns_gehirn.dns_gehirn` plugin automates the process of completing a ``dns-01`` challenge (`~acme.challenge | STRING |
| HIGH | certbot-dns-nsone/src/certbot_dns_nsone/__init__.py | 0 | the `~certbot_dns_gehirn.dns_gehirn` plugin automates the process of completing a ``dns-01`` challenge (`~acme.challenge | STRING |
| HIGH | certbot-dns-gehirn/src/certbot_dns_gehirn/__init__.py | 0 | the `~certbot_dns_gehirn.dns_gehirn` plugin automates the process of completing a ``dns-01`` challenge (`~acme.challenge | STRING |
| HIGH | …ns-dnsmadeeasy/src/certbot_dns_dnsmadeeasy/__init__.py | 0 | the `~certbot_dns_gehirn.dns_gehirn` plugin automates the process of completing a ``dns-01`` challenge (`~acme.challenge | STRING |
| HIGH | …-luadns/src/certbot_dns_luadns/_internal/dns_luadns.py | 0 | dns authenticator for linode this authenticator uses the linode api to fulfill a dns-01 challenge. | STRING |
| HIGH | …src/certbot_dns_cloudflare/_internal/dns_cloudflare.py | 0 | dns authenticator for linode this authenticator uses the linode api to fulfill a dns-01 challenge. | STRING |
| HIGH | …certbot_dns_digitalocean/_internal/dns_digitalocean.py | 0 | dns authenticator for linode this authenticator uses the linode api to fulfill a dns-01 challenge. | STRING |
| HIGH | …dns-nsone/src/certbot_dns_nsone/_internal/dns_nsone.py | 0 | dns authenticator for linode this authenticator uses the linode api to fulfill a dns-01 challenge. | STRING |
| HIGH | …rtbot-dns-ovh/src/certbot_dns_ovh/_internal/dns_ovh.py | 0 | dns authenticator for linode this authenticator uses the linode api to fulfill a dns-01 challenge. | STRING |
| HIGH | …-linode/src/certbot_dns_linode/_internal/dns_linode.py | 0 | dns authenticator for linode this authenticator uses the linode api to fulfill a dns-01 challenge. | STRING |
| HIGH | acme/src/acme/crypto_util.py | 0 | internal class delegating to a module, and displaying warnings when attributes related to deprecated attributes in the c | STRING |
| HIGH | certbot/src/certbot/plugins/dns_test_common_lexicon.py | 0 | internal class delegating to a module, and displaying warnings when attributes related to deprecated attributes in the c | STRING |
| HIGH | certbot/src/certbot/plugins/dns_common_lexicon.py | 0 | internal class delegating to a module, and displaying warnings when attributes related to deprecated attributes in the c | STRING |
| HIGH | …ot/src/certbot/_internal/plugins/nginx/configurator.py | 0 | revert all previously modified files. reverts all modified files that have not been saved as a checkpoint :raises .error | STRING |
| HIGH | …t/src/certbot/_internal/plugins/apache/configurator.py | 0 | revert all previously modified files. reverts all modified files that have not been saved as a checkpoint :raises .error | STRING |
| HIGH | certbot/src/certbot/plugins/common.py | 0 | revert all previously modified files. reverts all modified files that have not been saved as a checkpoint :raises .error | STRING |
| HIGH | …ot/src/certbot/_internal/plugins/nginx/configurator.py | 0 | rollback saved checkpoints. :param int rollback: number of checkpoints to revert :raises .errors.pluginerror: if there i | STRING |
| HIGH | …t/src/certbot/_internal/plugins/apache/configurator.py | 0 | rollback saved checkpoints. :param int rollback: number of checkpoints to revert :raises .errors.pluginerror: if there i | STRING |
| HIGH | certbot/src/certbot/plugins/common.py | 0 | rollback saved checkpoints. :param int rollback: number of checkpoints to revert :raises .errors.pluginerror: if there i | STRING |
| HIGH | …bot/src/certbot/_internal/plugins/apache/interfaces.py | 0 | returns a list of file paths that have currently been parsed into the parser tree. the returned list may include paths w | STRING |
| HIGH | …t/src/certbot/_internal/plugins/apache/augeasparser.py | 0 | returns a list of file paths that have currently been parsed into the parser tree. the returned list may include paths w | STRING |
| HIGH | …bot/src/certbot/_internal/plugins/apache/dualparser.py | 0 | returns a list of file paths that have currently been parsed into the parser tree. the returned list may include paths w | STRING |
| HIGH | …rc/certbot/_internal/plugins/apache/override_gentoo.py | 0 | override for update_runtime_variables for custom parsing | STRING |
| HIGH | …rc/certbot/_internal/plugins/apache/override_centos.py | 0 | override for update_runtime_variables for custom parsing | STRING |
| HIGH | …rc/certbot/_internal/plugins/apache/override_fedora.py | 0 | override for update_runtime_variables for custom parsing | STRING |
| HIGH | …bot/src/certbot/_internal/tests/plugins/apache/util.py | 0 | return the ground truth for the specified directory. | STRING |
| HIGH | …/certbot/_internal/tests/plugins/apache/gentoo_test.py | 0 | return the ground truth for the specified directory. | STRING |
| HIGH | …/certbot/_internal/tests/plugins/apache/centos_test.py | 0 | return the ground truth for the specified directory. | STRING |
| HIGH | …/certbot/_internal/tests/plugins/apache/fedora_test.py | 0 | return the ground truth for the specified directory. | STRING |
| HIGH | …lity-test/src/certbot_compatibility_test/interfaces.py | 0 | initializes the plugin with the given command line args | STRING |
| HIGH | …src/certbot_compatibility_test/configurators/common.py | 0 | initializes the plugin with the given command line args | STRING |
| HIGH | …tbot_compatibility_test/configurators/apache/common.py | 0 | initializes the plugin with the given command line args | STRING |
| HIGH | …src/certbot_compatibility_test/configurators/common.py | 0 | performs any necessary cleanup from running plugin tests | STRING |
| HIGH | …rtbot_compatibility_test/configurators/nginx/common.py | 0 | performs any necessary cleanup from running plugin tests | STRING |
| HIGH | …tbot_compatibility_test/configurators/apache/common.py | 0 | performs any necessary cleanup from running plugin tests | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pytest.ini | 1 | # This file isn't used while testing packages in tools/_release.sh so any | COMMENT |
| LOW | certbot-dns-sakuracloud/docs/conf.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | certbot-dns-sakuracloud/docs/conf.py | 61 | # The version info for the project you're documenting, acts as replacement for | COMMENT |
| LOW | certbot-dns-sakuracloud/docs/conf.py | 101 | # documentation. | COMMENT |
| LOW | certbot-dns-sakuracloud/docs/conf.py | 121 | # | COMMENT |
| LOW | tools/pip_install.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/docker/deploy_images.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/docker/build.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/docker/deploy_manifests.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/docker/test.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/pinning/common/export-pinned-dependencies.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/pinning/current/repin.sh | 21 | # This file was generated by $RELATIVE_SCRIPT_PATH and can be updated using | COMMENT |
| LOW | tools/pinning/current/pyproject.toml | 41 | # as a dependency here to ensure a version of cython is pinned for extra | COMMENT |
| LOW | tools/pinning/oldest/pyproject.toml | 1 | # The purpose of this file is to help us test Certbot against the oldest | COMMENT |
| LOW | tools/pinning/oldest/pyproject.toml | 81 | pycparser = "2.14" | COMMENT |
| LOW | tools/snap/build_remote.py | 41 | COMMENT | |
| LOW | certbot-dns-luadns/docs/conf.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | certbot-dns-luadns/docs/conf.py | 61 | # The version info for the project you're documenting, acts as replacement for | COMMENT |
| LOW | certbot-dns-luadns/docs/conf.py | 101 | # documentation. | COMMENT |
| LOW | certbot-dns-luadns/docs/conf.py | 121 | # | COMMENT |
| LOW | acme/docs/conf.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | acme/docs/conf.py | 61 | project = u'acme-python' | COMMENT |
| LOW | acme/docs/conf.py | 81 | # There are two options for replacing |today|: either, you set today to some | COMMENT |
| LOW | acme/docs/conf.py | 101 | # unit titles (such as .. function::). | COMMENT |
| LOW | acme/docs/conf.py | 121 | # -- Options for HTML output ---------------------------------------------- | COMMENT |
| LOW | acme/docs/conf.py | 141 | #html_short_title = None | COMMENT |
| LOW | acme/docs/conf.py | 161 | COMMENT | |
| LOW | acme/docs/conf.py | 181 | #html_use_index = True | COMMENT |
| LOW | acme/docs/conf.py | 201 | #html_file_suffix = None | COMMENT |
| LOW | acme/docs/conf.py | 221 | COMMENT | |
| LOW | acme/docs/conf.py | 241 | u'Let\'s Encrypt Project', 'manual'), | COMMENT |
| LOW | acme/docs/conf.py | 281 | # Grouping the document tree into Texinfo files. List of tuples | COMMENT |
| LOW | certbot-dns-rfc2136/docs/conf.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | certbot-dns-rfc2136/docs/conf.py | 61 | # The version info for the project you're documenting, acts as replacement for | COMMENT |
| LOW | certbot-dns-rfc2136/docs/conf.py | 101 | # documentation. | COMMENT |
| LOW | certbot-dns-rfc2136/docs/conf.py | 121 | # | COMMENT |
| LOW | certbot/docs/conf.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | certbot/docs/conf.py | 61 | source_suffix = '.rst' | COMMENT |
| LOW | certbot/docs/conf.py | 81 | release = meta['version'] | COMMENT |
| LOW | certbot/docs/conf.py | 101 | ] | COMMENT |
| LOW | certbot/docs/conf.py | 141 | # documentation. | COMMENT |
| LOW | certbot/docs/conf.py | 161 | #html_favicon = None | COMMENT |
| LOW | certbot/docs/conf.py | 181 | # Custom sidebar templates, maps document names to template names. | COMMENT |
| LOW | certbot/docs/conf.py | 201 | #html_show_sphinx = True | COMMENT |
| LOW | certbot/docs/conf.py | 221 | # Now only 'ja' uses this config value | COMMENT |
| LOW | certbot/docs/conf.py | 241 | #'preamble': '', | COMMENT |
| LOW | certbot/docs/conf.py | 261 | #latex_use_parts = False | COMMENT |
| LOW | certbot/examples/cli.ini | 1 | # This is an example of the kind of things you can do in a configuration file. | COMMENT |
| LOW | certbot/examples/cli.ini | 21 | # authenticator = standalone | COMMENT |
| LOW | certbot/src/certbot/_internal/client.py | 361 | newly generated private key (`.util.Key`), and DER-encoded | COMMENT |
| LOW | certbot/src/certbot/_internal/lock.py | 161 | """Remove, close, and release the lock file.""" | COMMENT |
| LOW | certbot/src/certbot/_internal/storage.py | 141 | merged_config = configobj.ConfigObj(config_filename, encoding='utf-8', default_encoding='utf-8', | COMMENT |
| LOW | certbot/src/certbot/_internal/storage.py | 661 | # the chain matching the cert, and the cert matching | COMMENT |
| LOW | certbot/src/certbot/_internal/error_handler.py | 21 | # included as they could be a sign of something devious and we should terminate | COMMENT |
| LOW | certbot/src/certbot/_internal/plugins/apache/parser.py | 521 | COMMENT | |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 101 | # only properly formed sections are added. | COMMENT |
| LOW | certbot/src/certbot/_internal/tests/renewal_test.py | 321 | # Times that should result in autorenewal/autodeployment | COMMENT |
| LOW | certbot/src/certbot/_internal/tests/renewal_test.py | 361 | # at 3.5 days prior to expiry. We haven't reached that yet, | COMMENT |
| LOW | …/certbot/_internal/tests/plugins/nginx/http_01_test.py | 101 | # vhosts = self.http01.configurator.parser.get_vhosts() | COMMENT |
| LOW | …ache-conf-files/passing/finalize-1243.apache2.conf.txt | 1 | # This is the main Apache server configuration file. It contains the | COMMENT |
| 59 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …c/certbot_dns_sakuracloud/_internal/dns_sakuracloud.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | …-luadns/src/certbot_dns_luadns/_internal/dns_luadns.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | acme/src/acme/standalone.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | acme/src/acme/fields.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | acme/src/acme/client.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | acme/src/acme/challenges.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | acme/src/acme/crypto_util.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | …c2136/src/certbot_dns_rfc2136/_internal/dns_rfc2136.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | …c2136/src/certbot_dns_rfc2136/_internal/dns_rfc2136.py | 72 | def _setup_credentials(self) -> None: | CODE |
| LOW | certbot/src/certbot/configuration.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/configuration.py | 73 | def set_argument_sources(self, argument_sources: dict[str, ArgumentSource]) -> None: | CODE |
| LOW | certbot/src/certbot/achallenges.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/util.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/util.py | 250 | def set_up_core_dir(directory: str, mode: int, strict: bool) -> None: | CODE |
| LOW | certbot/src/certbot/reverter.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/crypto_util.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/hooks.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/auth_handler.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/ocsp.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/log.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/client.py | 46 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/updater.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/eff.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/renewal.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/renewal.py | 751 | def _update_renewal_params_from_key(key_path: str, config: configuration.NamespaceConfig) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/lock.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/storage.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/storage.py | 892 | def _update_link_to(self, kind: str, version: int) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/storage.py | 918 | def update_all_links_to(self, version: int) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/cert_manager.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/error_handler.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/error_handler.py | 133 | def _set_signal_handlers(self) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/main.py | 59 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/account.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/account.py | 246 | def update_regr(self, account: Account) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/account.py | 258 | def update_meta(self, account: Account) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/account.py | 345 | def _update_regr(self, account: Account, dir_path: str) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/account.py | 352 | def _update_meta(self, account: Account, dir_path: str) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/plugins/standalone.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/plugins/null.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/plugins/disco.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/plugins/manual.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/plugins/webroot.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/plugins/webroot.py | 116 | def _set_webroots(self, achalls: Iterable[AnnotatedChallenge]) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/plugins/selection.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …bot/src/certbot/_internal/plugins/nginx/nginxparser.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/plugins/nginx/http_01.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 175 | def _update_vhosts_addrs_ssl(self, vhosts: Iterable[obj.VirtualHost]) -> None: | CODE |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 741 | def _update_directive(block: UnspacedList, directive: Sequence[Any], location: int) -> None: | CODE |
| LOW | …tbot/src/certbot/_internal/plugins/nginx/parser_obj.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …tbot/src/certbot/_internal/plugins/nginx/parser_obj.py | 99 | def set_tabs(self, tabs: str = " ") -> None: | CODE |
| LOW | …tbot/src/certbot/_internal/plugins/nginx/parser_obj.py | 140 | def set_tabs(self, tabs: str = " ") -> None: | CODE |
| LOW | …tbot/src/certbot/_internal/plugins/nginx/parser_obj.py | 233 | def set_tabs(self, tabs: str = " ") -> None: | CODE |
| LOW | …tbot/src/certbot/_internal/plugins/nginx/parser_obj.py | 297 | def set_tabs(self, tabs: str = " ") -> None: | CODE |
| LOW | …ot/src/certbot/_internal/plugins/nginx/configurator.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ot/src/certbot/_internal/plugins/nginx/configurator.py | 815 | def _set_http_header(self, domain: str, header_substring: Union[str, list[str], None]) -> None: | CODE |
| LOW | …bot/src/certbot/_internal/plugins/nginx/display_ops.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | …bot/src/certbot/_internal/plugins/apache/interfaces.py | 327 | def set_parameters(self, parameters: list[str]) -> None: | CODE |
| LOW | …rc/certbot/_internal/plugins/apache/override_gentoo.py | 44 | def update_runtime_variables(self) -> None: | CODE |
| 56 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | letstest/letstest/multitester.py | 208 | local_cxn.local('cd %s && if [ -d letsencrypt ]; then rm -rf letsencrypt; fi' % log_dir) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 209 | local_cxn.local('cd %s && git clone %s letsencrypt'% (log_dir, repo_url)) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 210 | local_cxn.local('cd %s && tar czf le.tar.gz letsencrypt'% log_dir) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 214 | local_cxn.local('cd %s && if [ -d letsencrypt ]; then rm -rf letsencrypt; fi' % log_dir) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 215 | local_cxn.local('cd %s && git clone %s letsencrypt --branch %s --single-branch'% | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 217 | local_cxn.local('cd %s && tar czf le.tar.gz letsencrypt' % log_dir) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 221 | local_cxn.local('cd %s && if [ -d letsencrypt ]; then rm -rf letsencrypt; fi' % log_dir) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 222 | local_cxn.local('cd %s && git clone %s letsencrypt' % (log_dir, repo_url)) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 223 | local_cxn.local('cd %s && cd letsencrypt && ' | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 225 | local_cxn.local('cd %s && cd letsencrypt && git checkout lePRtest' % log_dir) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 227 | local_cxn.local('cd %s && cd letsencrypt && git remote update origin' % log_dir) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 228 | local_cxn.local('cd %s && cd letsencrypt && ' | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 230 | local_cxn.local('cd %s && tar czf le.tar.gz letsencrypt' % log_dir) | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 257 | with cxn.prefix('export PUBLIC_IP=%s && export PRIVATE_IP=%s && ' | CODE |
| HIGH⚡ | letstest/letstest/multitester.py | 258 | 'export PUBLIC_HOSTNAME=%s && export PIP_EXTRA_INDEX_URL=%s && ' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pytest.ini | 1 | # This file isn't used while testing packages in tools/_release.sh so any | COMMENT |
| MEDIUM | certbot-dns-sakuracloud/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | tools/docker/build.sh | 25 | # Create the builder | COMMENT |
| MEDIUM | tools/snap/generate_dnsplugins_postrefreshhook.sh | 12 | # This file is generated automatically and should not be edited manually. | COMMENT |
| MEDIUM | tools/snap/generate_dnsplugins_snapcraft.sh | 13 | # This file is generated automatically and should not be edited manually. | COMMENT |
| MEDIUM | certbot-dns-luadns/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | acme/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot-dns-rfc2136/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot/src/certbot/reverter.py | 239 | # This file is required in all checkpoints. | COMMENT |
| MEDIUM | …tbot/src/certbot/_internal/plugins/nginx/parser_obj.py | 2 | # This module is not used for now, so we just skip type checking for the sake | COMMENT |
| MEDIUM | …t/src/certbot/_internal/plugins/apache/augeasparser.py | 284 | # Create the new block | COMMENT |
| MEDIUM | …t/src/certbot/_internal/plugins/apache/augeasparser.py | 317 | # Create the new directive | COMMENT |
| MEDIUM | …t/src/certbot/_internal/plugins/apache/augeasparser.py | 349 | # Create the new comment | COMMENT |
| MEDIUM | …t/src/certbot/_internal/plugins/apache/configurator.py | 1406 | # Create the Vhost object | COMMENT |
| MEDIUM | …ot/_internal/tests/plugins/apache/configurator_test.py | 1055 | # Create a preexisting rewrite rule | COMMENT |
| MEDIUM | …ot/_internal/tests/plugins/apache/configurator_test.py | 1094 | # Create an old (previously supported) https redirectoin rewrite rule | COMMENT |
| MEDIUM | certbot-dns-dnsimple/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot-dns-cloudflare/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot-dns-route53/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | …ute53/src/certbot_dns_route53/_internal/dns_route53.py | 142 | # Create a new list containing the record to use with DELETE | COMMENT |
| MEDIUM | certbot-dns-digitalocean/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot-dns-nsone/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot-dns-ovh/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | …c/certbot_integration_tests/certbot_tests/test_main.py | 323 | # Create a read permission for Everybody group | COMMENT |
| MEDIUM | certbot-dns-linode/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot-dns-gehirn/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot-dns-google/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | certbot-dns-dnsmadeeasy/docs/conf.py | 6 | # This file is execfile()d with the current directory set to its | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/extract_changelog.py | 13 | CODE | |
| LOW | tools/snap/build_remote.py | 99 | CODE | |
| LOW | tools/snap/build_remote.py | 250 | CODE | |
| LOW | acme/src/acme/client.py | 185 | CODE | |
| LOW | acme/src/acme/client.py | 231 | CODE | |
| LOW | certbot/src/certbot/util.py | 466 | CODE | |
| LOW | certbot/src/certbot/util.py | 78 | CODE | |
| LOW | certbot/src/certbot/reverter.py | 215 | CODE | |
| LOW | certbot/src/certbot/reverter.py | 405 | CODE | |
| LOW | certbot/src/certbot/crypto_util.py | 240 | CODE | |
| LOW | certbot/src/certbot/_internal/client.py | 49 | CODE | |
| LOW | certbot/src/certbot/_internal/client.py | 352 | CODE | |
| LOW | certbot/src/certbot/_internal/renewal.py | 181 | CODE | |
| LOW | certbot/src/certbot/_internal/renewal.py | 584 | CODE | |
| LOW | certbot/src/certbot/_internal/renewal.py | 632 | CODE | |
| LOW | certbot/src/certbot/_internal/storage.py | 1229 | CODE | |
| LOW | certbot/src/certbot/_internal/cert_manager.py | 104 | CODE | |
| LOW | certbot/src/certbot/_internal/cert_manager.py | 129 | CODE | |
| LOW | certbot/src/certbot/_internal/main.py | 533 | CODE | |
| LOW | certbot/src/certbot/_internal/main.py | 705 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/webroot.py | 116 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/webroot.py | 183 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/webroot.py | 257 | CODE | |
| LOW | …bot/src/certbot/_internal/plugins/nginx/nginxparser.py | 139 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/http_01.py | 72 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 479 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 676 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 793 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 63 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 107 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 185 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 388 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/obj.py | 56 | CODE | |
| LOW | …ot/src/certbot/_internal/plugins/nginx/configurator.py | 1281 | CODE | |
| LOW | …ot/src/certbot/_internal/plugins/nginx/configurator.py | 279 | CODE | |
| LOW | …ot/src/certbot/_internal/plugins/nginx/configurator.py | 436 | CODE | |
| LOW | …ot/src/certbot/_internal/plugins/nginx/configurator.py | 496 | CODE | |
| LOW | …ot/src/certbot/_internal/plugins/nginx/configurator.py | 671 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/apache/http_01.py | 159 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/apache/parser.py | 317 | CODE | |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 599 | CODE | |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 815 | CODE | |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 886 | CODE | |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 1028 | CODE | |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 1051 | CODE | |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 1538 | CODE | |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 2525 | CODE | |
| LOW | …bot/src/certbot/_internal/plugins/apache/dualparser.py | 57 | CODE | |
| LOW | certbot/src/certbot/_internal/tests/log_test.py | 363 | CODE | |
| LOW | certbot/src/certbot/_internal/tests/ocsp_test.py | 204 | CODE | |
| LOW | certbot/src/certbot/_internal/tests/main_test.py | 1412 | CODE | |
| LOW | certbot/src/certbot/_internal/tests/cli_test.py | 99 | CODE | |
| LOW | certbot/src/certbot/_internal/tests/client_test.py | 221 | CODE | |
| LOW | …ot/src/certbot/_internal/tests/plugins/storage_test.py | 24 | CODE | |
| LOW | …bot/src/certbot/_internal/tests/plugins/apache/util.py | 80 | CODE | |
| LOW | …tbot/_internal/tests/plugins/apache/entrypoint_test.py | 11 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/helpful.py | 126 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/helpful.py | 169 | CODE | |
| LOW | …src/certbot_dns_cloudflare/_internal/dns_cloudflare.py | 193 | CODE | |
| LOW | certbot-compatibility-test/nginx/roundtrip.py | 9 | CODE | |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/extract_changelog.py | 2 | CODE | |
| LOW | tools/pip_install.py | 13 | CODE | |
| LOW | tools/pip_install.py | 14 | CODE | |
| LOW | tools/venv.py | 15 | CODE | |
| LOW | acme/src/acme/standalone.py | 2 | CODE | |
| LOW | acme/src/acme/__init__.py | 15 | CODE | |
| LOW | acme/src/acme/errors.py | 13 | CODE | |
| LOW | acme/src/acme/_internal/tests/jose_test.py | 23 | CODE | |
| LOW | acme/src/acme/_internal/tests/jose_test.py | 25 | CODE | |
| LOW | certbot/src/certbot/interfaces.py | 23 | CODE | |
| LOW | certbot/src/certbot/ocsp.py | 5 | CODE | |
| LOW | certbot/src/certbot/errors.py | 5 | CODE | |
| LOW | certbot/src/certbot/crypto_util.py | 43 | CODE | |
| LOW | certbot/src/certbot/crypto_util.py | 44 | CODE | |
| LOW | certbot/src/certbot/crypto_util.py | 45 | CODE | |
| LOW | certbot/src/certbot/crypto_util.py | 46 | CODE | |
| LOW | certbot/src/certbot/_internal/snap_config.py | 2 | CODE | |
| LOW | …bot/src/certbot/_internal/plugins/nginx/nginxparser.py | 12 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/http_01.py | 18 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/nginx/parser.py | 2 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/apache/http_01.py | 17 | CODE | |
| LOW | certbot/src/certbot/_internal/plugins/apache/parser.py | 19 | CODE | |
| LOW | …bot/src/certbot/_internal/plugins/apache/dualparser.py | 15 | CODE | |
| LOW | …bot/src/certbot/_internal/plugins/apache/dualparser.py | 16 | CODE | |
| LOW | certbot/src/certbot/_internal/tests/ocsp_test.py | 191 | CODE | |
| LOW | …ot/src/certbot/_internal/tests/plugins/webroot_test.py | 3 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/cli_utils.py | 21 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 7 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 9 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 11 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 16 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 17 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 18 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 19 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 20 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 21 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 22 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 23 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 24 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 25 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 27 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 28 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 29 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 30 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 32 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 36 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 38 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 39 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 40 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 46 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 47 | CODE | |
| LOW | certbot/src/certbot/_internal/cli/__init__.py | 49 | CODE | |
| LOW | certbot/src/certbot/_internal/display/completer.py | 6 | CODE | |
| LOW | certbot/src/certbot/compat/_path.py | 11 | CODE | |
| LOW | certbot/src/certbot/compat/_path.py | 16 | CODE | |
| LOW | certbot/src/certbot/compat/misc.py | 5 | CODE | |
| LOW | certbot/src/certbot/compat/filesystem.py | 2 | CODE | |
| LOW | certbot/src/certbot/compat/os.py | 19 | CODE | |
| LOW | certbot/src/certbot/compat/os.py | 24 | CODE | |
| LOW | letstest/scripts/version.py | 7 | CODE | |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | certbot/src/certbot/_internal/cli/cli_utils.py | 265 | # ------------------------------------------------------------ | COMMENT |
| MEDIUM | letstest/targets/targets.yaml | 7 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/targets/targets.yaml | 20 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/targets/targets.yaml | 28 | #----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | letstest/letstest/multitester.py | 205 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/letstest/multitester.py | 46 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/letstest/multitester.py | 78 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/letstest/multitester.py | 85 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/letstest/multitester.py | 96 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/letstest/multitester.py | 175 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/letstest/multitester.py | 373 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/letstest/multitester.py | 398 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | letstest/letstest/multitester.py | 445 | #------------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/finish_release.py | 275 | # Check if there are uncommited changes, since reset will blow them away | COMMENT |
| LOW | tools/snap/build_remote.py | 142 | # Check if the snap file just contains html | COMMENT |
| LOW | certbot/src/certbot/_internal/lock.py | 109 | # Open the file | COMMENT |
| LOW | certbot/src/certbot/_internal/lock.py | 116 | # Close the file if it is not the required one | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/augeasparser.py | 146 | # Check if the file was included from the root config or initial state | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/augeasparser.py | 286 | # Check if the file was included from the root config or initial state | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/augeasparser.py | 321 | # Check if the file was included from the root config or initial state | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/augeasparser.py | 466 | # Check if the file was included from the root config or initial state | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 1153 | # Check if the VirtualHost is contained in a mod_macro block | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 1317 | # Check if Apache is already listening on a specific IP | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 1935 | # Check if there's an existing SSLUseStapling directive on. | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 1943 | # Check if there's an existing SSLStaplingCache directive. | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 1986 | # Check if selected header is already set | COMMENT |
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 2075 | # Check if Certbot redirection already exists | COMMENT |
| LOW | certbot/src/certbot/compat/_path.py | 25 | # Check if the attribute does not already exist in our module. It could be internal attributes | COMMENT |
| LOW | certbot/src/certbot/compat/os.py | 38 | # Check if the attribute does not already exist in our module. It could | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/finish_release.py | 203 | print(f'Error running `{' '.join(cmd)}`') | CODE |
| LOW | acme/src/acme/client.py | 358 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | acme/src/acme/client.py | 629 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | …c2136/src/certbot_dns_rfc2136/_internal/dns_rfc2136.py | 144 | except Exception as e: | CODE |
| LOW | …c2136/src/certbot_dns_rfc2136/_internal/dns_rfc2136.py | 179 | except Exception as e: | CODE |
| LOW | …c2136/src/certbot_dns_rfc2136/_internal/dns_rfc2136.py | 247 | except Exception as e: | CODE |
| LOW | certbot/src/certbot/_internal/renewal.py | 393 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | certbot/src/certbot/_internal/renewal.py | 685 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | certbot/src/certbot/_internal/renewal.py | 727 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | certbot/src/certbot/_internal/storage.py | 985 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | certbot/src/certbot/_internal/cert_manager.py | 43 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | certbot/src/certbot/_internal/error_handler.py | 127 | except Exception as exc: # pylint: disable=broad-except | CODE |
| LOW | certbot/src/certbot/_internal/main.py | 816 | except Exception as e: | CODE |
| LOW | certbot/src/certbot/_internal/main.py | 1759 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | certbot/src/certbot/_internal/plugins/disco.py | 194 | except Exception as e: | CODE |
| LOW | certbot/src/certbot/plugins/dns_common_lexicon.py | 113 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | certbot/src/certbot/plugins/dns_common_lexicon.py | 254 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | certbot-compatibility-test/nginx/roundtrip.py | 21 | except Exception as e: | CODE |
| LOW | letstest/letstest/multitester.py | 290 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | certbot/src/certbot/_internal/tests/eff_test.py | 32 | self.config.email = 'certbot@example.org' | CODE |
| LOW | certbot/src/certbot/_internal/tests/eff_test.py | 118 | self.email = 'certbot@example.org' | CODE |
| LOW⚡ | certbot/src/certbot/_internal/tests/main_test.py | 1828 | self._call_no_clientmock(["register", "--email", "user@example.org"]) | CODE |
| LOW⚡ | certbot/src/certbot/_internal/tests/main_test.py | 1836 | x = self._call_no_clientmock(["register", "--email", "user@example.org"]) | CODE |
| LOW⚡ | certbot/src/certbot/_internal/tests/main_test.py | 2344 | assert self._call(['update_account', '--email', 'user@example.org']) == \ | CODE |
| LOW⚡ | certbot/src/certbot/_internal/tests/main_test.py | 2359 | mock_email.return_value = 'user@example.com' | CODE |
| LOW⚡ | certbot/src/certbot/_internal/tests/main_test.py | 2380 | assert self._call(['update_account', '-m', 'user@example.com,user@example.org']) is None | CODE |
| LOW⚡ | certbot/src/certbot/_internal/tests/main_test.py | 2382 | contact=['mailto:user@example.com', 'mailto:user@example.org'] | CODE |
| LOW | certbot/src/certbot/_internal/tests/crypto_util_test.py | 84 | mock.Mock(pem='dummy_key'), 'example.com', self.tempdir, strict_permissions=True) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | certbot/examples/generate-csr.sh | 4 | # auditable, feel free to adjust it and use it on your production web | COMMENT |
| LOW | certbot/examples/dev-cli.ini | 9 | # make sure to use a valid email and domains! | COMMENT |
| LOW | certbot/src/certbot/_internal/auth_handler.py | 249 | # working with those plugins, make sure to continue to pass `identifier` as a | COMMENT |
| LOW | certbot/src/certbot/_internal/auth_handler.py | 251 | # Also, make sure to make a copy... | COMMENT |
| LOW | certbot/src/certbot/_internal/storage.py | 1076 | # XXX: Let's make sure to get the file permissions right here | COMMENT |
| LOW | …tbot/_internal/tests/plugins/nginx/nginxparser_test.py | 180 | ['#', " Don't forget to open up your firewall!"], | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/docker/deploy_images.sh | 7 | # Usage: | COMMENT |
| LOW | tools/docker/build.sh | 7 | # Usage: | COMMENT |
| LOW | tools/docker/deploy_manifests.sh | 7 | # Usage: | COMMENT |
| LOW | tools/docker/test.sh | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | certbot/src/certbot/_internal/account.py | 279 | # Step 1: Delete account specific links and the directory | COMMENT |
| LOW⚡ | certbot/src/certbot/_internal/account.py | 282 | # Step 2: Remove any accounts links and directories that are now empty | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | certbot/src/certbot/_internal/account.py | 279 | # Step 1: Delete account specific links and the directory | COMMENT |
| LOW⚡ | certbot/src/certbot/_internal/account.py | 282 | # Step 2: Remove any accounts links and directories that are now empty | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | certbot/src/certbot/_internal/main.py | 1433 | # TODO: Handle errors from _init_le_client? | COMMENT |
| LOW | certbot/src/certbot/_internal/plugins/apache/parser.py | 361 | # TODO: Add error checking code... does the path given even exist? | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | certbot/src/certbot/_internal/tests/util_test.py | 294 | pass # just create the file | CODE |
| LOW | .github/codecov.yml | 1 | # This disables all reporting from codecov. Let's just set it up to collect | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …t/src/certbot/_internal/plugins/apache/configurator.py | 54 | CODE | |
| LOW | certbot/src/certbot/_internal/tests/main_test.py | 1412 | CODE |