@@ -134,7 +134,7 @@ <h2 id="quick-start"> Quick start <small><a href="#quick-start" class="text-d
134134< li > < code > pre-commit --version</ code > should show you what version you're using</ li >
135135</ ul >
136136< div class ="highlight pre-commit "> < pre > < span > </ span > $ pre-commit --version
137- pre-commit 4.4 .0
137+ pre-commit 4.5 .0
138138</ pre > </ div >
139139< h3 id ="2-add-a-pre-commit-configuration "> 2. Add a pre-commit configuration < small > < a href ="#2-add-a-pre-commit-configuration " class ="text-decoration-none "> ¶</ a > </ small > </ h3 > < ul >
140140< li > create a file named < code > .pre-commit-config.yaml</ code > </ li >
@@ -1132,7 +1132,72 @@ <h2 id="meta-hooks"> meta hooks <small><a href="#meta-hooks" class="text-deco
11321132</ td > </ tr > < tr > < td > < p > < a id ="meta-identity " href ="#meta-identity "> < code > identity</ code > </ a > </ p >
11331133</ td > < td > < p > a simple hook which prints all arguments passed to it, useful for
11341134debugging.</ p >
1135- </ td > </ tr > </ tbody > </ table > < h2 id ="automatically-enabling-pre-commit-on-repositories "> automatically enabling pre-commit on repositories < small > < a href ="#automatically-enabling-pre-commit-on-repositories " class ="text-decoration-none "> ¶</ a > </ small > </ h2 > < p > < code > pre-commit init-templatedir</ code > can be used to set up a skeleton for < code > git</ code > 's
1135+ </ td > </ tr > </ tbody > </ table > < h2 id ="codepre-commit-hazmatcode "> < code > pre-commit hazmat</ code > < small > < a href ="#codepre-commit-hazmatcode " class ="text-decoration-none "> ¶</ a > </ small > </ h2 > < p > "hazardous materials"</ p >
1136+ < p > pre-commit provides a few < code > entry</ code > prefix "helpers" for unusual situations.</ p >
1137+ < p > in case it's not clear, using these is < em > usually</ em > a bad idea.</ p >
1138+ < p > < em > note</ em > : hazmat helpers do not work on languages which adjust < code > entry</ code > (< code > docker</ code >
1139+ / < code > docker_image</ code > / < code > fail</ code > / < code > julia</ code > / < code > pygrep</ code > / < code > r</ code > / < code > unsupported_script</ code > ).</ p >
1140+ < h3 id ="codepre-commit-hazmat-cdcode "> < code > pre-commit hazmat cd</ code > < small > < a href ="#codepre-commit-hazmat-cdcode " class ="text-decoration-none "> ¶</ a > </ small > </ h3 > < p > < em > new in 4.5.0</ em > </ p >
1141+ < p > for "monorepo" usage one can use this to target a subdirectory.</ p >
1142+ < p > this entry prefix will cd to the target subdir and adjust filename arguments</ p >
1143+ < p > example usage:</ p >
1144+ < div class ="highlight yaml "> < pre > < span > </ span > < span class ="c1 "> # recommended:</ span >
1145+ < span class ="c1 "> # minimum_pre_commit_version: 4.5.0</ span >
1146+ < span class ="nt "> repos</ span > < span class ="p "> :</ span >
1147+ < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> repo</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> ...</ span >
1148+ < span class ="w "> </ span > < span class ="nt "> rev</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> ...</ span >
1149+ < span class ="w "> </ span > < span class ="nt "> hooks</ span > < span class ="p "> :</ span >
1150+ < span class ="w "> </ span > < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> id</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> example</ span >
1151+ < span class ="w "> </ span > < span class ="nt "> alias</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> example-repo1</ span >
1152+ < span class ="w "> </ span > < span class ="nt "> name</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> example (repo1)</ span >
1153+ < span class ="w "> </ span > < span class ="nt "> files</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> ^repo1/</ span >
1154+ < span class ="w "> </ span > < span class ="c1 "> # important! ends with `--`</ span >
1155+ < span class ="w "> </ span > < span class ="c1 "> # important! copy `args: [...]` to entry and blank out `args: []`</ span >
1156+ < span class ="w "> </ span > < span class ="nt "> entry</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> pre-commit hazmat cd repo1 example-bin --arg1 --</ span >
1157+ < span class ="w "> </ span > < span class ="nt "> args</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="p p-Indicator "> []</ span >
1158+
1159+ < span class ="w "> </ span > < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> id</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> example</ span >
1160+ < span class ="w "> </ span > < span class ="nt "> alias</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> example-repo2</ span >
1161+ < span class ="w "> </ span > < span class ="nt "> name</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> example (repo2)</ span >
1162+ < span class ="w "> </ span > < span class ="nt "> files</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> ^repo2/</ span >
1163+ < span class ="w "> </ span > < span class ="nt "> entry</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> pre-commit hazmat cd repo2 example-bin --arg1 --</ span >
1164+ < span class ="w "> </ span > < span class ="nt "> args</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="p p-Indicator "> []</ span >
1165+
1166+ < span class ="w "> </ span > < span class ="c1 "> # ... etc.</ span >
1167+ </ pre > </ div >
1168+ < h3 id ="codepre-commit-hazmat-ignore-exit-codecode "> < code > pre-commit hazmat ignore-exit-code</ code > < small > < a href ="#codepre-commit-hazmat-ignore-exit-codecode " class ="text-decoration-none "> ¶</ a > </ small > </ h3 > < p > < em > new in 4.5.0</ em > </ p >
1169+ < p > it's a bad idea to introduce warning noise but this gives you a way to do it.</ p >
1170+ < p > example:</ p >
1171+ < div class ="highlight yaml "> < pre > < span > </ span > < span class ="c1 "> # recommended:</ span >
1172+ < span class ="c1 "> # minimum_pre_commit_version: 4.5.0</ span >
1173+ < span class ="nt "> repos</ span > < span class ="p "> :</ span >
1174+ < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> repo</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> ...</ span >
1175+ < span class ="w "> </ span > < span class ="nt "> rev</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> ...</ span >
1176+ < span class ="w "> </ span > < span class ="nt "> hooks</ span > < span class ="p "> :</ span >
1177+ < span class ="w "> </ span > < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> id</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> example</ span >
1178+ < span class ="w "> </ span > < span class ="c1 "> # important! copy `args: [...]` to entry and blank out `args: []`</ span >
1179+ < span class ="w "> </ span > < span class ="nt "> entry</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> pre-commit hazmat ignore-exit-code example-bin --arg1 --</ span >
1180+ < span class ="w "> </ span > < span class ="nt "> args</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="p p-Indicator "> []</ span >
1181+ < span class ="w "> </ span > < span class ="c1 "> # otherwise the output will always be hidden</ span >
1182+ < span class ="w "> </ span > < span class ="nt "> verbose</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> true</ span >
1183+ </ pre > </ div >
1184+ < h3 id ="codepre-commit-hazmat-n1code "> < code > pre-commit hazmat n1</ code > < small > < a href ="#codepre-commit-hazmat-n1code " class ="text-decoration-none "> ¶</ a > </ small > </ h3 > < p > < em > new in 4.5.0</ em > </ p >
1185+ < p > some hooks only take one filename argument. this runs them one at a time
1186+ (which is super slow!)</ p >
1187+ < p > example:</ p >
1188+ < div class ="highlight yaml "> < pre > < span > </ span > < span class ="c1 "> # recommended:</ span >
1189+ < span class ="c1 "> # minimum_pre_commit_version: 4.5.0</ span >
1190+ < span class ="nt "> repos</ span > < span class ="p "> :</ span >
1191+ < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> repo</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> ...</ span >
1192+ < span class ="w "> </ span > < span class ="nt "> rev</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> ...</ span >
1193+ < span class ="w "> </ span > < span class ="nt "> hooks</ span > < span class ="p "> :</ span >
1194+ < span class ="w "> </ span > < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> id</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> example</ span >
1195+ < span class ="w "> </ span > < span class ="c1 "> # important! ends with `--`</ span >
1196+ < span class ="w "> </ span > < span class ="c1 "> # important! copy `args: [...]` to entry and blank out `args: []`</ span >
1197+ < span class ="w "> </ span > < span class ="nt "> entry</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> pre-commit hazmat n1 example-bin --arg1 --</ span >
1198+ < span class ="w "> </ span > < span class ="nt "> args</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="p p-Indicator "> []</ span >
1199+ </ pre > </ div >
1200+ < h2 id ="automatically-enabling-pre-commit-on-repositories "> automatically enabling pre-commit on repositories < small > < a href ="#automatically-enabling-pre-commit-on-repositories " class ="text-decoration-none "> ¶</ a > </ small > </ h2 > < p > < code > pre-commit init-templatedir</ code > can be used to set up a skeleton for < code > git</ code > 's
11361201< code > init.templateDir</ code > option. This means that any newly cloned repository will
11371202automatically have the hooks set up without the need to run
11381203< code > pre-commit install</ code > .</ p >
0 commit comments