summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2022-03-01 16:04:49 +0100
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2022-03-24 13:06:15 +0100
commitec4a3f7f1eac9e605b35d1ac56680e1608c48be3 (patch)
tree5cf16665b7797bbe17e71f0f886a744e83bd034a
parent9e0baf370a15fecf3360996a6a2ead688fc61894 (diff)
downloadpylint-git-ec4a3f7f1eac9e605b35d1ac56680e1608c48be3.tar.gz
Add a pre-commit hook to check the copyright notice
Fix the existing file so they have a notice. No header for setup.py or examples or doc
-rw-r--r--.pre-commit-config.yaml9
-rw-r--r--doc/conf.py5
-rwxr-xr-xdoc/exts/pylint_extensions.py3
-rwxr-xr-xdoc/exts/pylint_features.py3
-rw-r--r--doc/exts/pylint_messages.py2
-rw-r--r--pylint/__init__.py2
-rw-r--r--pylint/__main__.py2
-rw-r--r--pylint/__pkginfo__.py3
-rw-r--r--pylint/checkers/__init__.py2
-rw-r--r--pylint/checkers/async.py2
-rw-r--r--pylint/checkers/base.py2
-rw-r--r--pylint/checkers/base_checker.py3
-rw-r--r--pylint/checkers/classes/__init__.py2
-rw-r--r--pylint/checkers/classes/class_checker.py2
-rw-r--r--pylint/checkers/classes/special_methods_checker.py2
-rw-r--r--pylint/checkers/deprecated.py2
-rw-r--r--pylint/checkers/design_analysis.py2
-rw-r--r--pylint/checkers/ellipsis_checker.py4
-rw-r--r--pylint/checkers/exceptions.py2
-rw-r--r--pylint/checkers/format.py2
-rw-r--r--pylint/checkers/imports.py2
-rw-r--r--pylint/checkers/logging.py2
-rw-r--r--pylint/checkers/mapreduce_checker.py3
-rw-r--r--pylint/checkers/misc.py3
-rw-r--r--pylint/checkers/modified_iterating_checker.py2
-rw-r--r--pylint/checkers/newstyle.py2
-rw-r--r--pylint/checkers/non_ascii_names.py2
-rw-r--r--pylint/checkers/raw_metrics.py2
-rw-r--r--pylint/checkers/refactoring/__init__.py2
-rw-r--r--pylint/checkers/refactoring/implicit_booleaness_checker.py3
-rw-r--r--pylint/checkers/refactoring/not_checker.py3
-rw-r--r--pylint/checkers/refactoring/recommendation_checker.py3
-rw-r--r--pylint/checkers/refactoring/refactoring_checker.py2
-rw-r--r--pylint/checkers/similar.py2
-rw-r--r--pylint/checkers/spelling.py2
-rw-r--r--pylint/checkers/stdlib.py2
-rw-r--r--pylint/checkers/strings.py2
-rw-r--r--pylint/checkers/threading_checker.py2
-rw-r--r--pylint/checkers/typecheck.py2
-rw-r--r--pylint/checkers/unicode.py2
-rw-r--r--pylint/checkers/unsupported_version.py2
-rw-r--r--pylint/checkers/utils.py2
-rw-r--r--pylint/checkers/variables.py2
-rw-r--r--pylint/config/__init__.py2
-rw-r--r--pylint/config/config_initialization.py2
-rw-r--r--pylint/config/configuration_mixin.py2
-rw-r--r--pylint/config/find_default_config_files.py2
-rw-r--r--pylint/config/man_help_formatter.py2
-rw-r--r--pylint/config/option.py2
-rw-r--r--pylint/config/option_manager_mixin.py3
-rw-r--r--pylint/config/option_parser.py2
-rw-r--r--pylint/config/options_provider_mixin.py3
-rw-r--r--pylint/constants.py3
-rwxr-xr-xpylint/epylint.py2
-rw-r--r--pylint/exceptions.py2
-rw-r--r--pylint/extensions/__init__.py2
-rw-r--r--pylint/extensions/_check_docs_utils.py2
-rw-r--r--pylint/extensions/bad_builtin.py2
-rw-r--r--pylint/extensions/broad_try_clause.py2
-rw-r--r--pylint/extensions/check_elif.py2
-rw-r--r--pylint/extensions/code_style.py4
-rw-r--r--pylint/extensions/comparetozero.py2
-rw-r--r--pylint/extensions/comparison_placement.py2
-rw-r--r--pylint/extensions/confusing_elif.py2
-rw-r--r--pylint/extensions/consider_ternary_expression.py4
-rw-r--r--pylint/extensions/docparams.py2
-rw-r--r--pylint/extensions/docstyle.py2
-rw-r--r--pylint/extensions/empty_comment.py4
-rw-r--r--pylint/extensions/emptystring.py2
-rw-r--r--pylint/extensions/eq_without_hash.py1
-rw-r--r--pylint/extensions/for_any_all.py4
-rw-r--r--pylint/extensions/mccabe.py2
-rw-r--r--pylint/extensions/overlapping_exceptions.py2
-rw-r--r--pylint/extensions/private_import.py4
-rw-r--r--pylint/extensions/redefined_variable_type.py2
-rw-r--r--pylint/extensions/set_membership.py4
-rw-r--r--pylint/extensions/typing.py4
-rw-r--r--pylint/extensions/while_used.py4
-rw-r--r--pylint/graph.py2
-rw-r--r--pylint/interfaces.py2
-rw-r--r--pylint/lint/__init__.py2
-rw-r--r--pylint/lint/expand_modules.py4
-rw-r--r--pylint/lint/parallel.py2
-rw-r--r--pylint/lint/pylinter.py2
-rw-r--r--pylint/lint/report_functions.py2
-rw-r--r--pylint/lint/run.py2
-rw-r--r--pylint/lint/utils.py2
-rw-r--r--pylint/message/__init__.py2
-rw-r--r--pylint/message/message.py3
-rw-r--r--pylint/message/message_definition.py2
-rw-r--r--pylint/message/message_definition_store.py2
-rw-r--r--pylint/message/message_id_store.py3
-rw-r--r--pylint/pyreverse/__init__.py2
-rw-r--r--pylint/pyreverse/diadefslib.py2
-rw-r--r--pylint/pyreverse/diagrams.py2
-rw-r--r--pylint/pyreverse/dot_printer.py2
-rw-r--r--pylint/pyreverse/inspector.py2
-rw-r--r--pylint/pyreverse/main.py2
-rw-r--r--pylint/pyreverse/mermaidjs_printer.py2
-rw-r--r--pylint/pyreverse/plantuml_printer.py2
-rw-r--r--pylint/pyreverse/printer.py2
-rw-r--r--pylint/pyreverse/printer_factory.py2
-rw-r--r--pylint/pyreverse/utils.py2
-rw-r--r--pylint/pyreverse/vcg_printer.py2
-rw-r--r--pylint/pyreverse/writer.py2
-rw-r--r--pylint/reporters/__init__.py2
-rw-r--r--pylint/reporters/base_reporter.py2
-rw-r--r--pylint/reporters/collecting_reporter.py3
-rw-r--r--pylint/reporters/json_reporter.py2
-rw-r--r--pylint/reporters/multi_reporter.py3
-rw-r--r--pylint/reporters/reports_handler_mix_in.py2
-rw-r--r--pylint/reporters/text.py2
-rw-r--r--pylint/reporters/ureports/__init__.py2
-rw-r--r--pylint/reporters/ureports/base_writer.py2
-rw-r--r--pylint/reporters/ureports/nodes.py2
-rw-r--r--pylint/reporters/ureports/text_writer.py2
-rw-r--r--pylint/testutils/__init__.py2
-rw-r--r--pylint/testutils/checker_test_case.py2
-rw-r--r--pylint/testutils/configuration_test.py2
-rw-r--r--pylint/testutils/constants.py2
-rw-r--r--pylint/testutils/decorator.py2
-rw-r--r--pylint/testutils/functional/__init__.py2
-rw-r--r--pylint/testutils/functional/find_functional_tests.py2
-rw-r--r--pylint/testutils/functional/lint_module_output_update.py2
-rw-r--r--pylint/testutils/functional/test_file.py2
-rw-r--r--pylint/testutils/functional_test_file.py2
-rw-r--r--pylint/testutils/get_test_info.py2
-rw-r--r--pylint/testutils/global_test_linter.py3
-rw-r--r--pylint/testutils/lint_module_test.py2
-rw-r--r--pylint/testutils/output_line.py2
-rw-r--r--pylint/testutils/primer.py4
-rw-r--r--pylint/testutils/pyreverse.py2
-rw-r--r--pylint/testutils/reporter_for_tests.py2
-rw-r--r--pylint/testutils/tokenize_str.py2
-rw-r--r--pylint/testutils/unittest_linter.py2
-rw-r--r--pylint/typing.py2
-rw-r--r--pylint/utils/__init__.py2
-rw-r--r--pylint/utils/ast_walker.py2
-rw-r--r--pylint/utils/docs.py3
-rw-r--r--pylint/utils/file_state.py2
-rw-r--r--pylint/utils/linterstats.py2
-rw-r--r--pylint/utils/pragma_parser.py2
-rw-r--r--pylint/utils/utils.py3
-rw-r--r--tests/benchmark/test_baseline_benchmarks.py2
-rw-r--r--tests/checkers/__init__.py3
-rw-r--r--tests/checkers/conftest.py4
-rw-r--r--tests/checkers/unittest_base.py2
-rw-r--r--tests/checkers/unittest_base_checker.py2
-rw-r--r--tests/checkers/unittest_deprecated.py4
-rw-r--r--tests/checkers/unittest_design.py3
-rw-r--r--tests/checkers/unittest_format.py2
-rw-r--r--tests/checkers/unittest_imports.py2
-rw-r--r--tests/checkers/unittest_misc.py2
-rw-r--r--tests/checkers/unittest_non_ascii_name.py4
-rw-r--r--tests/checkers/unittest_refactoring.py2
-rw-r--r--tests/checkers/unittest_similar.py2
-rw-r--r--tests/checkers/unittest_spelling.py2
-rw-r--r--tests/checkers/unittest_stdlib.py2
-rw-r--r--tests/checkers/unittest_strings.py3
-rw-r--r--tests/checkers/unittest_typecheck.py2
-rw-r--r--tests/checkers/unittest_unicode/__init__.py4
-rw-r--r--tests/checkers/unittest_unicode/unittest_bad_chars.py4
-rw-r--r--tests/checkers/unittest_unicode/unittest_bidirectional_unicode.py4
-rw-r--r--tests/checkers/unittest_unicode/unittest_functions.py4
-rw-r--r--tests/checkers/unittest_unicode/unittest_invalid_encoding.py4
-rw-r--r--tests/checkers/unittest_utils.py2
-rw-r--r--tests/checkers/unittest_variables.py2
-rw-r--r--tests/config/conftest.py4
-rw-r--r--tests/config/file_to_lint.py4
-rw-r--r--tests/config/test_config.py4
-rw-r--r--tests/config/test_functional_config_loading.py2
-rw-r--r--tests/config/unittest_config.py2
-rw-r--r--tests/conftest.py4
-rw-r--r--tests/extensions/__init__.py3
-rw-r--r--tests/extensions/test_check_docs_utils.py2
-rw-r--r--tests/extensions/test_private_import.py4
-rw-r--r--tests/lint/__init__.py3
-rw-r--r--tests/lint/test_pylinter.py4
-rw-r--r--tests/lint/test_utils.py4
-rw-r--r--tests/lint/unittest_expand_modules.py3
-rw-r--r--tests/lint/unittest_lint.py2
-rw-r--r--tests/message/__init__.py3
-rw-r--r--tests/message/conftest.py3
-rw-r--r--tests/message/test_no_removed_msgid_or_symbol_used.py2
-rw-r--r--tests/message/unittest_message.py2
-rw-r--r--tests/message/unittest_message_definition.py2
-rw-r--r--tests/message/unittest_message_definition_store.py2
-rw-r--r--tests/message/unittest_message_id_store.py2
-rw-r--r--tests/primer/test_primer_external.py3
-rw-r--r--tests/primer/test_primer_stdlib.py2
-rw-r--r--tests/profile/test_profile_against_externals.py2
-rw-r--r--tests/pyreverse/conftest.py4
-rw-r--r--tests/pyreverse/test_diadefs.py2
-rw-r--r--tests/pyreverse/test_diagrams.py2
-rw-r--r--tests/pyreverse/test_inspector.py2
-rw-r--r--tests/pyreverse/test_main.py4
-rw-r--r--tests/pyreverse/test_printer.py2
-rw-r--r--tests/pyreverse/test_printer_factory.py2
-rw-r--r--tests/pyreverse/test_utils.py2
-rw-r--r--tests/pyreverse/test_writer.py2
-rw-r--r--tests/test_check_parallel.py2
-rw-r--r--tests/test_epylint.py4
-rw-r--r--tests/test_func.py2
-rw-r--r--tests/test_functional.py2
-rw-r--r--tests/test_functional_directories.py4
-rw-r--r--tests/test_import_graph.py2
-rw-r--r--tests/test_numversion.py2
-rw-r--r--tests/test_pragma_parser.py4
-rw-r--r--tests/test_pylint_runners.py4
-rw-r--r--tests/test_regr.py2
-rw-r--r--tests/test_self.py2
-rw-r--r--tests/test_similar.py2
-rw-r--r--tests/testutils/dummy_checker.py3
-rw-r--r--tests/testutils/test_configuration_test.py4
-rw-r--r--tests/testutils/test_decorator.py3
-rw-r--r--tests/testutils/test_functional_testutils.py2
-rw-r--r--tests/testutils/test_lint_module_output_update.py2
-rw-r--r--tests/testutils/test_output_line.py2
-rw-r--r--tests/testutils/test_package_to_lint.py2
-rw-r--r--tests/unittest_reporters_json.py2
-rw-r--r--tests/unittest_reporting.py2
-rw-r--r--tests/utils/__init__.py3
-rw-r--r--tests/utils/unittest_ast_walker.py2
-rw-r--r--tests/utils/unittest_utils.py2
224 files changed, 358 insertions, 196 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index f19027503..6bd4832de 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -13,13 +13,20 @@ repos:
rev: v1.4
hooks:
- id: autoflake
- exclude: &fixtures tests/functional/|tests/input|tests/regrtest_data/|tests/data/|doc/data/messages
+ exclude: &fixtures tests/functional/|tests/input|tests/regrtest_data/|tests/data/|doc/data/messages|tests/testutils/data/
args:
- --in-place
- --remove-all-unused-imports
- --expand-star-imports
- --remove-duplicate-keys
- --remove-unused-variables
+ - repo: https://github.com/Pierre-Sassoulas/copyright_notice_precommit
+ rev: f683ab7d10d5f7e779c75aea17197007583d14e4
+ hooks:
+ - id: copyright-notice
+ args: ["--notice=script/copyright.txt", "--enforce-all"]
+ exclude: tests/functional/|tests/input|tests/regrtest_data/|tests/data/|doc/data/messages|tests/testutils/data/|examples/|setup.py
+ types: [python]
- repo: https://github.com/asottile/pyupgrade
rev: v2.31.1
hooks:
diff --git a/doc/conf.py b/doc/conf.py
index 0f15ffd91..8b548ddc3 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -1,4 +1,7 @@
-#
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
# Pylint documentation build configuration file, created by
# sphinx-quickstart on Thu Apr 4 20:31:25 2013.
#
diff --git a/doc/exts/pylint_extensions.py b/doc/exts/pylint_extensions.py
index 921db904d..da1b9ee2e 100755
--- a/doc/exts/pylint_extensions.py
+++ b/doc/exts/pylint_extensions.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python
+
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Script used to generate the extensions file before building the actual documentation."""
diff --git a/doc/exts/pylint_features.py b/doc/exts/pylint_features.py
index b4e5e2df2..a60510224 100755
--- a/doc/exts/pylint_features.py
+++ b/doc/exts/pylint_features.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python
+
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Script used to generate the features file before building the actual documentation."""
diff --git a/doc/exts/pylint_messages.py b/doc/exts/pylint_messages.py
index 51b10482f..5c6317126 100644
--- a/doc/exts/pylint_messages.py
+++ b/doc/exts/pylint_messages.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Script used to generate the messages files."""
diff --git a/pylint/__init__.py b/pylint/__init__.py
index cb5468eb5..9fde923dc 100644
--- a/pylint/__init__.py
+++ b/pylint/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import os
import sys
diff --git a/pylint/__main__.py b/pylint/__main__.py
index 267adb9eb..7df5805f9 100644
--- a/pylint/__main__.py
+++ b/pylint/__main__.py
@@ -2,7 +2,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import pylint
diff --git a/pylint/__pkginfo__.py b/pylint/__pkginfo__.py
index 24bc31e99..0063381eb 100644
--- a/pylint/__pkginfo__.py
+++ b/pylint/__pkginfo__.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import Tuple
__version__ = "2.13.0-dev0"
diff --git a/pylint/checkers/__init__.py b/pylint/checkers/__init__.py
index 1f7f8fd38..2855d7029 100644
--- a/pylint/checkers/__init__.py
+++ b/pylint/checkers/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Utilities methods and classes for checkers.
diff --git a/pylint/checkers/async.py b/pylint/checkers/async.py
index 58fe8a5d8..a85ab4117 100644
--- a/pylint/checkers/async.py
+++ b/pylint/checkers/async.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checker for anything related to the async protocol (PEP 492)."""
diff --git a/pylint/checkers/base.py b/pylint/checkers/base.py
index 7f2d9da7b..38791c05e 100644
--- a/pylint/checkers/base.py
+++ b/pylint/checkers/base.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Basic checker for Python code."""
import collections
diff --git a/pylint/checkers/base_checker.py b/pylint/checkers/base_checker.py
index e0e3c03f3..1cdc014fc 100644
--- a/pylint/checkers/base_checker.py
+++ b/pylint/checkers/base_checker.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import functools
from inspect import cleandoc
from typing import Any, Optional
diff --git a/pylint/checkers/classes/__init__.py b/pylint/checkers/classes/__init__.py
index ac1641fdf..5e9bc5ae3 100644
--- a/pylint/checkers/classes/__init__.py
+++ b/pylint/checkers/classes/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import TYPE_CHECKING
diff --git a/pylint/checkers/classes/class_checker.py b/pylint/checkers/classes/class_checker.py
index 42fc83ea7..91343a5d2 100644
--- a/pylint/checkers/classes/class_checker.py
+++ b/pylint/checkers/classes/class_checker.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Classes checker for Python code."""
import collections
diff --git a/pylint/checkers/classes/special_methods_checker.py b/pylint/checkers/classes/special_methods_checker.py
index e85150f08..9a7c9a762 100644
--- a/pylint/checkers/classes/special_methods_checker.py
+++ b/pylint/checkers/classes/special_methods_checker.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Special methods checker and helper function's module."""
diff --git a/pylint/checkers/deprecated.py b/pylint/checkers/deprecated.py
index 0edbac4a9..299922f2b 100644
--- a/pylint/checkers/deprecated.py
+++ b/pylint/checkers/deprecated.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checker mixin for deprecated functionality."""
from itertools import chain
diff --git a/pylint/checkers/design_analysis.py b/pylint/checkers/design_analysis.py
index ad600fc2f..dcc43dc50 100644
--- a/pylint/checkers/design_analysis.py
+++ b/pylint/checkers/design_analysis.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Check for signs of poor design."""
diff --git a/pylint/checkers/ellipsis_checker.py b/pylint/checkers/ellipsis_checker.py
index 76e8a77ce..2d904a28d 100644
--- a/pylint/checkers/ellipsis_checker.py
+++ b/pylint/checkers/ellipsis_checker.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Ellipsis checker for Python code."""
from typing import TYPE_CHECKING
diff --git a/pylint/checkers/exceptions.py b/pylint/checkers/exceptions.py
index 1020e7c18..6d0397e52 100644
--- a/pylint/checkers/exceptions.py
+++ b/pylint/checkers/exceptions.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checks for various exception related errors."""
import builtins
diff --git a/pylint/checkers/format.py b/pylint/checkers/format.py
index 9f125b568..fae6085ca 100644
--- a/pylint/checkers/format.py
+++ b/pylint/checkers/format.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Python code format's checker.
diff --git a/pylint/checkers/imports.py b/pylint/checkers/imports.py
index 4e8f64ccf..fb99bbf4b 100644
--- a/pylint/checkers/imports.py
+++ b/pylint/checkers/imports.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Imports checkers for Python code."""
diff --git a/pylint/checkers/logging.py b/pylint/checkers/logging.py
index 084aeebee..743f40db8 100644
--- a/pylint/checkers/logging.py
+++ b/pylint/checkers/logging.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checker for use of Python logging."""
import string
diff --git a/pylint/checkers/mapreduce_checker.py b/pylint/checkers/mapreduce_checker.py
index 3078b6872..d6ee875dc 100644
--- a/pylint/checkers/mapreduce_checker.py
+++ b/pylint/checkers/mapreduce_checker.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import abc
diff --git a/pylint/checkers/misc.py b/pylint/checkers/misc.py
index c558e2885..e5e77bb81 100644
--- a/pylint/checkers/misc.py
+++ b/pylint/checkers/misc.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Check source code is ascii only or has an encoding declaration (PEP 263)."""
diff --git a/pylint/checkers/modified_iterating_checker.py b/pylint/checkers/modified_iterating_checker.py
index b3e5daeae..d1fe08d40 100644
--- a/pylint/checkers/modified_iterating_checker.py
+++ b/pylint/checkers/modified_iterating_checker.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import TYPE_CHECKING, Union
diff --git a/pylint/checkers/newstyle.py b/pylint/checkers/newstyle.py
index af4e365d0..15833f293 100644
--- a/pylint/checkers/newstyle.py
+++ b/pylint/checkers/newstyle.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Check for new / old style related problems."""
from typing import TYPE_CHECKING
diff --git a/pylint/checkers/non_ascii_names.py b/pylint/checkers/non_ascii_names.py
index d80d9dec0..ece663ab4 100644
--- a/pylint/checkers/non_ascii_names.py
+++ b/pylint/checkers/non_ascii_names.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""All alphanumeric unicode character are allowed in Python but due
to similarities in how they look they can be confused.
diff --git a/pylint/checkers/raw_metrics.py b/pylint/checkers/raw_metrics.py
index 15f08dc85..524ecbf85 100644
--- a/pylint/checkers/raw_metrics.py
+++ b/pylint/checkers/raw_metrics.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import sys
import tokenize
diff --git a/pylint/checkers/refactoring/__init__.py b/pylint/checkers/refactoring/__init__.py
index fdcf635fd..481845f92 100644
--- a/pylint/checkers/refactoring/__init__.py
+++ b/pylint/checkers/refactoring/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Looks for code which can be refactored."""
diff --git a/pylint/checkers/refactoring/implicit_booleaness_checker.py b/pylint/checkers/refactoring/implicit_booleaness_checker.py
index dd59b2085..e52b972d8 100644
--- a/pylint/checkers/refactoring/implicit_booleaness_checker.py
+++ b/pylint/checkers/refactoring/implicit_booleaness_checker.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import List, Union
import astroid
diff --git a/pylint/checkers/refactoring/not_checker.py b/pylint/checkers/refactoring/not_checker.py
index c7c8f4289..85d33bfdb 100644
--- a/pylint/checkers/refactoring/not_checker.py
+++ b/pylint/checkers/refactoring/not_checker.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import astroid
from astroid import nodes
diff --git a/pylint/checkers/refactoring/recommendation_checker.py b/pylint/checkers/refactoring/recommendation_checker.py
index 5aa1d2622..1fb7e7237 100644
--- a/pylint/checkers/refactoring/recommendation_checker.py
+++ b/pylint/checkers/refactoring/recommendation_checker.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import Union
import astroid
diff --git a/pylint/checkers/refactoring/refactoring_checker.py b/pylint/checkers/refactoring/refactoring_checker.py
index 151477047..8dc65f129 100644
--- a/pylint/checkers/refactoring/refactoring_checker.py
+++ b/pylint/checkers/refactoring/refactoring_checker.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
import copy
diff --git a/pylint/checkers/similar.py b/pylint/checkers/similar.py
index cd70e326b..69b401fa4 100644
--- a/pylint/checkers/similar.py
+++ b/pylint/checkers/similar.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""A similarities / code duplication command line tool and pylint checker.
diff --git a/pylint/checkers/spelling.py b/pylint/checkers/spelling.py
index 92d6e037f..f0c5effeb 100644
--- a/pylint/checkers/spelling.py
+++ b/pylint/checkers/spelling.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checker for spelling errors in comments and docstrings."""
import os
diff --git a/pylint/checkers/stdlib.py b/pylint/checkers/stdlib.py
index ad5aa3dbc..007a4f978 100644
--- a/pylint/checkers/stdlib.py
+++ b/pylint/checkers/stdlib.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checkers for various standard library functions."""
diff --git a/pylint/checkers/strings.py b/pylint/checkers/strings.py
index 19bdbce91..dd9f1887f 100644
--- a/pylint/checkers/strings.py
+++ b/pylint/checkers/strings.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checker for string formatting operations."""
diff --git a/pylint/checkers/threading_checker.py b/pylint/checkers/threading_checker.py
index 649696f4b..6a720d334 100644
--- a/pylint/checkers/threading_checker.py
+++ b/pylint/checkers/threading_checker.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import TYPE_CHECKING
diff --git a/pylint/checkers/typecheck.py b/pylint/checkers/typecheck.py
index f220f4c27..70b958238 100644
--- a/pylint/checkers/typecheck.py
+++ b/pylint/checkers/typecheck.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Try to find more bugs in the code using astroid inference capabilities."""
diff --git a/pylint/checkers/unicode.py b/pylint/checkers/unicode.py
index a6f46ad4b..8939524df 100644
--- a/pylint/checkers/unicode.py
+++ b/pylint/checkers/unicode.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unicode and some other ASCII characters can be used to create programs that run
much different compared to what a human reader would expect from them.
diff --git a/pylint/checkers/unsupported_version.py b/pylint/checkers/unsupported_version.py
index 8c34a921f..d63d4fb20 100644
--- a/pylint/checkers/unsupported_version.py
+++ b/pylint/checkers/unsupported_version.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checker for features used that are not supported by all python versions
indicated by the py-version setting.
diff --git a/pylint/checkers/utils.py b/pylint/checkers/utils.py
index f3b643109..344792d09 100644
--- a/pylint/checkers/utils.py
+++ b/pylint/checkers/utils.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Some functions that may be useful for various checkers."""
import builtins
diff --git a/pylint/checkers/variables.py b/pylint/checkers/variables.py
index b518eb47e..7600eb00e 100644
--- a/pylint/checkers/variables.py
+++ b/pylint/checkers/variables.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Variables checkers for Python code."""
import collections
diff --git a/pylint/config/__init__.py b/pylint/config/__init__.py
index c4582ee00..12f834d81 100644
--- a/pylint/config/__init__.py
+++ b/pylint/config/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import os
import pathlib
diff --git a/pylint/config/config_initialization.py b/pylint/config/config_initialization.py
index fd36e7c6f..6be0ab8b9 100644
--- a/pylint/config/config_initialization.py
+++ b/pylint/config/config_initialization.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import sys
from pathlib import Path
diff --git a/pylint/config/configuration_mixin.py b/pylint/config/configuration_mixin.py
index bb1115ad7..3db9acaa1 100644
--- a/pylint/config/configuration_mixin.py
+++ b/pylint/config/configuration_mixin.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from pylint.config.option_manager_mixin import OptionsManagerMixIn
from pylint.config.options_provider_mixin import OptionsProviderMixIn
diff --git a/pylint/config/find_default_config_files.py b/pylint/config/find_default_config_files.py
index d2461a625..7538f5b15 100644
--- a/pylint/config/find_default_config_files.py
+++ b/pylint/config/find_default_config_files.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import configparser
import os
diff --git a/pylint/config/man_help_formatter.py b/pylint/config/man_help_formatter.py
index 5531fec03..84837cc3c 100644
--- a/pylint/config/man_help_formatter.py
+++ b/pylint/config/man_help_formatter.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import optparse # pylint: disable=deprecated-module
import sys
diff --git a/pylint/config/option.py b/pylint/config/option.py
index 5667a14cc..260e0a220 100644
--- a/pylint/config/option.py
+++ b/pylint/config/option.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import copy
import optparse # pylint: disable=deprecated-module
diff --git a/pylint/config/option_manager_mixin.py b/pylint/config/option_manager_mixin.py
index 346533ab6..44e112737 100644
--- a/pylint/config/option_manager_mixin.py
+++ b/pylint/config/option_manager_mixin.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
import configparser
diff --git a/pylint/config/option_parser.py b/pylint/config/option_parser.py
index ad512329b..b5d228ec2 100644
--- a/pylint/config/option_parser.py
+++ b/pylint/config/option_parser.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import optparse # pylint: disable=deprecated-module
diff --git a/pylint/config/options_provider_mixin.py b/pylint/config/options_provider_mixin.py
index ae467c30c..e937fee15 100644
--- a/pylint/config/options_provider_mixin.py
+++ b/pylint/config/options_provider_mixin.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import optparse # pylint: disable=deprecated-module
from typing import Any, Dict, Tuple
diff --git a/pylint/constants.py b/pylint/constants.py
index 94e0636bb..a6c9aa63d 100644
--- a/pylint/constants.py
+++ b/pylint/constants.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import platform
import sys
from typing import Dict, List, NamedTuple, Tuple
diff --git a/pylint/epylint.py b/pylint/epylint.py
index d02ce6d5d..2eade40f9 100755
--- a/pylint/epylint.py
+++ b/pylint/epylint.py
@@ -3,7 +3,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Emacs and Flymake compatible Pylint.
diff --git a/pylint/exceptions.py b/pylint/exceptions.py
index 61b5bb07d..06ed21acd 100644
--- a/pylint/exceptions.py
+++ b/pylint/exceptions.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Exception classes raised by various operations within pylint."""
diff --git a/pylint/extensions/__init__.py b/pylint/extensions/__init__.py
index 467608e4e..393fe5e9e 100644
--- a/pylint/extensions/__init__.py
+++ b/pylint/extensions/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import TYPE_CHECKING
diff --git a/pylint/extensions/_check_docs_utils.py b/pylint/extensions/_check_docs_utils.py
index ff01ef226..4853162c0 100644
--- a/pylint/extensions/_check_docs_utils.py
+++ b/pylint/extensions/_check_docs_utils.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Utility methods for docstring checking."""
diff --git a/pylint/extensions/bad_builtin.py b/pylint/extensions/bad_builtin.py
index 62fe6691c..259df6e95 100644
--- a/pylint/extensions/bad_builtin.py
+++ b/pylint/extensions/bad_builtin.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checker for deprecated builtins."""
from typing import TYPE_CHECKING
diff --git a/pylint/extensions/broad_try_clause.py b/pylint/extensions/broad_try_clause.py
index e51106987..ddb7f75a3 100644
--- a/pylint/extensions/broad_try_clause.py
+++ b/pylint/extensions/broad_try_clause.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Looks for try/except statements with too much code in the try clause."""
from typing import TYPE_CHECKING, Union
diff --git a/pylint/extensions/check_elif.py b/pylint/extensions/check_elif.py
index 41d737f5f..6ffc32009 100644
--- a/pylint/extensions/check_elif.py
+++ b/pylint/extensions/check_elif.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import TYPE_CHECKING
diff --git a/pylint/extensions/code_style.py b/pylint/extensions/code_style.py
index d1bb04928..74e838ed2 100644
--- a/pylint/extensions/code_style.py
+++ b/pylint/extensions/code_style.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import sys
from typing import TYPE_CHECKING, List, Optional, Set, Tuple, Type, Union, cast
diff --git a/pylint/extensions/comparetozero.py b/pylint/extensions/comparetozero.py
index 37304b93e..a1db3e531 100644
--- a/pylint/extensions/comparetozero.py
+++ b/pylint/extensions/comparetozero.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Looks for comparisons to zero."""
diff --git a/pylint/extensions/comparison_placement.py b/pylint/extensions/comparison_placement.py
index a85ea91fb..8156f98b3 100644
--- a/pylint/extensions/comparison_placement.py
+++ b/pylint/extensions/comparison_placement.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Checks for yoda comparisons (variable before constant)
See https://en.wikipedia.org/wiki/Yoda_conditions
diff --git a/pylint/extensions/confusing_elif.py b/pylint/extensions/confusing_elif.py
index b6eee6ef1..9f815da96 100644
--- a/pylint/extensions/confusing_elif.py
+++ b/pylint/extensions/confusing_elif.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import TYPE_CHECKING
diff --git a/pylint/extensions/consider_ternary_expression.py b/pylint/extensions/consider_ternary_expression.py
index 6dabe3613..aece514b7 100644
--- a/pylint/extensions/consider_ternary_expression.py
+++ b/pylint/extensions/consider_ternary_expression.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Check for if / assign blocks that can be rewritten with if-expressions."""
from typing import TYPE_CHECKING
diff --git a/pylint/extensions/docparams.py b/pylint/extensions/docparams.py
index ff3a0c641..eff625b92 100644
--- a/pylint/extensions/docparams.py
+++ b/pylint/extensions/docparams.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Pylint plugin for checking in Sphinx, Google, or Numpy style docstrings."""
import re
diff --git a/pylint/extensions/docstyle.py b/pylint/extensions/docstyle.py
index 8823d61e5..537f110dc 100644
--- a/pylint/extensions/docstyle.py
+++ b/pylint/extensions/docstyle.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import linecache
from typing import TYPE_CHECKING
diff --git a/pylint/extensions/empty_comment.py b/pylint/extensions/empty_comment.py
index 68b48970d..4308364bb 100644
--- a/pylint/extensions/empty_comment.py
+++ b/pylint/extensions/empty_comment.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import TYPE_CHECKING
from astroid import nodes
diff --git a/pylint/extensions/emptystring.py b/pylint/extensions/emptystring.py
index 30a821225..68f086fb9 100644
--- a/pylint/extensions/emptystring.py
+++ b/pylint/extensions/emptystring.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Looks for comparisons to empty string."""
diff --git a/pylint/extensions/eq_without_hash.py b/pylint/extensions/eq_without_hash.py
index aeadac9b3..9cbbb5452 100644
--- a/pylint/extensions/eq_without_hash.py
+++ b/pylint/extensions/eq_without_hash.py
@@ -1,5 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""This is the remnant of the python3 checker.
diff --git a/pylint/extensions/for_any_all.py b/pylint/extensions/for_any_all.py
index 915fae8a3..078c20402 100644
--- a/pylint/extensions/for_any_all.py
+++ b/pylint/extensions/for_any_all.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Check for use of for loops that only check for a condition."""
from typing import TYPE_CHECKING
diff --git a/pylint/extensions/mccabe.py b/pylint/extensions/mccabe.py
index 6b3e4080d..5d2e2fc23 100644
--- a/pylint/extensions/mccabe.py
+++ b/pylint/extensions/mccabe.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Module to add McCabe checker class for pylint."""
diff --git a/pylint/extensions/overlapping_exceptions.py b/pylint/extensions/overlapping_exceptions.py
index 771a9a499..17eaa6d3a 100644
--- a/pylint/extensions/overlapping_exceptions.py
+++ b/pylint/extensions/overlapping_exceptions.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Looks for overlapping exceptions."""
diff --git a/pylint/extensions/private_import.py b/pylint/extensions/private_import.py
index 88033fa1e..8d57eca83 100644
--- a/pylint/extensions/private_import.py
+++ b/pylint/extensions/private_import.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Check for imports on private external modules and names."""
from pathlib import Path
from typing import TYPE_CHECKING, Dict, List, Union
diff --git a/pylint/extensions/redefined_variable_type.py b/pylint/extensions/redefined_variable_type.py
index 65e666f21..41464630b 100644
--- a/pylint/extensions/redefined_variable_type.py
+++ b/pylint/extensions/redefined_variable_type.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import TYPE_CHECKING, List
diff --git a/pylint/extensions/set_membership.py b/pylint/extensions/set_membership.py
index 6ba5166c5..57089dc16 100644
--- a/pylint/extensions/set_membership.py
+++ b/pylint/extensions/set_membership.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import TYPE_CHECKING
from astroid import nodes
diff --git a/pylint/extensions/typing.py b/pylint/extensions/typing.py
index 07d18fdc7..d6d67515a 100644
--- a/pylint/extensions/typing.py
+++ b/pylint/extensions/typing.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import TYPE_CHECKING, Dict, List, NamedTuple, Set, Union
import astroid.bases
diff --git a/pylint/extensions/while_used.py b/pylint/extensions/while_used.py
index dc9861bac..4c41510d4 100644
--- a/pylint/extensions/while_used.py
+++ b/pylint/extensions/while_used.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Check for use of while loops."""
from typing import TYPE_CHECKING
diff --git a/pylint/graph.py b/pylint/graph.py
index 07e3aa549..819184724 100644
--- a/pylint/graph.py
+++ b/pylint/graph.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Graph manipulation utilities.
diff --git a/pylint/interfaces.py b/pylint/interfaces.py
index fe48d4daa..7f6edbdf5 100644
--- a/pylint/interfaces.py
+++ b/pylint/interfaces.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Interfaces for Pylint objects."""
from collections import namedtuple
diff --git a/pylint/lint/__init__.py b/pylint/lint/__init__.py
index b11072865..7cfa7f59d 100644
--- a/pylint/lint/__init__.py
+++ b/pylint/lint/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Pylint [options] modules_or_packages.
diff --git a/pylint/lint/expand_modules.py b/pylint/lint/expand_modules.py
index 236e49c99..184316e9b 100644
--- a/pylint/lint/expand_modules.py
+++ b/pylint/lint/expand_modules.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import os
import sys
from typing import List, Pattern, Tuple
diff --git a/pylint/lint/parallel.py b/pylint/lint/parallel.py
index 5cf0b0b67..ea5d7abac 100644
--- a/pylint/lint/parallel.py
+++ b/pylint/lint/parallel.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
import functools
diff --git a/pylint/lint/pylinter.py b/pylint/lint/pylinter.py
index 248df9d06..0bf8961c1 100644
--- a/pylint/lint/pylinter.py
+++ b/pylint/lint/pylinter.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
import contextlib
diff --git a/pylint/lint/report_functions.py b/pylint/lint/report_functions.py
index 052c564a7..f4c0a5710 100644
--- a/pylint/lint/report_functions.py
+++ b/pylint/lint/report_functions.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
from typing import DefaultDict, Dict, Union
diff --git a/pylint/lint/run.py b/pylint/lint/run.py
index 28e45dde6..2d28cc47f 100644
--- a/pylint/lint/run.py
+++ b/pylint/lint/run.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import os
import sys
diff --git a/pylint/lint/utils.py b/pylint/lint/utils.py
index 4a1a37570..8377dfdd4 100644
--- a/pylint/lint/utils.py
+++ b/pylint/lint/utils.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import contextlib
import sys
diff --git a/pylint/message/__init__.py b/pylint/message/__init__.py
index 1238c127a..11d2b17dc 100644
--- a/pylint/message/__init__.py
+++ b/pylint/message/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""All the classes related to Message handling."""
diff --git a/pylint/message/message.py b/pylint/message/message.py
index 79db43878..297442e45 100644
--- a/pylint/message/message.py
+++ b/pylint/message/message.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
from typing import Optional, Tuple, Union, overload
diff --git a/pylint/message/message_definition.py b/pylint/message/message_definition.py
index ea65a32b8..a729e595c 100644
--- a/pylint/message/message_definition.py
+++ b/pylint/message/message_definition.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import sys
from typing import TYPE_CHECKING, List, Optional, Tuple
diff --git a/pylint/message/message_definition_store.py b/pylint/message/message_definition_store.py
index 643bc26a9..e3605fab6 100644
--- a/pylint/message/message_definition_store.py
+++ b/pylint/message/message_definition_store.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
import functools
diff --git a/pylint/message/message_id_store.py b/pylint/message/message_id_store.py
index b45d074c6..d4ccbe6bc 100644
--- a/pylint/message/message_id_store.py
+++ b/pylint/message/message_id_store.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import Dict, List, NoReturn, Optional, Tuple
from pylint.exceptions import InvalidMessageError, UnknownMessageError
diff --git a/pylint/pyreverse/__init__.py b/pylint/pyreverse/__init__.py
index f0ca20a7b..458c0f35d 100644
--- a/pylint/pyreverse/__init__.py
+++ b/pylint/pyreverse/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Pyreverse.extensions."""
diff --git a/pylint/pyreverse/diadefslib.py b/pylint/pyreverse/diadefslib.py
index 50b9ad9b3..b5dd3fb50 100644
--- a/pylint/pyreverse/diadefslib.py
+++ b/pylint/pyreverse/diadefslib.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Handle diagram generation options for class diagram or default diagrams."""
diff --git a/pylint/pyreverse/diagrams.py b/pylint/pyreverse/diagrams.py
index c2699f767..2ad50910d 100644
--- a/pylint/pyreverse/diagrams.py
+++ b/pylint/pyreverse/diagrams.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Diagram objects."""
import astroid
diff --git a/pylint/pyreverse/dot_printer.py b/pylint/pyreverse/dot_printer.py
index 841d96fdc..0cca0ab61 100644
--- a/pylint/pyreverse/dot_printer.py
+++ b/pylint/pyreverse/dot_printer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Class to generate files in dot format and image formats supported by Graphviz."""
import os
diff --git a/pylint/pyreverse/inspector.py b/pylint/pyreverse/inspector.py
index 7ef3f7bb6..91d2199f2 100644
--- a/pylint/pyreverse/inspector.py
+++ b/pylint/pyreverse/inspector.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Visitor doing some postprocessing on the astroid tree.
diff --git a/pylint/pyreverse/main.py b/pylint/pyreverse/main.py
index 9efe9ee4d..ceaa12351 100644
--- a/pylint/pyreverse/main.py
+++ b/pylint/pyreverse/main.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""%prog [options] <packages>.
diff --git a/pylint/pyreverse/mermaidjs_printer.py b/pylint/pyreverse/mermaidjs_printer.py
index b0452d288..b1b56fcd2 100644
--- a/pylint/pyreverse/mermaidjs_printer.py
+++ b/pylint/pyreverse/mermaidjs_printer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Class to generate files in mermaidjs format."""
from typing import Dict, Optional
diff --git a/pylint/pyreverse/plantuml_printer.py b/pylint/pyreverse/plantuml_printer.py
index 8674aead7..57fe3a9d0 100644
--- a/pylint/pyreverse/plantuml_printer.py
+++ b/pylint/pyreverse/plantuml_printer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Class to generate files in dot format and image formats supported by Graphviz."""
from typing import Dict, Optional
diff --git a/pylint/pyreverse/printer.py b/pylint/pyreverse/printer.py
index 346579719..43cc534e5 100644
--- a/pylint/pyreverse/printer.py
+++ b/pylint/pyreverse/printer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Base class defining the interface for a printer."""
from abc import ABC, abstractmethod
diff --git a/pylint/pyreverse/printer_factory.py b/pylint/pyreverse/printer_factory.py
index 27eb7f7ab..29a406b01 100644
--- a/pylint/pyreverse/printer_factory.py
+++ b/pylint/pyreverse/printer_factory.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import Dict, Type
diff --git a/pylint/pyreverse/utils.py b/pylint/pyreverse/utils.py
index d18efe32e..8b279281e 100644
--- a/pylint/pyreverse/utils.py
+++ b/pylint/pyreverse/utils.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Generic classes/functions for pyreverse core/extensions."""
import os
diff --git a/pylint/pyreverse/vcg_printer.py b/pylint/pyreverse/vcg_printer.py
index 3a4d25edc..fa5e90a29 100644
--- a/pylint/pyreverse/vcg_printer.py
+++ b/pylint/pyreverse/vcg_printer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Functions to generate files readable with Georg Sander's vcg
(Visualization of Compiler Graphs).
diff --git a/pylint/pyreverse/writer.py b/pylint/pyreverse/writer.py
index a45394ac7..a3120e6d9 100644
--- a/pylint/pyreverse/writer.py
+++ b/pylint/pyreverse/writer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Utilities for creating VCG and Dot diagrams."""
diff --git a/pylint/reporters/__init__.py b/pylint/reporters/__init__.py
index 2420a03ab..47bb680b0 100644
--- a/pylint/reporters/__init__.py
+++ b/pylint/reporters/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Utilities methods and classes for reporters."""
from typing import TYPE_CHECKING
diff --git a/pylint/reporters/base_reporter.py b/pylint/reporters/base_reporter.py
index fc7422370..b45be0dc4 100644
--- a/pylint/reporters/base_reporter.py
+++ b/pylint/reporters/base_reporter.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import os
import sys
diff --git a/pylint/reporters/collecting_reporter.py b/pylint/reporters/collecting_reporter.py
index 2ee041b01..1562ab15d 100644
--- a/pylint/reporters/collecting_reporter.py
+++ b/pylint/reporters/collecting_reporter.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import TYPE_CHECKING
from pylint.reporters.base_reporter import BaseReporter
diff --git a/pylint/reporters/json_reporter.py b/pylint/reporters/json_reporter.py
index cb7418fbb..f7e782c9a 100644
--- a/pylint/reporters/json_reporter.py
+++ b/pylint/reporters/json_reporter.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""JSON reporter."""
import json
diff --git a/pylint/reporters/multi_reporter.py b/pylint/reporters/multi_reporter.py
index 63b65eb0c..43822f05c 100644
--- a/pylint/reporters/multi_reporter.py
+++ b/pylint/reporters/multi_reporter.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import os
from typing import IO, TYPE_CHECKING, Any, AnyStr, Callable, List, Optional
diff --git a/pylint/reporters/reports_handler_mix_in.py b/pylint/reporters/reports_handler_mix_in.py
index f6486c95d..890d58660 100644
--- a/pylint/reporters/reports_handler_mix_in.py
+++ b/pylint/reporters/reports_handler_mix_in.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
from typing import (
diff --git a/pylint/reporters/text.py b/pylint/reporters/text.py
index 09a113c41..d37de5b96 100644
--- a/pylint/reporters/text.py
+++ b/pylint/reporters/text.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Plain text reporters:.
diff --git a/pylint/reporters/ureports/__init__.py b/pylint/reporters/ureports/__init__.py
index 51e490b4d..a6a0946af 100644
--- a/pylint/reporters/ureports/__init__.py
+++ b/pylint/reporters/ureports/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
__all__ = ("BaseWriter",)
diff --git a/pylint/reporters/ureports/base_writer.py b/pylint/reporters/ureports/base_writer.py
index 38eba6227..4f0ce55c8 100644
--- a/pylint/reporters/ureports/base_writer.py
+++ b/pylint/reporters/ureports/base_writer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Universal report objects and some formatting drivers.
diff --git a/pylint/reporters/ureports/nodes.py b/pylint/reporters/ureports/nodes.py
index f7d6f89c9..543082ae9 100644
--- a/pylint/reporters/ureports/nodes.py
+++ b/pylint/reporters/ureports/nodes.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Micro reports objects.
diff --git a/pylint/reporters/ureports/text_writer.py b/pylint/reporters/ureports/text_writer.py
index b247af4a0..fc4ce67df 100644
--- a/pylint/reporters/ureports/text_writer.py
+++ b/pylint/reporters/ureports/text_writer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Text formatting drivers for ureports."""
diff --git a/pylint/testutils/__init__.py b/pylint/testutils/__init__.py
index a7ac8680c..0b55fc8e9 100644
--- a/pylint/testutils/__init__.py
+++ b/pylint/testutils/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Functional/non regression tests for pylint."""
diff --git a/pylint/testutils/checker_test_case.py b/pylint/testutils/checker_test_case.py
index 84df31e04..b6e10fb48 100644
--- a/pylint/testutils/checker_test_case.py
+++ b/pylint/testutils/checker_test_case.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import contextlib
import warnings
diff --git a/pylint/testutils/configuration_test.py b/pylint/testutils/configuration_test.py
index 591dc57bd..c6241f31e 100644
--- a/pylint/testutils/configuration_test.py
+++ b/pylint/testutils/configuration_test.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Utility functions for configuration testing."""
import copy
diff --git a/pylint/testutils/constants.py b/pylint/testutils/constants.py
index 305b36753..1c3c69d79 100644
--- a/pylint/testutils/constants.py
+++ b/pylint/testutils/constants.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import operator
import re
diff --git a/pylint/testutils/decorator.py b/pylint/testutils/decorator.py
index efa572b59..b2a790c45 100644
--- a/pylint/testutils/decorator.py
+++ b/pylint/testutils/decorator.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import functools
import optparse # pylint: disable=deprecated-module
diff --git a/pylint/testutils/functional/__init__.py b/pylint/testutils/functional/__init__.py
index d9df9d338..4840e1ba6 100644
--- a/pylint/testutils/functional/__init__.py
+++ b/pylint/testutils/functional/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
__all__ = [
"FunctionalTestFile",
diff --git a/pylint/testutils/functional/find_functional_tests.py b/pylint/testutils/functional/find_functional_tests.py
index 6fbdded12..78d821e31 100644
--- a/pylint/testutils/functional/find_functional_tests.py
+++ b/pylint/testutils/functional/find_functional_tests.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import os
from pathlib import Path
diff --git a/pylint/testutils/functional/lint_module_output_update.py b/pylint/testutils/functional/lint_module_output_update.py
index 1f5fc8392..ae577911f 100644
--- a/pylint/testutils/functional/lint_module_output_update.py
+++ b/pylint/testutils/functional/lint_module_output_update.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import csv
import os
diff --git a/pylint/testutils/functional/test_file.py b/pylint/testutils/functional/test_file.py
index aaaa7e8a9..ae8d0f2ce 100644
--- a/pylint/testutils/functional/test_file.py
+++ b/pylint/testutils/functional/test_file.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import configparser
import sys
diff --git a/pylint/testutils/functional_test_file.py b/pylint/testutils/functional_test_file.py
index 1a3c07eff..fc1cdcbb1 100644
--- a/pylint/testutils/functional_test_file.py
+++ b/pylint/testutils/functional_test_file.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
__all__ = [
"FunctionalTestFile",
diff --git a/pylint/testutils/get_test_info.py b/pylint/testutils/get_test_info.py
index 7a8bb9f92..d0bf8f4e3 100644
--- a/pylint/testutils/get_test_info.py
+++ b/pylint/testutils/get_test_info.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from glob import glob
from os.path import basename, join, splitext
diff --git a/pylint/testutils/global_test_linter.py b/pylint/testutils/global_test_linter.py
index 57506491d..f6f421dab 100644
--- a/pylint/testutils/global_test_linter.py
+++ b/pylint/testutils/global_test_linter.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from pylint import checkers
from pylint.lint import PyLinter
diff --git a/pylint/testutils/lint_module_test.py b/pylint/testutils/lint_module_test.py
index 19459a0bb..3bac0785d 100644
--- a/pylint/testutils/lint_module_test.py
+++ b/pylint/testutils/lint_module_test.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import csv
import operator
diff --git a/pylint/testutils/output_line.py b/pylint/testutils/output_line.py
index 62ba9b039..f6461adc7 100644
--- a/pylint/testutils/output_line.py
+++ b/pylint/testutils/output_line.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import warnings
from typing import Any, NamedTuple, Optional, Sequence, Tuple, TypeVar, Union
diff --git a/pylint/testutils/primer.py b/pylint/testutils/primer.py
index 558ad582e..e0f6f2e4d 100644
--- a/pylint/testutils/primer.py
+++ b/pylint/testutils/primer.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import logging
from pathlib import Path
from typing import Dict, List, Optional, Union
diff --git a/pylint/testutils/pyreverse.py b/pylint/testutils/pyreverse.py
index b4e83f5d2..f4e9bc7fc 100644
--- a/pylint/testutils/pyreverse.py
+++ b/pylint/testutils/pyreverse.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import List, Optional, Tuple
diff --git a/pylint/testutils/reporter_for_tests.py b/pylint/testutils/reporter_for_tests.py
index 0610e6594..47c12a3d2 100644
--- a/pylint/testutils/reporter_for_tests.py
+++ b/pylint/testutils/reporter_for_tests.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from io import StringIO
from os import getcwd, sep
diff --git a/pylint/testutils/tokenize_str.py b/pylint/testutils/tokenize_str.py
index 5ce152e6e..0b478c32c 100644
--- a/pylint/testutils/tokenize_str.py
+++ b/pylint/testutils/tokenize_str.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import tokenize
from io import StringIO
diff --git a/pylint/testutils/unittest_linter.py b/pylint/testutils/unittest_linter.py
index 51f60c734..a7d7fc02d 100644
--- a/pylint/testutils/unittest_linter.py
+++ b/pylint/testutils/unittest_linter.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import Any, Optional
diff --git a/pylint/typing.py b/pylint/typing.py
index 84488987a..32b2ac419 100644
--- a/pylint/typing.py
+++ b/pylint/typing.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""A collection of typing utilities."""
import sys
diff --git a/pylint/utils/__init__.py b/pylint/utils/__init__.py
index 7406f7ec6..51813f994 100644
--- a/pylint/utils/__init__.py
+++ b/pylint/utils/__init__.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Some various utilities and helper classes, most of them used in the
main pylint class
diff --git a/pylint/utils/ast_walker.py b/pylint/utils/ast_walker.py
index 08fc3af92..415bd97dd 100644
--- a/pylint/utils/ast_walker.py
+++ b/pylint/utils/ast_walker.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
import traceback
diff --git a/pylint/utils/docs.py b/pylint/utils/docs.py
index 22412b803..b6fb877f0 100644
--- a/pylint/utils/docs.py
+++ b/pylint/utils/docs.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Various helper functions to create the docs of a linter object."""
import sys
diff --git a/pylint/utils/file_state.py b/pylint/utils/file_state.py
index b7f09a6b9..b820affcc 100644
--- a/pylint/utils/file_state.py
+++ b/pylint/utils/file_state.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import collections
import sys
diff --git a/pylint/utils/linterstats.py b/pylint/utils/linterstats.py
index e09e0ce43..f7ca05f61 100644
--- a/pylint/utils/linterstats.py
+++ b/pylint/utils/linterstats.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import sys
from typing import Dict, List, Optional, Set, cast
diff --git a/pylint/utils/pragma_parser.py b/pylint/utils/pragma_parser.py
index 090a336fc..01cdf440a 100644
--- a/pylint/utils/pragma_parser.py
+++ b/pylint/utils/pragma_parser.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import re
from collections import namedtuple
diff --git a/pylint/utils/utils.py b/pylint/utils/utils.py
index 835351ec3..6a60cd8e9 100644
--- a/pylint/utils/utils.py
+++ b/pylint/utils/utils.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
try:
import isort.api
diff --git a/tests/benchmark/test_baseline_benchmarks.py b/tests/benchmark/test_baseline_benchmarks.py
index b4550db43..f9e997ef3 100644
--- a/tests/benchmark/test_baseline_benchmarks.py
+++ b/tests/benchmark/test_baseline_benchmarks.py
@@ -2,7 +2,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
# pylint: disable=missing-function-docstring
diff --git a/tests/checkers/__init__.py b/tests/checkers/__init__.py
index e69de29bb..e8a8ff79f 100644
--- a/tests/checkers/__init__.py
+++ b/tests/checkers/__init__.py
@@ -0,0 +1,3 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
diff --git a/tests/checkers/conftest.py b/tests/checkers/conftest.py
index e83101542..ac2a187d4 100644
--- a/tests/checkers/conftest.py
+++ b/tests/checkers/conftest.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from pathlib import Path
HERE = Path(__file__).parent
diff --git a/tests/checkers/unittest_base.py b/tests/checkers/unittest_base.py
index b0238c3ea..198eb174e 100644
--- a/tests/checkers/unittest_base.py
+++ b/tests/checkers/unittest_base.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unittest for the base checker."""
diff --git a/tests/checkers/unittest_base_checker.py b/tests/checkers/unittest_base_checker.py
index 7efdf2aba..68d36cd6c 100644
--- a/tests/checkers/unittest_base_checker.py
+++ b/tests/checkers/unittest_base_checker.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unittest for the BaseChecker class."""
diff --git a/tests/checkers/unittest_deprecated.py b/tests/checkers/unittest_deprecated.py
index 75608acf4..0b35b297a 100644
--- a/tests/checkers/unittest_deprecated.py
+++ b/tests/checkers/unittest_deprecated.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import List, Optional, Set, Tuple, Union
import astroid
diff --git a/tests/checkers/unittest_design.py b/tests/checkers/unittest_design.py
index 95baea3b2..46eab45d7 100644
--- a/tests/checkers/unittest_design.py
+++ b/tests/checkers/unittest_design.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import astroid
diff --git a/tests/checkers/unittest_format.py b/tests/checkers/unittest_format.py
index 8c5a2836c..fa8b549a5 100644
--- a/tests/checkers/unittest_format.py
+++ b/tests/checkers/unittest_format.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Check format checker helper functions."""
diff --git a/tests/checkers/unittest_imports.py b/tests/checkers/unittest_imports.py
index 7f1181339..ac36f784f 100644
--- a/tests/checkers/unittest_imports.py
+++ b/tests/checkers/unittest_imports.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unit tests for the imports checker."""
diff --git a/tests/checkers/unittest_misc.py b/tests/checkers/unittest_misc.py
index 9c0ec7089..e360d3bb6 100644
--- a/tests/checkers/unittest_misc.py
+++ b/tests/checkers/unittest_misc.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Tests for the misc checker."""
diff --git a/tests/checkers/unittest_non_ascii_name.py b/tests/checkers/unittest_non_ascii_name.py
index 4d69a6519..f6c9abcdb 100644
--- a/tests/checkers/unittest_non_ascii_name.py
+++ b/tests/checkers/unittest_non_ascii_name.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import sys
from typing import Iterable, Optional
diff --git a/tests/checkers/unittest_refactoring.py b/tests/checkers/unittest_refactoring.py
index 2a28c0bed..fda53098d 100644
--- a/tests/checkers/unittest_refactoring.py
+++ b/tests/checkers/unittest_refactoring.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import os
diff --git a/tests/checkers/unittest_similar.py b/tests/checkers/unittest_similar.py
index 3911db93b..64ed46eb0 100644
--- a/tests/checkers/unittest_similar.py
+++ b/tests/checkers/unittest_similar.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from contextlib import redirect_stdout
from io import StringIO
diff --git a/tests/checkers/unittest_spelling.py b/tests/checkers/unittest_spelling.py
index 6f7308aaa..3d4553913 100644
--- a/tests/checkers/unittest_spelling.py
+++ b/tests/checkers/unittest_spelling.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unittest for the spelling checker."""
diff --git a/tests/checkers/unittest_stdlib.py b/tests/checkers/unittest_stdlib.py
index 480da8992..cdd61e6ba 100644
--- a/tests/checkers/unittest_stdlib.py
+++ b/tests/checkers/unittest_stdlib.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import contextlib
from typing import Any, Callable, Iterator, Optional, Union
diff --git a/tests/checkers/unittest_strings.py b/tests/checkers/unittest_strings.py
index 529a9284f..7927dcc49 100644
--- a/tests/checkers/unittest_strings.py
+++ b/tests/checkers/unittest_strings.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from pylint.checkers import strings
diff --git a/tests/checkers/unittest_typecheck.py b/tests/checkers/unittest_typecheck.py
index 736a16ca2..afcc2dc2e 100644
--- a/tests/checkers/unittest_typecheck.py
+++ b/tests/checkers/unittest_typecheck.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import astroid
import pytest
diff --git a/tests/checkers/unittest_unicode/__init__.py b/tests/checkers/unittest_unicode/__init__.py
index 7a748245a..df1e5bf3d 100644
--- a/tests/checkers/unittest_unicode/__init__.py
+++ b/tests/checkers/unittest_unicode/__init__.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import io
from pathlib import Path
diff --git a/tests/checkers/unittest_unicode/unittest_bad_chars.py b/tests/checkers/unittest_unicode/unittest_bad_chars.py
index 8c98e094b..154faad5a 100644
--- a/tests/checkers/unittest_unicode/unittest_bad_chars.py
+++ b/tests/checkers/unittest_unicode/unittest_bad_chars.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
# pylint: disable=redefined-outer-name
import itertools
from pathlib import Path
diff --git a/tests/checkers/unittest_unicode/unittest_bidirectional_unicode.py b/tests/checkers/unittest_unicode/unittest_bidirectional_unicode.py
index 2416957c9..68134fcc9 100644
--- a/tests/checkers/unittest_unicode/unittest_bidirectional_unicode.py
+++ b/tests/checkers/unittest_unicode/unittest_bidirectional_unicode.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import itertools
import unicodedata
from pathlib import Path
diff --git a/tests/checkers/unittest_unicode/unittest_functions.py b/tests/checkers/unittest_unicode/unittest_functions.py
index d14d2fdad..bf42df996 100644
--- a/tests/checkers/unittest_unicode/unittest_functions.py
+++ b/tests/checkers/unittest_unicode/unittest_functions.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import itertools
from pathlib import Path
from typing import Dict
diff --git a/tests/checkers/unittest_unicode/unittest_invalid_encoding.py b/tests/checkers/unittest_unicode/unittest_invalid_encoding.py
index 5facf9a05..ff46539e4 100644
--- a/tests/checkers/unittest_unicode/unittest_invalid_encoding.py
+++ b/tests/checkers/unittest_unicode/unittest_invalid_encoding.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import codecs
import io
import shutil
diff --git a/tests/checkers/unittest_utils.py b/tests/checkers/unittest_utils.py
index e27443f26..121bcef2e 100644
--- a/tests/checkers/unittest_utils.py
+++ b/tests/checkers/unittest_utils.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Tests for the pylint.checkers.utils module."""
diff --git a/tests/checkers/unittest_variables.py b/tests/checkers/unittest_variables.py
index e9ebbd613..c2d2d8ec3 100644
--- a/tests/checkers/unittest_variables.py
+++ b/tests/checkers/unittest_variables.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import os
import re
diff --git a/tests/config/conftest.py b/tests/config/conftest.py
index 5a6778af2..491b16267 100644
--- a/tests/config/conftest.py
+++ b/tests/config/conftest.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from pathlib import Path
import pytest
diff --git a/tests/config/file_to_lint.py b/tests/config/file_to_lint.py
index bc3f722d9..b6a8c14c8 100644
--- a/tests/config/file_to_lint.py
+++ b/tests/config/file_to_lint.py
@@ -1 +1,5 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Perfect module with only documentation for configuration tests."""
diff --git a/tests/config/test_config.py b/tests/config/test_config.py
index f89e62416..701d24a82 100644
--- a/tests/config/test_config.py
+++ b/tests/config/test_config.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import os
from pathlib import Path
from typing import Optional, Set
diff --git a/tests/config/test_functional_config_loading.py b/tests/config/test_functional_config_loading.py
index 174af48b8..e4ed15051 100644
--- a/tests/config/test_functional_config_loading.py
+++ b/tests/config/test_functional_config_loading.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""This launches the configuration functional tests. This permits to test configuration
files by providing a file with the appropriate extension in the ``tests/config/functional``
diff --git a/tests/config/unittest_config.py b/tests/config/unittest_config.py
index 16e12350e..14c3b7232 100644
--- a/tests/config/unittest_config.py
+++ b/tests/config/unittest_config.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unit tests for the config module."""
diff --git a/tests/conftest.py b/tests/conftest.py
index 1f2347a1a..dd0b1195e 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
# pylint: disable=redefined-outer-name
import os
from pathlib import Path
diff --git a/tests/extensions/__init__.py b/tests/extensions/__init__.py
index e69de29bb..e8a8ff79f 100644
--- a/tests/extensions/__init__.py
+++ b/tests/extensions/__init__.py
@@ -0,0 +1,3 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
diff --git a/tests/extensions/test_check_docs_utils.py b/tests/extensions/test_check_docs_utils.py
index abc0751d8..b14138a92 100644
--- a/tests/extensions/test_check_docs_utils.py
+++ b/tests/extensions/test_check_docs_utils.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unit tests for utils functions in :mod:`pylint.extensions._check_docs_utils`."""
import astroid
diff --git a/tests/extensions/test_private_import.py b/tests/extensions/test_private_import.py
index 10648a8f9..d2d79947f 100644
--- a/tests/extensions/test_private_import.py
+++ b/tests/extensions/test_private_import.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Tests the local module directory comparison logic which requires mocking file directories"""
from unittest.mock import patch
diff --git a/tests/lint/__init__.py b/tests/lint/__init__.py
index e69de29bb..e8a8ff79f 100644
--- a/tests/lint/__init__.py
+++ b/tests/lint/__init__.py
@@ -0,0 +1,3 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
diff --git a/tests/lint/test_pylinter.py b/tests/lint/test_pylinter.py
index 9d6695a25..57ad0f7b8 100644
--- a/tests/lint/test_pylinter.py
+++ b/tests/lint/test_pylinter.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import Any, NoReturn
from unittest.mock import patch
diff --git a/tests/lint/test_utils.py b/tests/lint/test_utils.py
index a1fa53614..891ee0020 100644
--- a/tests/lint/test_utils.py
+++ b/tests/lint/test_utils.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import unittest.mock
from pathlib import Path, PosixPath
diff --git a/tests/lint/unittest_expand_modules.py b/tests/lint/unittest_expand_modules.py
index 6c0855e9d..75d344707 100644
--- a/tests/lint/unittest_expand_modules.py
+++ b/tests/lint/unittest_expand_modules.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import re
from pathlib import Path
diff --git a/tests/lint/unittest_lint.py b/tests/lint/unittest_lint.py
index 04b94d4e8..91df7dc1f 100644
--- a/tests/lint/unittest_lint.py
+++ b/tests/lint/unittest_lint.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
# pylint: disable=redefined-outer-name
diff --git a/tests/message/__init__.py b/tests/message/__init__.py
index e69de29bb..e8a8ff79f 100644
--- a/tests/message/__init__.py
+++ b/tests/message/__init__.py
@@ -0,0 +1,3 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
diff --git a/tests/message/conftest.py b/tests/message/conftest.py
index aee6f5019..7a9a399cf 100644
--- a/tests/message/conftest.py
+++ b/tests/message/conftest.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
# pylint: disable=redefined-outer-name
diff --git a/tests/message/test_no_removed_msgid_or_symbol_used.py b/tests/message/test_no_removed_msgid_or_symbol_used.py
index d829c2943..e00450b9a 100644
--- a/tests/message/test_no_removed_msgid_or_symbol_used.py
+++ b/tests/message/test_no_removed_msgid_or_symbol_used.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from pylint.constants import DELETED_MESSAGES
from pylint.lint import PyLinter
diff --git a/tests/message/unittest_message.py b/tests/message/unittest_message.py
index f8397cc3c..ef560a649 100644
--- a/tests/message/unittest_message.py
+++ b/tests/message/unittest_message.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import ValuesView
diff --git a/tests/message/unittest_message_definition.py b/tests/message/unittest_message_definition.py
index 51211b8ba..c81763ff3 100644
--- a/tests/message/unittest_message_definition.py
+++ b/tests/message/unittest_message_definition.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import sys
from unittest import mock
diff --git a/tests/message/unittest_message_definition_store.py b/tests/message/unittest_message_definition_store.py
index 96756ce86..a7d8352c6 100644
--- a/tests/message/unittest_message_definition_store.py
+++ b/tests/message/unittest_message_definition_store.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from contextlib import redirect_stdout
from io import StringIO
diff --git a/tests/message/unittest_message_id_store.py b/tests/message/unittest_message_id_store.py
index 4be49b182..150ec8d69 100644
--- a/tests/message/unittest_message_id_store.py
+++ b/tests/message/unittest_message_id_store.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from pathlib import Path
from typing import Dict, ValuesView
diff --git a/tests/primer/test_primer_external.py b/tests/primer/test_primer_external.py
index c9ec9f167..4a4325962 100644
--- a/tests/primer/test_primer_external.py
+++ b/tests/primer/test_primer_external.py
@@ -1,6 +1,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import json
import logging
import subprocess
diff --git a/tests/primer/test_primer_stdlib.py b/tests/primer/test_primer_stdlib.py
index cb84437fb..59599ae00 100644
--- a/tests/primer/test_primer_stdlib.py
+++ b/tests/primer/test_primer_stdlib.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import contextlib
import io
diff --git a/tests/profile/test_profile_against_externals.py b/tests/profile/test_profile_against_externals.py
index 643896623..81819476e 100644
--- a/tests/profile/test_profile_against_externals.py
+++ b/tests/profile/test_profile_against_externals.py
@@ -2,7 +2,7 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
# pylint: disable=missing-function-docstring
diff --git a/tests/pyreverse/conftest.py b/tests/pyreverse/conftest.py
index ed3ad8f42..52b919883 100644
--- a/tests/pyreverse/conftest.py
+++ b/tests/pyreverse/conftest.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
from typing import Callable, Optional
import pytest
diff --git a/tests/pyreverse/test_diadefs.py b/tests/pyreverse/test_diadefs.py
index 1a43daaa9..ecb601b0c 100644
--- a/tests/pyreverse/test_diadefs.py
+++ b/tests/pyreverse/test_diadefs.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unit test for the extensions.diadefslib modules."""
# pylint: disable=redefined-outer-name
diff --git a/tests/pyreverse/test_diagrams.py b/tests/pyreverse/test_diagrams.py
index 6bf0ab706..f10af571d 100644
--- a/tests/pyreverse/test_diagrams.py
+++ b/tests/pyreverse/test_diagrams.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unit test for the diagrams modules."""
from typing import Callable
diff --git a/tests/pyreverse/test_inspector.py b/tests/pyreverse/test_inspector.py
index c93e80233..8f053c148 100644
--- a/tests/pyreverse/test_inspector.py
+++ b/tests/pyreverse/test_inspector.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""For the visitors.diadefs module."""
# pylint: disable=redefined-outer-name
diff --git a/tests/pyreverse/test_main.py b/tests/pyreverse/test_main.py
index 2cc422c4a..eda6e9974 100644
--- a/tests/pyreverse/test_main.py
+++ b/tests/pyreverse/test_main.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Unittest for the main module."""
import os
import sys
diff --git a/tests/pyreverse/test_printer.py b/tests/pyreverse/test_printer.py
index 26faea74f..9128fc6dd 100644
--- a/tests/pyreverse/test_printer.py
+++ b/tests/pyreverse/test_printer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from typing import Type
diff --git a/tests/pyreverse/test_printer_factory.py b/tests/pyreverse/test_printer_factory.py
index 1f0055955..97ee1179c 100644
--- a/tests/pyreverse/test_printer_factory.py
+++ b/tests/pyreverse/test_printer_factory.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unit tests for pylint.pyreverse.printer_factory."""
diff --git a/tests/pyreverse/test_utils.py b/tests/pyreverse/test_utils.py
index 095939ad6..da75fa931 100644
--- a/tests/pyreverse/test_utils.py
+++ b/tests/pyreverse/test_utils.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Tests for pylint.pyreverse.utils."""
diff --git a/tests/pyreverse/test_writer.py b/tests/pyreverse/test_writer.py
index 3864bd51e..d3b2d8f44 100644
--- a/tests/pyreverse/test_writer.py
+++ b/tests/pyreverse/test_writer.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Unit test for ``DiagramWriter``."""
diff --git a/tests/test_check_parallel.py b/tests/test_check_parallel.py
index 7011461b2..d41ed13f4 100644
--- a/tests/test_check_parallel.py
+++ b/tests/test_check_parallel.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Puts the check_parallel system under test."""
diff --git a/tests/test_epylint.py b/tests/test_epylint.py
index 8e7ff9b79..e1b090395 100644
--- a/tests/test_epylint.py
+++ b/tests/test_epylint.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Test for issue https://github.com/PyCQA/pylint/issues/4286."""
# pylint: disable=redefined-outer-name
from pathlib import PosixPath
diff --git a/tests/test_func.py b/tests/test_func.py
index a372b4a28..2de78c5d0 100644
--- a/tests/test_func.py
+++ b/tests/test_func.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Functional/non regression tests for pylint."""
diff --git a/tests/test_functional.py b/tests/test_functional.py
index 86f8fe73b..b328af5fc 100644
--- a/tests/test_functional.py
+++ b/tests/test_functional.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Functional full-module tests for PyLint."""
import sys
diff --git a/tests/test_functional_directories.py b/tests/test_functional_directories.py
index a01f19cdd..f75772332 100644
--- a/tests/test_functional_directories.py
+++ b/tests/test_functional_directories.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
"""Test that the directory structure of the functional tests is correct."""
from pathlib import Path
diff --git a/tests/test_import_graph.py b/tests/test_import_graph.py
index 7dc06307f..9ea57e2ce 100644
--- a/tests/test_import_graph.py
+++ b/tests/test_import_graph.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
# pylint: disable=redefined-outer-name
diff --git a/tests/test_numversion.py b/tests/test_numversion.py
index beffc31bb..1bfb451da 100644
--- a/tests/test_numversion.py
+++ b/tests/test_numversion.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import pytest
diff --git a/tests/test_pragma_parser.py b/tests/test_pragma_parser.py
index 7bf00c7a3..d8dd508b0 100644
--- a/tests/test_pragma_parser.py
+++ b/tests/test_pragma_parser.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import pytest
from pylint.utils.pragma_parser import (
diff --git a/tests/test_pylint_runners.py b/tests/test_pylint_runners.py
index e4b20c0a8..303b433d3 100644
--- a/tests/test_pylint_runners.py
+++ b/tests/test_pylint_runners.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
# pylint: disable=missing-module-docstring, missing-function-docstring
import os
import sys
diff --git a/tests/test_regr.py b/tests/test_regr.py
index 486c9b8b7..76bcafd68 100644
--- a/tests/test_regr.py
+++ b/tests/test_regr.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Non regression tests for pylint, which requires a too specific configuration
to be incorporated in the automatic functional test framework
diff --git a/tests/test_self.py b/tests/test_self.py
index f2911ee09..36084b717 100644
--- a/tests/test_self.py
+++ b/tests/test_self.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
# pylint: disable=too-many-public-methods
diff --git a/tests/test_similar.py b/tests/test_similar.py
index 53c71cbd1..f595102bc 100644
--- a/tests/test_similar.py
+++ b/tests/test_similar.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import contextlib
import os
diff --git a/tests/testutils/dummy_checker.py b/tests/testutils/dummy_checker.py
index e69de29bb..e8a8ff79f 100644
--- a/tests/testutils/dummy_checker.py
+++ b/tests/testutils/dummy_checker.py
@@ -0,0 +1,3 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
diff --git a/tests/testutils/test_configuration_test.py b/tests/testutils/test_configuration_test.py
index 195c4415c..2efa65df3 100644
--- a/tests/testutils/test_configuration_test.py
+++ b/tests/testutils/test_configuration_test.py
@@ -1,3 +1,7 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
+
import logging
from pathlib import Path
diff --git a/tests/testutils/test_decorator.py b/tests/testutils/test_decorator.py
index 64594b39c..42b88ab5c 100644
--- a/tests/testutils/test_decorator.py
+++ b/tests/testutils/test_decorator.py
@@ -1,7 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
-
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import pytest
diff --git a/tests/testutils/test_functional_testutils.py b/tests/testutils/test_functional_testutils.py
index 136bda749..f37ffb1ca 100644
--- a/tests/testutils/test_functional_testutils.py
+++ b/tests/testutils/test_functional_testutils.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Tests for the functional test framework."""
diff --git a/tests/testutils/test_lint_module_output_update.py b/tests/testutils/test_lint_module_output_update.py
index 332463b03..6d46f84b4 100644
--- a/tests/testutils/test_lint_module_output_update.py
+++ b/tests/testutils/test_lint_module_output_update.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
# pylint: disable=redefined-outer-name
from pathlib import Path
diff --git a/tests/testutils/test_output_line.py b/tests/testutils/test_output_line.py
index 6a0e35518..6e6335ecc 100644
--- a/tests/testutils/test_output_line.py
+++ b/tests/testutils/test_output_line.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
# pylint: disable=redefined-outer-name
diff --git a/tests/testutils/test_package_to_lint.py b/tests/testutils/test_package_to_lint.py
index a79faa60c..c3d2a4ab4 100644
--- a/tests/testutils/test_package_to_lint.py
+++ b/tests/testutils/test_package_to_lint.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
from pylint.testutils.primer import PRIMER_DIRECTORY_PATH, PackageToLint
diff --git a/tests/unittest_reporters_json.py b/tests/unittest_reporters_json.py
index 66da977a3..421506fe5 100644
--- a/tests/unittest_reporters_json.py
+++ b/tests/unittest_reporters_json.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
"""Test for the JSON reporter."""
diff --git a/tests/unittest_reporting.py b/tests/unittest_reporting.py
index 4bbef2115..6db3f5a96 100644
--- a/tests/unittest_reporting.py
+++ b/tests/unittest_reporting.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
# pylint: disable=redefined-outer-name
import sys
diff --git a/tests/utils/__init__.py b/tests/utils/__init__.py
index e69de29bb..e8a8ff79f 100644
--- a/tests/utils/__init__.py
+++ b/tests/utils/__init__.py
@@ -0,0 +1,3 @@
+# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
diff --git a/tests/utils/unittest_ast_walker.py b/tests/utils/unittest_ast_walker.py
index 8f24bdaaa..ec271bee7 100644
--- a/tests/utils/unittest_ast_walker.py
+++ b/tests/utils/unittest_ast_walker.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import warnings
from typing import Dict, Set
diff --git a/tests/utils/unittest_utils.py b/tests/utils/unittest_utils.py
index 2f9ed9f4b..c802c40e2 100644
--- a/tests/utils/unittest_utils.py
+++ b/tests/utils/unittest_utils.py
@@ -1,6 +1,6 @@
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
-# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
+# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
import io