Quick Start¶
This guide walks through setting up a minimal Repolish configuration and running your first check.
Minimal configuration¶
Create a repolish.yaml at the root of your project:
Each entry in directories must point to a directory that contains either a
repolish.py module or a repolish/ template folder (or both).
Run a dry-run check¶
Use --check to compare what Repolish would generate against your current
project files without writing anything:
The output includes structured logs showing:
- The merged provider
contextanddelete_paths - A
check_resultlisting per-path diffs - Files that providers want deleted but which are still present
(
PRESENT_BUT_SHOULD_BE_DELETED) - Files that would be created but are missing (
MISSING)
Apply changes¶
Once you are satisfied with the diff output, apply the changes:
Repolish will:
- Render templates into
.repolish/setup-output - Copy generated files into your project
- Apply any file deletions requested by providers
Example with post-processing¶
If your project uses a formatter, add it to post_process so checks always
operate on formatted output:
directories:
- ./templates/my-template
context:
package_name: my-project
post_process:
- poe format
delete_files: []
If a post_process command exits with a non-zero status, Repolish fails and
returns a non-zero exit code so CI can detect the problem.
Next steps¶
- Configuration reference — all
repolish.yamlfields - Templates guide — file mappings and create-only files
- Preprocessors guide — anchors and regex directives
- Provider Patterns — structuring providers for real projects