Repository Analysis

certbot/certbot

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.

19.6 Moderate AI signal View on GitHub
19.6
Adjusted Score
19.6
Raw Score
100%
Time Factor
2026-05-28
Last Push
33,059
Stars
Python
Language
94,613
Lines of Code
512
Files
1374
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 14HIGH 44MEDIUM 44LOW 1272

Pattern Findings

1374 matches across 16 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers973 hits · 971 pts
SeverityFileLineSnippet
LOWtools/venv.py133def subprocess_output_with_print(cmd, env=None, shell=False):
LOWtools/finish_release.py69def assert_logged_into_snapcraft():
LOWacme/src/acme/standalone.py97 def shutdown_and_server_close(self) -> None:
LOWacme/src/acme/standalone.py139class HTTP01RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
LOWacme/src/acme/standalone.py157 # In parent class BaseHTTPRequestHandler, 'timeout' is a class-level property but we
LOWacme/src/acme/standalone.py203 def handle_simple_http_resource(self) -> None:
LOWacme/src/acme/client.py386 def external_account_required(self) -> bool:
LOWacme/src/acme/client.py831def _renewal_info_path_component(cert: x509.Certificate) -> str:
LOWacme/src/acme/messages.py402 def _add_contact_if_appropriate(self, jobj: dict[str, Any]) -> dict[str, Any]:
LOWacme/src/acme/crypto_util.py144def get_names_from_subject_and_extensions(
LOWacme/src/acme/crypto_util.py198def _cryptography_cert_or_req_san(
LOWacme/src/acme/_internal/tests/messages_test.py50 def test_from_json_with_subproblems(self):
LOWacme/src/acme/_internal/tests/messages_test.py170 def test_init_wrong_key_value_success(self): # pylint: disable=no-self-use
LOWacme/src/acme/_internal/tests/messages_test.py177 def test_getitem_fails_with_key_error(self):
LOWacme/src/acme/_internal/tests/messages_test.py184 def test_getattr_fails_with_attribute_error(self):
LOWacme/src/acme/_internal/tests/messages_test.py203 def test_from_json_deserialization_unknown_key_success(self): # pylint: disable=no-self-use
LOWacme/src/acme/_internal/tests/messages_test.py233 def test_from_data_invalid_hmac_alg(self):
LOWacme/src/acme/_internal/tests/messages_test.py241 def test_from_data_default_hmac_alg(self):
LOWacme/src/acme/_internal/tests/messages_test.py290 def test_new_registration_from_data_with_eab(self):
LOWacme/src/acme/_internal/tests/messages_test.py326 def test_default_not_transmitted(self):
LOWacme/src/acme/_internal/tests/messages_test.py465 def test_json_de_serializable(self):
LOWacme/src/acme/_internal/tests/messages_test.py480 def test_json_de_serializable(self):
LOWacme/src/acme/_internal/tests/messages_test.py495 def test_json_de_serializable(self):
LOWacme/src/acme/_internal/tests/messages_test.py528 def test_json_de_serializable(self):
LOWacme/src/acme/_internal/tests/messages_test.py572 def test_default_profile_empty(self):
LOWacme/src/acme/_internal/tests/challenges_test.py21 def test_from_json_unrecognized(self):
LOWacme/src/acme/_internal/tests/challenges_test.py64 def test_verify_wrong_thumbprint(self):
LOWacme/src/acme/_internal/tests/challenges_test.py104 def test_simple_verify_failure(self):
LOWacme/src/acme/_internal/tests/challenges_test.py110 def test_simple_verify_success(self):
LOWacme/src/acme/_internal/tests/challenges_test.py127 def test_validation_domain_name(self):
LOWacme/src/acme/_internal/tests/challenges_test.py173 def test_simple_verify_bad_key_authorization(self):
LOWacme/src/acme/_internal/tests/challenges_test.py178 def test_simple_verify_good_validation(self, mock_get):
LOWacme/src/acme/_internal/tests/challenges_test.py187 def test_simple_verify_bad_validation(self, mock_get):
LOWacme/src/acme/_internal/tests/challenges_test.py193 def test_simple_verify_whitespace_validation(self, mock_get):
LOWacme/src/acme/_internal/tests/challenges_test.py204 def test_simple_verify_connection_error(self, mock_get):
LOWacme/src/acme/_internal/tests/challenges_test.py218 def test_simple_verify_timeout(self, mock_get):
LOWacme/src/acme/_internal/tests/challenges_test.py307 def test_gen_check_validation(self, key, alg, msg: 'DNS'):
LOWacme/src/acme/_internal/tests/challenges_test.py311 def test_gen_check_validation_wrong_key(self, msg: 'DNS'):
LOWacme/src/acme/_internal/tests/challenges_test.py316 def test_check_validation_wrong_payload(self, msg: 'DNS'):
LOWacme/src/acme/_internal/tests/challenges_test.py325 def test_check_validation_wrong_fields(self, msg: 'DNS'):
LOWacme/src/acme/_internal/tests/challenges_test.py340 def test_validation_domain_name(self, msg: 'DNS'):
LOWacme/src/acme/_internal/tests/challenges_test.py343 def test_validation_domain_name_ecdsa(self, msg: 'DNS'):
LOWacme/src/acme/_internal/tests/fields_test.py42 def test_default_encoder_naive_fails(self):
LOWacme/src/acme/_internal/tests/fields_test.py51 def test_default_decoder_raises_deserialization_error(self):
LOWacme/src/acme/_internal/tests/crypto_util_test.py18 def test_to_cryptography_encoding(self):
LOWacme/src/acme/_internal/tests/crypto_util_test.py27 def test_dump_cryptography_chain(self):
LOWacme/src/acme/_internal/tests/crypto_util_test.py39 def test_dump_cryptography_chain_wrong_encoding(self):
LOWacme/src/acme/_internal/tests/crypto_util_test.py250 def test_make_csr_must_staple(self):
LOWacme/src/acme/_internal/tests/crypto_util_test.py259 def test_make_csr_without_hostname(self):
LOWacme/src/acme/_internal/tests/crypto_util_test.py263 def test_make_csr_invalid_key_type(self):
LOWacme/src/acme/_internal/tests/client_test.py387 def test_external_account_required_true(self):
LOWacme/src/acme/_internal/tests/client_test.py394 def test_external_account_required_false(self):
LOWacme/src/acme/_internal/tests/client_test.py401 def test_external_account_required_default(self):
LOWacme/src/acme/_internal/tests/client_test.py404 def test_query_registration_client(self):
LOWacme/src/acme/_internal/tests/client_test.py722 def test_check_response_not_ok_jobj_no_error(self):
LOWacme/src/acme/_internal/tests/client_test.py731 def test_check_response_not_ok_jobj_error(self):
LOWacme/src/acme/_internal/tests/client_test.py739 def test_check_response_not_ok_no_jobj(self):
LOWacme/src/acme/_internal/tests/client_test.py746 def test_check_response_ok_no_jobj_ct_required(self):
LOWacme/src/acme/_internal/tests/client_test.py755 def test_check_response_ok_no_jobj_no_ct(self):
LOWacme/src/acme/_internal/tests/client_test.py763 def test_check_response_ok_ct_with_charset(self, mock_logger):
913 more matches not shown…
Hallucination Indicators14 hits · 195 pts
SeverityFileLineSnippet
CRITICALcertbot/src/certbot/_internal/plugins/apache/obj.py30 return f"certbot._internal.plugins.apache.obj.Addr({repr(self.tup)})"
CRITICAL…ot/src/certbot/_internal/plugins/apache/display_ops.py86 "certbot._internal.plugins.apache.display_ops._vhost_menu()")
CRITICAL…src/certbot/_internal/tests/plugins/apache/obj_test.py30 "certbot._internal.plugins.apache.obj.Addr(('127.0.0.1', '443'))"
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py168 self.cf.dns.records.create.assert_called_with(
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py238 self.cf.dns.records.list.assert_called_once_with(
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py241 self.cf.dns.records.delete.assert_called_once_with(
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py256 self.cf.dns.records.delete.assert_called_once_with(
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py265 self.cf.dns.records.list.assert_called_once()
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py266 self.cf.dns.records.delete.assert_not_called()
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py274 self.cf.dns.records.list.assert_called_once()
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py275 self.cf.dns.records.delete.assert_not_called()
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py291 self.cf.dns.records.delete.assert_called_once_with(
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py300 self.cf.dns.records.list.assert_called_once()
CRITICAL…_dns_cloudflare/_internal/tests/dns_cloudflare_test.py301 self.cf.dns.records.delete.assert_not_called()
Cross-File Repetition29 hits · 145 pts
SeverityFileLineSnippet
HIGHcertbot/src/certbot/interfaces.py0compatibility shim for plugins that still use certbot's old zope.interface classes.
HIGHcertbot/src/certbot/interfaces.py0compatibility shim for plugins that still use certbot's old zope.interface classes.
HIGHcertbot/src/certbot/interfaces.py0compatibility shim for plugins that still use certbot's old zope.interface classes.
HIGHcertbot/src/certbot/interfaces.py0compatibility shim for plugins that still use certbot's old zope.interface classes.
HIGH…ot/src/certbot/_internal/plugins/nginx/configurator.py0revert all previously modified files. reverts all modified files that have not been saved as a checkpoint :raises .error
HIGH…t/src/certbot/_internal/plugins/apache/configurator.py0revert all previously modified files. reverts all modified files that have not been saved as a checkpoint :raises .error
HIGHcertbot/src/certbot/plugins/common.py0revert all previously modified files. reverts all modified files that have not been saved as a checkpoint :raises .error
HIGH…ot/src/certbot/_internal/plugins/nginx/configurator.py0rollback saved checkpoints. :param int rollback: number of checkpoints to revert :raises .errors.pluginerror: if there i
HIGH…t/src/certbot/_internal/plugins/apache/configurator.py0rollback saved checkpoints. :param int rollback: number of checkpoints to revert :raises .errors.pluginerror: if there i
HIGHcertbot/src/certbot/plugins/common.py0rollback saved checkpoints. :param int rollback: number of checkpoints to revert :raises .errors.pluginerror: if there i
HIGH…bot/src/certbot/_internal/plugins/apache/interfaces.py0returns a list of file paths that have currently been parsed into the parser tree. the returned list may include paths w
HIGH…t/src/certbot/_internal/plugins/apache/augeasparser.py0returns a list of file paths that have currently been parsed into the parser tree. the returned list may include paths w
HIGH…bot/src/certbot/_internal/plugins/apache/dualparser.py0returns a list of file paths that have currently been parsed into the parser tree. the returned list may include paths w
HIGH…rc/certbot/_internal/plugins/apache/override_gentoo.py0override for update_runtime_variables for custom parsing
HIGH…rc/certbot/_internal/plugins/apache/override_centos.py0override for update_runtime_variables for custom parsing
HIGH…rc/certbot/_internal/plugins/apache/override_fedora.py0override for update_runtime_variables for custom parsing
HIGH…t/src/certbot/_internal/plugins/apache/augeasparser.py0recursive search of directivenodes from the sequence of children
HIGH…t/src/certbot/_internal/plugins/apache/apacheparser.py0recursive search of directivenodes from the sequence of children
HIGH…t/src/certbot/_internal/plugins/apache/apacheparser.py0recursive search of directivenodes from the sequence of children
HIGH…bot/src/certbot/_internal/tests/plugins/apache/util.py0return the ground truth for the specified directory.
HIGH…/certbot/_internal/tests/plugins/apache/gentoo_test.py0return the ground truth for the specified directory.
HIGH…/certbot/_internal/tests/plugins/apache/centos_test.py0return the ground truth for the specified directory.
HIGH…/certbot/_internal/tests/plugins/apache/fedora_test.py0return the ground truth for the specified directory.
HIGH…lity-test/src/certbot_compatibility_test/interfaces.py0initializes the plugin with the given command line args
HIGH…src/certbot_compatibility_test/configurators/common.py0initializes the plugin with the given command line args
HIGH…tbot_compatibility_test/configurators/apache/common.py0initializes the plugin with the given command line args
HIGH…src/certbot_compatibility_test/configurators/common.py0performs any necessary cleanup from running plugin tests
HIGH…rtbot_compatibility_test/configurators/nginx/common.py0performs any necessary cleanup from running plugin tests
HIGH…tbot_compatibility_test/configurators/apache/common.py0performs any necessary cleanup from running plugin tests
Over-Commented Block121 hits · 121 pts
SeverityFileLineSnippet
LOWpytest.ini1# This file isn't used while testing packages in tools/_release.sh so any
LOWcertbot-dns-sakuracloud/docs/conf.py1# -*- coding: utf-8 -*-
LOWcertbot-dns-sakuracloud/docs/conf.py61# The version info for the project you're documenting, acts as replacement for
LOWcertbot-dns-sakuracloud/docs/conf.py101# documentation.
LOWcertbot-dns-sakuracloud/docs/conf.py121 #
LOWtools/pip_install.py1#!/usr/bin/env python
LOWtools/docker/deploy_images.sh1#!/bin/bash
LOWtools/docker/build.sh1#!/bin/bash
LOWtools/docker/deploy_manifests.sh1#!/bin/bash
LOWtools/docker/test.sh1#!/bin/bash
LOWtools/pinning/common/export-pinned-dependencies.sh1#!/bin/bash
LOWtools/pinning/current/repin.sh21# This file was generated by $RELATIVE_SCRIPT_PATH and can be updated using
LOWtools/pinning/current/pyproject.toml41# as a dependency here to ensure a version of cython is pinned for extra
LOWtools/pinning/oldest/pyproject.toml1# The purpose of this file is to help us test Certbot against the oldest
LOWtools/pinning/oldest/pyproject.toml81pycparser = "2.14"
LOWtools/snap/build_remote.py41
LOWcertbot-dns-luadns/docs/conf.py1# -*- coding: utf-8 -*-
LOWcertbot-dns-luadns/docs/conf.py61# The version info for the project you're documenting, acts as replacement for
LOWcertbot-dns-luadns/docs/conf.py101# documentation.
LOWcertbot-dns-luadns/docs/conf.py121 #
LOW.azure-pipelines/templates/jobs/common-deploy-jobs.yml1# As (somewhat) described at
LOW.azure-pipelines/templates/jobs/common-deploy-jobs.yml21 # snapcraft export-login --channels=beta,edge snapcraft.cfg
LOWacme/docs/conf.py1# -*- coding: utf-8 -*-
LOWacme/docs/conf.py61project = u'acme-python'
LOWacme/docs/conf.py81# There are two options for replacing |today|: either, you set today to some
LOWacme/docs/conf.py101# unit titles (such as .. function::).
LOWacme/docs/conf.py121# -- Options for HTML output ----------------------------------------------
LOWacme/docs/conf.py141#html_short_title = None
LOWacme/docs/conf.py161
LOWacme/docs/conf.py181#html_use_index = True
LOWacme/docs/conf.py201#html_file_suffix = None
LOWacme/docs/conf.py221
LOWacme/docs/conf.py241 u'Let\'s Encrypt Project', 'manual'),
LOWacme/docs/conf.py281# Grouping the document tree into Texinfo files. List of tuples
LOWcertbot-dns-rfc2136/docs/conf.py1# -*- coding: utf-8 -*-
LOWcertbot-dns-rfc2136/docs/conf.py61# The version info for the project you're documenting, acts as replacement for
LOWcertbot-dns-rfc2136/docs/conf.py101# documentation.
LOWcertbot-dns-rfc2136/docs/conf.py121 #
LOWcertbot/docs/conf.py1# -*- coding: utf-8 -*-
LOWcertbot/docs/conf.py61source_suffix = '.rst'
LOWcertbot/docs/conf.py81release = meta['version']
LOWcertbot/docs/conf.py101]
LOWcertbot/docs/conf.py141# documentation.
LOWcertbot/docs/conf.py161#html_favicon = None
LOWcertbot/docs/conf.py181# Custom sidebar templates, maps document names to template names.
LOWcertbot/docs/conf.py201#html_show_sphinx = True
LOWcertbot/docs/conf.py221# Now only 'ja' uses this config value
LOWcertbot/docs/conf.py241 #'preamble': '',
LOWcertbot/docs/conf.py261#latex_use_parts = False
LOWcertbot/examples/cli.ini1# This is an example of the kind of things you can do in a configuration file.
LOWcertbot/examples/cli.ini21# authenticator = standalone
LOWcertbot/src/certbot/_internal/client.py361 newly generated private key (`.util.Key`), and DER-encoded
LOWcertbot/src/certbot/_internal/lock.py161 """Remove, close, and release the lock file."""
LOWcertbot/src/certbot/_internal/storage.py141 merged_config = configobj.ConfigObj(config_filename, encoding='utf-8', default_encoding='utf-8',
LOWcertbot/src/certbot/_internal/storage.py661 # the chain matching the cert, and the cert matching
LOWcertbot/src/certbot/_internal/error_handler.py21# included as they could be a sign of something devious and we should terminate
LOWcertbot/src/certbot/_internal/plugins/apache/parser.py521
LOW…t/src/certbot/_internal/plugins/apache/configurator.py101# only properly formed sections are added.
LOWcertbot/src/certbot/_internal/tests/renewal_test.py321 # Times that should result in autorenewal/autodeployment
LOWcertbot/src/certbot/_internal/tests/renewal_test.py361 # at 3.5 days prior to expiry. We haven't reached that yet,
61 more matches not shown…
Cross-Language Confusion15 hits · 112 pts
SeverityFileLineSnippet
HIGHletstest/letstest/multitester.py208 local_cxn.local('cd %s && if [ -d letsencrypt ]; then rm -rf letsencrypt; fi' % log_dir)
HIGHletstest/letstest/multitester.py209 local_cxn.local('cd %s && git clone %s letsencrypt'% (log_dir, repo_url))
HIGHletstest/letstest/multitester.py210 local_cxn.local('cd %s && tar czf le.tar.gz letsencrypt'% log_dir)
HIGHletstest/letstest/multitester.py214 local_cxn.local('cd %s && if [ -d letsencrypt ]; then rm -rf letsencrypt; fi' % log_dir)
HIGHletstest/letstest/multitester.py215 local_cxn.local('cd %s && git clone %s letsencrypt --branch %s --single-branch'%
HIGHletstest/letstest/multitester.py217 local_cxn.local('cd %s && tar czf le.tar.gz letsencrypt' % log_dir)
HIGHletstest/letstest/multitester.py221 local_cxn.local('cd %s && if [ -d letsencrypt ]; then rm -rf letsencrypt; fi' % log_dir)
HIGHletstest/letstest/multitester.py222 local_cxn.local('cd %s && git clone %s letsencrypt' % (log_dir, repo_url))
HIGHletstest/letstest/multitester.py223 local_cxn.local('cd %s && cd letsencrypt && '
HIGHletstest/letstest/multitester.py225 local_cxn.local('cd %s && cd letsencrypt && git checkout lePRtest' % log_dir)
HIGHletstest/letstest/multitester.py227 local_cxn.local('cd %s && cd letsencrypt && git remote update origin' % log_dir)
HIGHletstest/letstest/multitester.py228 local_cxn.local('cd %s && cd letsencrypt && '
HIGHletstest/letstest/multitester.py230 local_cxn.local('cd %s && tar czf le.tar.gz letsencrypt' % log_dir)
HIGHletstest/letstest/multitester.py257 with cxn.prefix('export PUBLIC_IP=%s && export PRIVATE_IP=%s && '
HIGHletstest/letstest/multitester.py258 'export PUBLIC_HOSTNAME=%s && export PIP_EXTRA_INDEX_URL=%s && '
Self-Referential Comments30 hits · 90 pts
SeverityFileLineSnippet
MEDIUMpytest.ini1# This file isn't used while testing packages in tools/_release.sh so any
MEDIUMcertbot-dns-sakuracloud/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMtools/finish_release.py166 # Create a connection to the azure org
MEDIUMtools/docker/build.sh25# Create the builder
MEDIUMtools/snap/generate_dnsplugins_postrefreshhook.sh12# This file is generated automatically and should not be edited manually.
MEDIUMtools/snap/generate_dnsplugins_snapcraft.sh13# This file is generated automatically and should not be edited manually.
MEDIUMcertbot-dns-luadns/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMacme/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot-dns-rfc2136/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot/src/certbot/reverter.py239 # This file is required in all checkpoints.
MEDIUM…tbot/src/certbot/_internal/plugins/nginx/parser_obj.py2# This module is not used for now, so we just skip type checking for the sake
MEDIUM…t/src/certbot/_internal/plugins/apache/augeasparser.py284 # Create the new block
MEDIUM…t/src/certbot/_internal/plugins/apache/augeasparser.py317 # Create the new directive
MEDIUM…t/src/certbot/_internal/plugins/apache/augeasparser.py349 # Create the new comment
MEDIUM…t/src/certbot/_internal/plugins/apache/configurator.py1406 # Create the Vhost object
MEDIUM…ot/_internal/tests/plugins/apache/configurator_test.py1055 # Create a preexisting rewrite rule
MEDIUM…ot/_internal/tests/plugins/apache/configurator_test.py1094 # Create an old (previously supported) https redirectoin rewrite rule
MEDIUMcertbot-dns-dnsimple/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot-dns-cloudflare/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot-dns-route53/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUM…ute53/src/certbot_dns_route53/_internal/dns_route53.py142 # Create a new list containing the record to use with DELETE
MEDIUMcertbot-dns-digitalocean/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot-dns-nsone/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot-dns-ovh/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUM…c/certbot_integration_tests/certbot_tests/test_main.py323 # Create a read permission for Everybody group
MEDIUMcertbot-dns-linode/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot-dns-gehirn/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot-dns-google/docs/conf.py6# This file is execfile()d with the current directory set to its
MEDIUMcertbot-dns-dnsmadeeasy/docs/conf.py6# This file is execfile()d with the current directory set to its
Deep Nesting69 hits · 65 pts
SeverityFileLineSnippet
LOWtools/extract_changelog.py13
LOWtools/snap/build_remote.py99
LOWtools/snap/build_remote.py216
LOWtools/snap/build_remote.py248
LOWacme/src/acme/client.py185
LOWacme/src/acme/client.py231
LOWcertbot/src/certbot/util.py466
LOWcertbot/src/certbot/util.py78
LOWcertbot/src/certbot/reverter.py215
LOWcertbot/src/certbot/reverter.py405
LOWcertbot/src/certbot/crypto_util.py240
LOWcertbot/src/certbot/_internal/client.py49
LOWcertbot/src/certbot/_internal/client.py352
LOWcertbot/src/certbot/_internal/renewal.py181
LOWcertbot/src/certbot/_internal/renewal.py584
LOWcertbot/src/certbot/_internal/renewal.py632
LOWcertbot/src/certbot/_internal/storage.py1229
LOWcertbot/src/certbot/_internal/cert_manager.py104
LOWcertbot/src/certbot/_internal/cert_manager.py129
LOWcertbot/src/certbot/_internal/main.py533
LOWcertbot/src/certbot/_internal/main.py705
LOWcertbot/src/certbot/_internal/plugins/webroot.py116
LOWcertbot/src/certbot/_internal/plugins/webroot.py183
LOWcertbot/src/certbot/_internal/plugins/webroot.py257
LOW…bot/src/certbot/_internal/plugins/nginx/nginxparser.py124
LOWcertbot/src/certbot/_internal/plugins/nginx/http_01.py72
LOWcertbot/src/certbot/_internal/plugins/nginx/parser.py479
LOWcertbot/src/certbot/_internal/plugins/nginx/parser.py676
LOWcertbot/src/certbot/_internal/plugins/nginx/parser.py793
LOWcertbot/src/certbot/_internal/plugins/nginx/parser.py63
LOWcertbot/src/certbot/_internal/plugins/nginx/parser.py107
LOWcertbot/src/certbot/_internal/plugins/nginx/parser.py185
LOWcertbot/src/certbot/_internal/plugins/nginx/parser.py388
LOWcertbot/src/certbot/_internal/plugins/nginx/obj.py56
LOW…ot/src/certbot/_internal/plugins/nginx/configurator.py1281
LOW…ot/src/certbot/_internal/plugins/nginx/configurator.py279
LOW…ot/src/certbot/_internal/plugins/nginx/configurator.py436
LOW…ot/src/certbot/_internal/plugins/nginx/configurator.py496
LOW…ot/src/certbot/_internal/plugins/nginx/configurator.py671
LOWcertbot/src/certbot/_internal/plugins/apache/http_01.py159
LOWcertbot/src/certbot/_internal/plugins/apache/parser.py317
LOW…t/src/certbot/_internal/plugins/apache/configurator.py599
LOW…t/src/certbot/_internal/plugins/apache/configurator.py815
LOW…t/src/certbot/_internal/plugins/apache/configurator.py886
LOW…t/src/certbot/_internal/plugins/apache/configurator.py1028
LOW…t/src/certbot/_internal/plugins/apache/configurator.py1051
LOW…t/src/certbot/_internal/plugins/apache/configurator.py1538
LOW…t/src/certbot/_internal/plugins/apache/configurator.py2525
LOW…bot/src/certbot/_internal/plugins/apache/dualparser.py57
LOWcertbot/src/certbot/_internal/tests/log_test.py363
LOWcertbot/src/certbot/_internal/tests/ocsp_test.py204
LOWcertbot/src/certbot/_internal/tests/main_test.py1412
LOWcertbot/src/certbot/_internal/tests/cli_test.py99
LOWcertbot/src/certbot/_internal/tests/client_test.py221
LOW…ot/src/certbot/_internal/tests/plugins/storage_test.py24
LOW…bot/src/certbot/_internal/tests/plugins/apache/util.py80
LOW…tbot/_internal/tests/plugins/apache/entrypoint_test.py11
LOWcertbot/src/certbot/_internal/cli/helpful.py126
LOWcertbot/src/certbot/_internal/cli/helpful.py169
LOW…src/certbot_dns_cloudflare/_internal/dns_cloudflare.py193
9 more matches not shown…
Unused Imports62 hits · 58 pts
SeverityFileLineSnippet
LOWtools/extract_changelog.py2
LOWtools/pip_install.py13
LOWtools/pip_install.py14
LOWtools/venv.py15
LOWacme/src/acme/standalone.py2
LOWacme/src/acme/__init__.py15
LOWacme/src/acme/errors.py13
LOWacme/src/acme/_internal/tests/jose_test.py23
LOWacme/src/acme/_internal/tests/jose_test.py25
LOWcertbot/src/certbot/interfaces.py23
LOWcertbot/src/certbot/ocsp.py5
LOWcertbot/src/certbot/errors.py5
LOWcertbot/src/certbot/crypto_util.py43
LOWcertbot/src/certbot/crypto_util.py44
LOWcertbot/src/certbot/crypto_util.py45
LOWcertbot/src/certbot/crypto_util.py46
LOWcertbot/src/certbot/_internal/snap_config.py2
LOW…bot/src/certbot/_internal/plugins/nginx/nginxparser.py12
LOWcertbot/src/certbot/_internal/plugins/nginx/http_01.py18
LOWcertbot/src/certbot/_internal/plugins/nginx/parser.py2
LOWcertbot/src/certbot/_internal/plugins/apache/http_01.py17
LOWcertbot/src/certbot/_internal/plugins/apache/parser.py19
LOW…bot/src/certbot/_internal/plugins/apache/dualparser.py15
LOW…bot/src/certbot/_internal/plugins/apache/dualparser.py16
LOWcertbot/src/certbot/_internal/tests/ocsp_test.py191
LOW…ot/src/certbot/_internal/tests/plugins/webroot_test.py3
LOWcertbot/src/certbot/_internal/cli/cli_utils.py21
LOWcertbot/src/certbot/_internal/cli/__init__.py7
LOWcertbot/src/certbot/_internal/cli/__init__.py9
LOWcertbot/src/certbot/_internal/cli/__init__.py11
LOWcertbot/src/certbot/_internal/cli/__init__.py16
LOWcertbot/src/certbot/_internal/cli/__init__.py17
LOWcertbot/src/certbot/_internal/cli/__init__.py18
LOWcertbot/src/certbot/_internal/cli/__init__.py19
LOWcertbot/src/certbot/_internal/cli/__init__.py20
LOWcertbot/src/certbot/_internal/cli/__init__.py21
LOWcertbot/src/certbot/_internal/cli/__init__.py22
LOWcertbot/src/certbot/_internal/cli/__init__.py23
LOWcertbot/src/certbot/_internal/cli/__init__.py24
LOWcertbot/src/certbot/_internal/cli/__init__.py25
LOWcertbot/src/certbot/_internal/cli/__init__.py27
LOWcertbot/src/certbot/_internal/cli/__init__.py28
LOWcertbot/src/certbot/_internal/cli/__init__.py29
LOWcertbot/src/certbot/_internal/cli/__init__.py30
LOWcertbot/src/certbot/_internal/cli/__init__.py32
LOWcertbot/src/certbot/_internal/cli/__init__.py36
LOWcertbot/src/certbot/_internal/cli/__init__.py38
LOWcertbot/src/certbot/_internal/cli/__init__.py39
LOWcertbot/src/certbot/_internal/cli/__init__.py40
LOWcertbot/src/certbot/_internal/cli/__init__.py46
LOWcertbot/src/certbot/_internal/cli/__init__.py47
LOWcertbot/src/certbot/_internal/cli/__init__.py49
LOWcertbot/src/certbot/_internal/display/completer.py6
LOWcertbot/src/certbot/compat/_path.py11
LOWcertbot/src/certbot/compat/_path.py16
LOWcertbot/src/certbot/compat/misc.py5
LOWcertbot/src/certbot/compat/filesystem.py2
LOWcertbot/src/certbot/compat/os.py19
LOWcertbot/src/certbot/compat/os.py24
LOWletstest/scripts/version.py7
2 more matches not shown…
Decorative Section Separators13 hits · 34 pts
SeverityFileLineSnippet
MEDIUMcertbot/src/certbot/_internal/cli/cli_utils.py265 # ------------------------------------------------------------
MEDIUMletstest/targets/targets.yaml7 #-----------------------------------------------------------------------------
MEDIUMletstest/targets/targets.yaml20 #-----------------------------------------------------------------------------
MEDIUMletstest/targets/targets.yaml28 #-----------------------------------------------------------------------------
MEDIUMletstest/letstest/multitester.py205#-------------------------------------------------------------------------------
MEDIUMletstest/letstest/multitester.py46#-------------------------------------------------------------------------------
MEDIUMletstest/letstest/multitester.py78#-------------------------------------------------------------------------------
MEDIUMletstest/letstest/multitester.py85#-------------------------------------------------------------------------------
MEDIUMletstest/letstest/multitester.py96#-------------------------------------------------------------------------------
MEDIUMletstest/letstest/multitester.py175#-------------------------------------------------------------------------------
MEDIUMletstest/letstest/multitester.py373 #-------------------------------------------------------------------------------
MEDIUMletstest/letstest/multitester.py398 #-------------------------------------------------------------------------------
MEDIUMletstest/letstest/multitester.py445 #-------------------------------------------------------------------------------
Redundant / Tautological Comments15 hits · 22 pts
SeverityFileLineSnippet
LOWtools/snap/build_remote.py142 # Check if the snap file just contains html
LOWcertbot/src/certbot/_internal/lock.py109 # Open the file
LOWcertbot/src/certbot/_internal/lock.py116 # Close the file if it is not the required one
LOW…t/src/certbot/_internal/plugins/apache/augeasparser.py146 # Check if the file was included from the root config or initial state
LOW…t/src/certbot/_internal/plugins/apache/augeasparser.py286 # Check if the file was included from the root config or initial state
LOW…t/src/certbot/_internal/plugins/apache/augeasparser.py321 # Check if the file was included from the root config or initial state
LOW…t/src/certbot/_internal/plugins/apache/augeasparser.py466 # Check if the file was included from the root config or initial state
LOW…t/src/certbot/_internal/plugins/apache/configurator.py1153 # Check if the VirtualHost is contained in a mod_macro block
LOW…t/src/certbot/_internal/plugins/apache/configurator.py1317 # Check if Apache is already listening on a specific IP
LOW…t/src/certbot/_internal/plugins/apache/configurator.py1935 # Check if there's an existing SSLUseStapling directive on.
LOW…t/src/certbot/_internal/plugins/apache/configurator.py1943 # Check if there's an existing SSLStaplingCache directive.
LOW…t/src/certbot/_internal/plugins/apache/configurator.py1986 # Check if selected header is already set
LOW…t/src/certbot/_internal/plugins/apache/configurator.py2075 # Check if Certbot redirection already exists
LOWcertbot/src/certbot/compat/_path.py25 # Check if the attribute does not already exist in our module. It could be internal attributes
LOWcertbot/src/certbot/compat/os.py38 # Check if the attribute does not already exist in our module. It could
Excessive Try-Catch Wrapping18 hits · 18 pts
SeverityFileLineSnippet
LOWacme/src/acme/client.py358 except Exception as e: # pylint: disable=broad-except
LOWacme/src/acme/client.py629 except Exception: # pylint: disable=broad-except
LOW…c2136/src/certbot_dns_rfc2136/_internal/dns_rfc2136.py144 except Exception as e:
LOW…c2136/src/certbot_dns_rfc2136/_internal/dns_rfc2136.py179 except Exception as e:
LOW…c2136/src/certbot_dns_rfc2136/_internal/dns_rfc2136.py247 except Exception as e:
LOWcertbot/src/certbot/_internal/renewal.py393 except Exception: # pylint: disable=broad-except
LOWcertbot/src/certbot/_internal/renewal.py685 except Exception as e: # pylint: disable=broad-except
LOWcertbot/src/certbot/_internal/renewal.py727 except Exception as e: # pylint: disable=broad-except
LOWcertbot/src/certbot/_internal/storage.py985 except Exception as e: # pylint: disable=broad-except
LOWcertbot/src/certbot/_internal/cert_manager.py43 except Exception as e: # pylint: disable=broad-except
LOWcertbot/src/certbot/_internal/error_handler.py127 except Exception as exc: # pylint: disable=broad-except
LOWcertbot/src/certbot/_internal/main.py816 except Exception as e:
LOWcertbot/src/certbot/_internal/main.py1759 except Exception as e: # pylint: disable=broad-except
LOWcertbot/src/certbot/_internal/plugins/disco.py194 except Exception as e:
LOWcertbot/src/certbot/plugins/dns_common_lexicon.py113 except Exception as e: # pylint: disable=broad-except
LOWcertbot/src/certbot/plugins/dns_common_lexicon.py254 except Exception as e: # pylint: disable=broad-except
LOWcertbot-compatibility-test/nginx/roundtrip.py21 except Exception as e:
LOWletstest/letstest/multitester.py290 except Exception:
Slop Phrases6 hits · 10 pts
SeverityFileLineSnippet
MEDIUMcertbot/examples/generate-csr.sh4# auditable, feel free to adjust it and use it on your production web
LOWcertbot/examples/dev-cli.ini9# make sure to use a valid email and domains!
LOWcertbot/src/certbot/_internal/auth_handler.py249 # working with those plugins, make sure to continue to pass `identifier` as a
LOWcertbot/src/certbot/_internal/auth_handler.py251 # Also, make sure to make a copy...
LOWcertbot/src/certbot/_internal/storage.py1076 # XXX: Let's make sure to get the file permissions right here
LOW…tbot/_internal/tests/plugins/nginx/nginxparser_test.py180 ['#', " Don't forget to open up your firewall!"],
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippet
LOWtools/docker/deploy_images.sh7# Usage:
LOWtools/docker/build.sh7# Usage:
LOWtools/docker/deploy_manifests.sh7# Usage:
LOWtools/docker/test.sh6# Usage:
Verbosity Indicators2 hits · 4 pts
SeverityFileLineSnippet
LOWcertbot/src/certbot/_internal/account.py279 # Step 1: Delete account specific links and the directory
LOWcertbot/src/certbot/_internal/account.py282 # Step 2: Remove any accounts links and directories that are now empty
AI Slop Vocabulary2 hits · 2 pts
SeverityFileLineSnippet
LOWcertbot/src/certbot/_internal/tests/util_test.py294 pass # just create the file
LOW.github/codecov.yml1# This disables all reporting from codecov. Let's just set it up to collect
Fake / Example Data1 hit · 2 pts
SeverityFileLineSnippet
LOWcertbot/src/certbot/_internal/tests/main_test.py2359 mock_email.return_value = 'user@example.com'