Skip to content

yamllint: Lint more YAML extensions

Peter Leitzen requested to merge pl-more-yaml into master

What does this MR do and why?

This MR allows yamllint to inspect YAML with extensions for example:

  • config/gitlab.yml.example
  • config/database.yml.decomposed-postgresql
  • See diff below for more

Because some extensions are binary or contain invalid syntax the following extensions were excluded:

Follow-up of !106945 (comment 1209475215)

Screenshots

lefthook catching error in config/gitlab.yml.example
Screenshot_from_2022-12-15_14-37-16
Matches .gitlab-ci.yml Matches config/gitlab.yml.example
https://gitlab.com/gitlab-org/gitlab/-/jobs/3479816384 Screenshot_from_2022-12-15_14-51-35 https://gitlab.com/gitlab-org/gitlab/-/jobs/3479841954 Screenshot_from_2022-12-15_14-53-06

How to set up and validate locally

scripts/lint-yaml.sh .

# Inspect all opened files
strace -ff -e trace=openat scripts/lint-yaml.sh .

Diff before/after opened files

Click to expand
--- files.before	2022-12-15 14:20:39.144274573 +0100
+++ files.after	2022-12-15 14:18:26.445754828 +0100
@@ -2784,7 +2784,10 @@
 ./config/audit_events/types/policy_project_updated.yml
 ./config/bullet.yml
 ./config/cable.yml
+./config/cable.yml.example
 ./config/database.yml
+./config/database.yml.decomposed-postgresql
+./config/database.yml.postgresql
 ./config/dependency_decisions.yml
 ./config/environments
 ./config/events
@@ -3419,6 +3422,7 @@
 ./config/feature_flags/undefined/gitaly_user_merge_branch_access_error.yml
 ./config/gitlab_loose_foreign_keys.yml
 ./config/gitlab.yml
+./config/gitlab.yml.example
 ./config/helpers
 ./config/helpers/incremental_webpack_compiler
 ./config/initializers
@@ -5373,9 +5377,12 @@
 ./config/redis.shared_state.yml
 ./config/redis.trace_chunks.yml
 ./config/resque.yml
+./config/resque.yml.example
 ./config/routes
 ./config/secrets.yml
+./config/secrets.yml.example
 ./config/sidekiq_queues.yml
+./config/sidekiq.yml.example
 ./config/storage.yml
 ./config/weak_password_digests.yml
 ./coverage
@@ -12192,6 +12199,7 @@
 ./.gitlab/ci/qa.gitlab-ci.yml
 ./.gitlab/ci/rails
 ./.gitlab/ci/rails.gitlab-ci.yml
+./.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb
 ./.gitlab/ci/rails/shared.gitlab-ci.yml
 ./.gitlab/ci/releases.gitlab-ci.yml
 ./.gitlab/ci/reports.gitlab-ci.yml
@@ -24551,6 +24559,8 @@
 ./qa/qa/fixtures/designs
 ./qa/qa/fixtures/designs/update
 ./qa/qa/fixtures/kubernetes_agent
+./qa/qa/fixtures/kubernetes_agent/agentk-config.yaml.erb
+./qa/qa/fixtures/kubernetes_agent/agentk-manifest.yaml.erb
 ./qa/qa/fixtures/kubernetes_agent/galatic-empire-manifest.yaml
 ./qa/qa/fixtures/ldap
 ./qa/qa/fixtures/ldap/admin
@@ -24559,21 +24569,41 @@
 ./qa/qa/fixtures/metrics_dashboards/templating.yml
 ./qa/qa/fixtures/package_managers
 ./qa/qa/fixtures/package_managers/composer
+./qa/qa/fixtures/package_managers/composer/composer_upload_package.yaml.erb
 ./qa/qa/fixtures/package_managers/conan
+./qa/qa/fixtures/package_managers/conan/conan_upload_install_package.yaml.erb
 ./qa/qa/fixtures/package_managers/generic
+./qa/qa/fixtures/package_managers/generic/generic_upload_install_package.yaml.erb
 ./qa/qa/fixtures/package_managers/helm
+./qa/qa/fixtures/package_managers/helm/Chart.yaml.erb
+./qa/qa/fixtures/package_managers/helm/helm_install_package.yaml.erb
+./qa/qa/fixtures/package_managers/helm/helm_upload_package.yaml.erb
 ./qa/qa/fixtures/package_managers/maven
 ./qa/qa/fixtures/package_managers/maven/gradle
+./qa/qa/fixtures/package_managers/maven/gradle/gradle_install_package.yaml.erb
+./qa/qa/fixtures/package_managers/maven/gradle/gradle_upload_package.yaml.erb
 ./qa/qa/fixtures/package_managers/maven/group
 ./qa/qa/fixtures/package_managers/maven/group/consumer
+./qa/qa/fixtures/package_managers/maven/group/consumer/gitlab_ci.yaml.erb
 ./qa/qa/fixtures/package_managers/maven/group/producer
+./qa/qa/fixtures/package_managers/maven/group/producer/gitlab_ci.yaml.erb
 ./qa/qa/fixtures/package_managers/maven/project
+./qa/qa/fixtures/package_managers/maven/project/gitlab_ci.yaml.erb
 ./qa/qa/fixtures/package_managers/maven/project/request_forwarding
+./qa/qa/fixtures/package_managers/maven/project/request_forwarding/gitlab_ci.yaml.erb
 ./qa/qa/fixtures/package_managers/npm
+./qa/qa/fixtures/package_managers/npm/npm_install_package_instance.yaml.erb
+./qa/qa/fixtures/package_managers/npm/npm_upload_install_package_project.yaml.erb
+./qa/qa/fixtures/package_managers/npm/npm_upload_package_instance.yaml.erb
 ./qa/qa/fixtures/package_managers/nuget
+./qa/qa/fixtures/package_managers/nuget/nuget_install_package.yaml.erb
+./qa/qa/fixtures/package_managers/nuget/nuget_upload_package.yaml.erb
 ./qa/qa/fixtures/package_managers/pypi
+./qa/qa/fixtures/package_managers/pypi/pypi_upload_install_package.yaml.erb
 ./qa/qa/fixtures/package_managers/rubygems
+./qa/qa/fixtures/package_managers/rubygems/rubygems_upload_package.yaml.erb
 ./qa/qa/fixtures/package_managers/terraform
+./qa/qa/fixtures/package_managers/terraform/module_upload.yaml.erb
 ./qa/qa/fixtures/script_extensions
 ./qa/qa/fixtures/software_licenses
 ./qa/qa/fixtures/web_ide
@@ -45300,6 +45330,7 @@
 ./shared/tmp/gitlab_exports/test/abcd
 ./sidekiq_cluster
 ./.solargraph.yml
+./.solargraph.yml.example
 ./spec
 ./spec/benchmarks
 ./spec/bin

Done via

strace -ff -e trace=openat scripts/lint-yaml.sh . 2>&1 | rg -o -r '$1' '"(\S+)",' | sort > files.after

git checkout master

strace -ff -e trace=openat scripts/lint-yaml.sh . 2>&1 | rg -o -r '$1' '"(\S+)",' | sort > files.before

diff -u files.before files.after

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Peter Leitzen

Merge request reports