dbt™️ Macro checks
check-macro-has-description
check-macro-has-descriptionWhat it does
Ensures that the macro has a description in the properties file (usually macro.yml).
When to use it
You want to make sure that all macros have a description.
Arguments
--manifest: location of manifest.json file. Usually target/manifest.json. This file contains a full representation of dbt project. Default: target/manifest.json --exclude: Regex pattern to exclude files.
Example
repos:
- repo: https://github.com/dbt-checkpoint/dbt-checkpoint
rev: v1.0.0
hooks:
- id: check-macro-has-descriptionRequirements
Macro exists in manifest.json 1
Macro exists in catalog.json 2
❌ Not needed since it also validates properties files
❌ Not needed
1 It means that you need to run dbt parse before run this hook (dbt >= 1.5).
2 It means that you need to run dbt docs generate before run this hook.
How it works
Hook takes all changed
ymlandSQLfiles.The macro name is obtained from the
SQLfile name.The manifest is scanned for a macro.
Modified
ymlfiles are scanned for a macro.If any macro (from a manifest or
ymlfiles) does not have a description, the hook fails.The macro description must be in either the yml file or the manifest.
Known limitations
If you run and then you delete the description from a properties file, the hook success since the description is still present in manifest.json.
check-macro-arguments-have-desc
check-macro-arguments-have-descWhat it does
Ensures that the macro has arguments with descriptions in the properties file (usually schema.yml).
When to use it
You want to make sure that all specified arguments in the properties files (usually schema.yml) have some description. This hook does not validate if all macro arguments are also present in a properties file.
Arguments
--manifest: location of manifest.json file. Usually target/manifest.json. This file contains a full representation of dbt project. Default: target/manifest.json
Example
Requirements
Macro exists in manifest.json 1
Macro exists in catalog.json 2
❌ Not needed since it also validates properties files
❌ Not needed
1 It means that you need to run dbt parse before run this hook (dbt >= 1.5).
2 It means that you need to run dbt docs generate before run this hook.
How it works
Hook takes all changed
ymlandSQLfiles.The macro name is obtained from the
SQLfile name.The manifest is scanned for a macro.
Modified
ymlfiles are scanned for a macro.If any argument in the found macro does not contain a description, the hook fails.
The description must be in either the yml file or the manifest.
Known limitations
If you run and then you delete argument description from a properties file, the hook success since the description is still present in manifest.json.
Last updated
Was this helpful?