Use CI checks to lint your docs for errors and provide warnings before you deploy. Mintlify CI checks run on pull requests against a configured deployment branch.
The Mintlify GitHub App only need access to the repository where your documentation content exists. We recommend only granting access to that repository only.
Configure the CI checks enabled for a deployment by navigating to the Add-ons page of your dashboard. Enable the checks that you want to run.When enabling checks, you can choose to run them at a Warning or Blocking level.
A Warning level check never provides a failure status, even if there is an error or suggestions.
A Blocking level check provides a failure status if there is an error or suggestions.
Similar to how the CLI link checker works on your local machine, the broken link CI check automatically searches your documentation content for broken internal links between pages within your site. It does not check external links to other websites.To see detailed results for broken links on a pull request, click the Checks tab and select the Mintlify broken links check. The results lists any files with broken links found in the pull request.
Vale is an open source rule-based prose linter which supports a range of document types, including Markdown and MDX. Use Vale to check for consistency of style and tone in your documentation.Mintlify supports automatically running Vale in a CI check and displaying the results as a check status.
If you have a .vale.ini file in the root content directory of your deployment, the Vale CI check uses that configuration file and any configuration files in your specified stylesPath.If you don’t have a Vale config file, the default configuration automatically loads.
Default vale.ini configuration
# Top level stylesStylesPath = /app/stylesMinAlertLevel = suggestion# Inline HTML tags to ignore (code/tt for code snippets, img/url for links/images, a for anchor tags)IgnoredScopes = code, tt, img, url, aSkippedScopes = script, style, pre, figure# VocabulariesVocab = Mintlify# Parse MDX as MD to avoid fragility with JSX[formats]mdx = md# Only match MDX[*.mdx]BasedOnStyles = ValeVale.Terms = NO # Enforces really harsh capitalization rules, keep off# Ignore JSX/MDX-specific syntax patterns# `import ...`, `export ...`# `<Component ... />`# `<Component>...</Component>`# `{ ... }`TokenIgnores = (?sm)((?:import|export) .+?$), \(?<!`)(<\w+ ?.+ ?\/>)(?!`), \(<[A-Z]\w+>.+?<\/[A-Z]\w+>), \\{[^}]*\}# Exclude multiline JSX and curly braces# `<Component \n ... />`BlockIgnores = (?sm)^(<\w+\n .*\s\/>)$, \(?sm)^({.+.*})
The default Vale vocabulary includes the following words.
Default Vale vocabulary
MintlifymintlifyVSCodeopenapiOpenAPIGitHubAPIsreponpmdevLoremipsumimpsumametconstmyNamemyObjectbearerAuthfavicontopbarurlborderRadiusargsmodeToggleModeToggleisHiddenautoplay_italic_StrikethroughBlockquotesBlockquoteSinglelineMultilineonboardingasyncawaitbooleanenumfuncimplinitinstanceoftypeofparamsstdinstdoutstderrstdoutstdinvarconstletnullundefinedstructboolcorscsrfenvxhrxhr2jwtoauthwebsocketlocalhostmiddlewareruntimewebhookstdinstdoutjsonyamlymlmdtxttsxjsxcssscsshtmlpngjpgsvgcdnclicssdomdtoenvgitguihttphttpsidejvmmvcormrpcsdksqlsshssltcptlsuriurluxuinodejsnpmyarnpnpmeslintpytestgolangrustckubectlmongopostgresredisJavaScriptTypeScriptPythonRubyRustGoGolangJavaKotlinSwiftNode.jsNodeJSDenoReactVueAngularNext.jsNuxtExpressDjangoFlaskSpringLaravelReduxVuexTensorFlowPostgreSQLMongoDBRedisPNPMDockerKubernetesAWSAzureGCPTerraformJenkinsCircleCIGitLabHerokuGitgitGitHubGitLabBitbucketVSCodeVisual Studio CodeIntelliJWebStormESLinteslintPrettierprettierWebpackwebpackViteviteBabelbabelJestjestMochaCypressPostmanHTTPHTTPSOAuthJWTGraphQLRESTWebSocketTCP/IPNPMYarnPNPMPipPIPCargoRubyGemsSwaggerOpenAPIMarkdownMDXStorybookTypeDocJSDocMySQLPostgreSQLMongoDBRedisElasticsearchDynamoDBLinuxUnixmacOSiOSFirefoxChromiumWebKitconfigctxdescdirelemerrlenmsgnumobjprevprocptrreqresstrtmpvalvarstodohreflangnavprevnexttoc
To add your own vocabulary for the default configuration, create a styles/config/vocabularies/Mintlify directory with accept.txt and reject.txt files.
accept.txt: Words that the Vale linter should ignore. For example, product names or uncommon terms.
reject.txt: Words that the Vale linter should flag as errors. For example, jargon or words that are not appropriate for the tone of your documentation.
For security reasons, absolute stylesPath, or stylesPath which include .. values aren’t supported.Use relative paths and include the stylesPath in your repository.
Vale supports a range of packages that check for spelling and style errors. Any packages you include in your repository under the correct stylesPath automatically install and run with your Vale configuration.For packages not included in your repository, you may specify any packages from the Vale package registry, and they’re automatically downloaded and used in your Vale configuration.
For security reasons, automatically downloading packages that aren’t from the Vale package registry is not supported.
MDX native support requires Vale 3.10.0 or later. Check your Vale version with vale --version.
To use Vale’s in-document comments in MDX files, use MDX-style comments {/* ... */}:
{/* vale off */}Vale ignores this text{/* vale on */}
Vale automatically recognizes and respects these comments in MDX files without additional configuration. Use comments to skip lines or sections that you want the linter to ignore.
Do not place {/* vale off */} or similar MDX expression comments as direct children of a JSX component between sibling elements. For example, between two <Step> elements inside a <Steps> component.Place comments inside a specific element’s content or restructure the content to avoid needing comments.