Sync Vale and markdownlint configuration to documentation source projects
Sync Vale and markdownlint configuration
Vale and markdownlint configuration is stored in each documentation source project separately.
The gitlab project is the source of truth. All rule changes are made there first, then copied out
to the other projects.
The copies drift from the source of truth over time, as changes land in gitlab but aren't copied
downstream right away. This issue tracks a periodic resynchronization of that configuration.
The process is documented at https://docs.gitlab.com/development/documentation/testing/#update-linter-configuration.
Each project's copy of a style directory is deleted before the new one is copied in. This means rules deleted upstream are also removed downstream. A plain copy would leave stale, deleted rules behind.
The source of truth for this round is gitlab commit 9d9db2d0b2302 on master (2026-08-19).
Changes being synced
- New rule added:
gitlab_base/BoldEmphasis.yml. This rule is missing from all six projects. - Changed rules, present in all six projects:
gitlab_base/OutdatedVersions.yml,gitlab_base/OxfordComma.yml,gitlab_base/Substitutions.yml,gitlab_base/Uppercase.yml,gitlab_base/spelling-exceptions.txt. - Changed rule, affecting
charts/gitlab,cli, andartifact-registryonly:gitlab_base/AlertFormat.yml. This rule is missing entirely fromcli. - Changed rule, affecting the five projects that use it:
gitlab_docs/Badges-Offerings.yml. - No rules were deleted upstream since the last sync, so no rules are removed this time.
- The markdownlint configuration in
.markdownlint-cli2.yamlneeds no rule changes in any project. The only markdownlint change is a one-line lint-suppression comment in the custom rule file.markdownlint/rules/unnecessary_traversal.js. This affectsgitlab-runner,omnibus-gitlab,charts/gitlab, andgitlab-operator.
Files not synced
These files are project-specific and are deliberately left alone:
gitlab_docs/RelativeLinks.yml. Each project configures this rule differently..vale.ini. Each project sets its ownStylesPath,IgnoredScopes,TokenIgnores, andBasedOnStyles.- The
gitlab_release_indexandgitlab_release_notesstyles, and the.tmploutput templates. These are used only by thegitlabproject. - Local markdownlint overrides in
cli(ol-prefix,commands-show-output) and inartifact-registry(proper-names,ignores). artifact-registryalso keeps its own.vale/localstyle and.vale-user.ini.
Update checklist
-
gitlab-runner: syncdocs/.vale/gitlab_base,docs/.vale/gitlab_docs, anddocs/.markdownlint/rules/unnecessary_traversal.js: Sync Vale and markdownlint configuration from t... (gitlab-org/gitlab-runner!7208 - merged) -
omnibus-gitlab: syncdoc/.vale/gitlab_base,doc/.vale/gitlab_docs, anddoc/.markdownlint/rules/unnecessary_traversal.js: Sync Vale and markdownlint configuration from t... (gitlab-org/omnibus-gitlab!9700 - merged) -
charts/gitlab: syncdoc/.vale/gitlab_base,doc/.vale/gitlab_docs, anddoc/.markdownlint/rules/unnecessary_traversal.js: Sync Vale and markdownlint configuration from t... (gitlab-org/charts/gitlab!5275 - merged) -
gitlab-operator: syncdoc/.vale/gitlab_base,doc/.vale/gitlab_docs, anddoc/.markdownlint/rules/unnecessary_traversal.js: Sync Vale and markdownlint configuration from t... (gitlab-org/cloud-native/gitlab-operator!1632 - merged) -
cli: syncdocs/.vale/gitlab_baseanddocs/.vale/gitlab_docs: chore(lint): sync Vale configuration from the g... (gitlab-org/cli!3747 - merged) -
artifact-registry: sync.vale/gitlab_base: Draft: chore(lint): sync Vale configuration fro... (gitlab-org/ops/artifact-registry!1698 - closed)
Each merge request contains the configuration sync in one commit and any resulting documentation fixes in a second commit.
Issue close
Close this issue when all six merge requests are merged.