35
35
- id : doctoc
36
36
name : Add TOC for Markdown and RST files
37
37
files :
38
- ^README\.md$|^UPDATING.*\.md$|^chart/UPDATING.*\.md$|^dev/.*\.md$|^dev/.*\.rst$|^.github/.*\.md|^airflow-core/tests/system/README.md$
38
+ ^README\.md$|^UPDATING.*\.md$|^chart/UPDATING.*\.md$|^dev/.*\.md$|^dev/.*\.rst$|^\ .github/.*\.md|^airflow-core/tests/system/README\ .md$
39
39
args :
40
40
- " --maxlevel"
41
41
- " 2"
@@ -125,7 +125,7 @@ repos:
125
125
- --fuzzy-match-generates-todo
126
126
- id : insert-license
127
127
name : Add license for all YAML files except Helm templates
128
- exclude : ^\.github/.*$|^chart/templates/.*|.*reproducible_build.yaml$|^.*/v1-generated.yaml$|^.*/pnpm-lock.yaml$
128
+ exclude : ^\.github/.*$|^chart/templates/.*|.*reproducible_build\ .yaml$|^.*/v1-generated\ .yaml$|^.*/pnpm-lock\ .yaml$
129
129
types : [yaml]
130
130
files : \.ya?ml$
131
131
args :
@@ -154,7 +154,7 @@ repos:
154
154
- scripts/ci/license-templates/LICENSE.txt
155
155
- --fuzzy-match-generates-todo
156
156
files : >
157
- \.cfg$|\.conf$|\.ini$|\.ldif$|\.properties$|\.readthedocs$|\. service$|\.tf$|Dockerfile.*$
157
+ \.cfg$|\.conf$|\.ini$|\.ldif$|\.properties$|\.service$|\.tf$|Dockerfile.*$
158
158
- repo : local
159
159
hooks :
160
160
- id : check-min-python-version
@@ -175,7 +175,7 @@ repos:
175
175
entry : ./scripts/ci/pre_commit/update_black_version.py
176
176
stages : ['manual']
177
177
language : python
178
- files : ^.pre-commit-config.yaml$
178
+ files : ^\ .pre-commit-config\ .yaml$
179
179
additional_dependencies : ['pyyaml>=6.0.2']
180
180
pass_filenames : false
181
181
require_serial : true
@@ -184,7 +184,7 @@ repos:
184
184
entry : ./scripts/ci/pre_commit/update_installers_and_pre_commit.py
185
185
stages : ['manual']
186
186
language : python
187
- files : ^.pre-commit-config.yaml$|^scripts/ci/pre_commit/update_installers_and_pre_commit.py$
187
+ files : ^\ .pre-commit-config\ .yaml$|^scripts/ci/pre_commit/update_installers_and_pre_commit\ .py$
188
188
pass_filenames : false
189
189
require_serial : true
190
190
additional_dependencies : ['pyyaml>=6.0.2', 'rich>=12.4.4', 'requests>=2.31.0']
@@ -194,15 +194,15 @@ repos:
194
194
stages : ['manual']
195
195
language : python
196
196
additional_dependencies : ['pyyaml>=6.0.2', 'rich>=12.4.4', 'requests>=2.31.0']
197
- files : ^.pre-commit-config.yaml$|^scripts/ci/pre_commit/update_build_dependencies.py$
197
+ files : ^\ .pre-commit-config\ .yaml$|^scripts/ci/pre_commit/update_build_dependencies\ .py$
198
198
pass_filenames : false
199
199
require_serial : true
200
200
- id : check-taskinstance-tis-attrs
201
201
name : Check that TI and TIS have the same attributes
202
202
entry : ./scripts/ci/pre_commit/check_ti_vs_tis_attributes.py
203
203
language : python
204
204
additional_dependencies : ['rich>=12.4.4']
205
- files : ^airflow-core/src/airflow/models/taskinstance.py$|^airflow-core/src/airflow/models/taskinstancehistory.py$
205
+ files : ^airflow-core/src/airflow/models/taskinstance\ .py$|^airflow-core/src/airflow/models/taskinstancehistory\ .py$
206
206
pass_filenames : false
207
207
require_serial : true
208
208
- id : check-deferrable-default
@@ -236,10 +236,10 @@ repos:
236
236
name : Require literal syntax when initializing builtins
237
237
- id : detect-private-key
238
238
name : Detect if private key is added to the repository
239
- exclude : ^providers/ssh/docs/connections/ssh.rst$
239
+ exclude : ^providers/ssh/docs/connections/ssh\ .rst$
240
240
- id : end-of-file-fixer
241
241
name : Make sure that there is an empty line at the end
242
- exclude : ^airflow-core/docs/img/.*\.dot|^airflow-core/docs/img/.*\.sha256|.*/dist/.*|LICENSES-ui.txt
242
+ exclude : ^airflow-core/docs/img/.*\.dot|^airflow-core/docs/img/.*\.sha256|.*/dist/.*|LICENSES-ui\ .txt$
243
243
- id : mixed-line-ending
244
244
name : Detect if mixed line ending is used (\r vs. \r\n)
245
245
- id : check-executables-have-shebangs
@@ -248,7 +248,7 @@ repos:
248
248
name : Check XML files with xmllint
249
249
- id : trailing-whitespace
250
250
name : Remove trailing whitespace at end of line
251
- exclude : ^airflow-core/docs/img/.*\.dot|^dev/breeze/doc/images/output.*$
251
+ exclude : ^airflow-core/docs/img/.*\.dot$ |^dev/breeze/doc/images/output.*$
252
252
- id : fix-encoding-pragma
253
253
name : Remove encoding header from Python files
254
254
args :
@@ -284,7 +284,7 @@ repos:
284
284
.*/v1-generated\.yaml$|
285
285
^.*openapi.*\.yaml$|
286
286
^\.pre-commit-config\.yaml$|
287
- ^.*reproducible_build.yaml$|
287
+ ^.*reproducible_build\ .yaml$|
288
288
^.*pnpm-lock\.yaml$
289
289
- repo : https://github.com/ikamensh/flynt
290
290
rev : ' 1.0.1'
@@ -319,7 +319,7 @@ repos:
319
319
- id : zizmor
320
320
name : Run zizmor to check for github workflow syntax errors
321
321
types : [yaml]
322
- files : \.github/workflows/.*$|\.github/actions/.*$
322
+ files : ^ \.github/workflows/.*$|^ \.github/actions/.*$
323
323
require_serial : true
324
324
entry : zizmor
325
325
- repo : local
@@ -353,13 +353,13 @@ repos:
353
353
pass_filenames : true
354
354
files : |
355
355
(?x)
356
- ^providers/[^\/]*/src/airflow/providers/[^\/]*/__init__.py$|
357
- ^providers/[^\/]*/[^\/]*/src/airflow/providers/[^\/]*/[^\/]*/__init__.py$|
356
+ ^providers/[^\/]*/src/airflow/providers/[^\/]*/__init__\ .py$|
357
+ ^providers/[^\/]*/[^\/]*/src/airflow/providers/[^\/]*/[^\/]*/__init__\ .py$|
358
358
^providers/.*/pyproject\.toml$|
359
- ^providers/.*/provider.yaml$|
360
- ^airflow_breeze/templates/PROVIDER__INIT__PY_TEMPLATE.py.jinja2$
361
- ^airflow_breeze/templates/get_provider_info_TEMPLATE.py.jinja2$
362
- ^airflow_breeze/templates/PROVIDER_README_TEMPLATE.rst.jinja2$
359
+ ^providers/.*/provider\ .yaml$|
360
+ ^airflow_breeze/templates/PROVIDER__INIT__PY_TEMPLATE\ .py\ .jinja2$|
361
+ ^airflow_breeze/templates/get_provider_info_TEMPLATE\ .py\ .jinja2$|
362
+ ^airflow_breeze/templates/PROVIDER_README_TEMPLATE\ .rst\ .jinja2$
363
363
additional_dependencies : ['rich>=12.4.4','requests>=2.31.0']
364
364
require_serial : true
365
365
- id : ruff
@@ -371,7 +371,7 @@ repos:
371
371
args : [--fix]
372
372
require_serial : true
373
373
additional_dependencies : ['ruff==0.11.2']
374
- exclude : ^airflow-core/tests/unit/dags/test_imports.py|^performance/tests/test_.*.py
374
+ exclude : ^airflow-core/tests/unit/dags/test_imports\ .py$ |^performance/tests/test_.*\ .py$
375
375
- id : ruff-format
376
376
name : Run 'ruff format'
377
377
description : " Run 'ruff format' for extremely fast Python formatting"
@@ -381,7 +381,7 @@ repos:
381
381
args : []
382
382
require_serial : true
383
383
additional_dependencies : ['ruff==0.11.2']
384
- exclude : ^airflow-core/tests/unit/dags/test_imports.py$
384
+ exclude : ^airflow-core/tests/unit/dags/test_imports\ .py$
385
385
- id : replace-bad-characters
386
386
name : Replace bad characters
387
387
entry : ./scripts/ci/pre_commit/replace_bad_characters.py
@@ -415,7 +415,7 @@ repos:
415
415
- id : check-airflow-providers-bug-report-template
416
416
name : Sort airflow-bug-report provider list
417
417
language : python
418
- files : ^.github/ISSUE_TEMPLATE/airflow_providers_bug_report\.yml$
418
+ files : ^\ .github/ISSUE_TEMPLATE/airflow_providers_bug_report\.yml$
419
419
require_serial : true
420
420
entry : ./scripts/ci/pre_commit/check_airflow_bug_report_template.py
421
421
additional_dependencies : ['rich>=12.4.4', 'pyyaml>=6.0.2']
@@ -445,7 +445,7 @@ repos:
445
445
name : Checks setup extra packages
446
446
description : Checks if all the extras defined in hatch_build.py are listed in extra-packages-ref.rst file
447
447
language : python
448
- files : ^airflow-core/docs/extra-packages-ref\.rst$|^hatch_build.py
448
+ files : ^airflow-core/docs/extra-packages-ref\.rst$|^hatch_build\ .py$
449
449
pass_filenames : false
450
450
entry : ./scripts/ci/pre_commit/check_extra_packages_ref.py
451
451
additional_dependencies : ['rich>=12.4.4', 'hatchling==1.27.0', 'tabulate>=0.9.0']
@@ -467,7 +467,7 @@ repos:
467
467
name : Generate volumes for docker compose
468
468
entry : ./scripts/ci/pre_commit/generate_volumes_for_sources.py
469
469
language : python
470
- files : ^providers/.*/provider.yaml$
470
+ files : ^providers/.*/provider\ .yaml$
471
471
pass_filenames : false
472
472
require_serial : true
473
473
additional_dependencies : ['rich>=12.4.4']
@@ -488,14 +488,14 @@ repos:
488
488
^scripts/ci/pre_commit/version_heads_map\.py$|
489
489
^airflow-core/src/airflow/migrations/versions/.*$|^airflow-core/src/airflow/migrations/versions|
490
490
^providers/fab/src/airflow/providers/fab/migrations/versions/.*$|^providers/fab/src/airflow/providers/fab/migrations/versions|
491
- ^airflow-core/src/airflow/utils/db.py$|
492
- ^providers/fab/src/airflow/providers/fab/auth_manager/models/db.py$
491
+ ^airflow-core/src/airflow/utils/db\ .py$|
492
+ ^providers/fab/src/airflow/providers/fab/auth_manager/models/db\ .py$
493
493
additional_dependencies : ['packaging>=23.2', 'rich>=12.4.4']
494
494
- id : update-version
495
495
name : Update versions in docs
496
496
entry : ./scripts/ci/pre_commit/update_versions.py
497
497
language : python
498
- files : ^docs|^airflow-core/src/airflow/__init__.py$
498
+ files : ^docs|^airflow-core/src/airflow/__init__\ .py$
499
499
pass_filenames : false
500
500
additional_dependencies : ['rich>=12.4.4']
501
501
- id : check-pydevd-left-in-code
@@ -597,8 +597,8 @@ repos:
597
597
^providers/opsgenie/src/airflow/providers/opsgenie/hooks/opsgenie\.py$|
598
598
^providers/redis/src/airflow/providers/redis/provider\.yaml$|
599
599
^airflow-core/src/airflow/serialization/serialized_objects\.py$|
600
- ^airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui/pnpm-lock.yaml|
601
- ^airflow-core/src/airflow/ui/pnpm-lock.yaml$|
600
+ ^airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui/pnpm-lock\ .yaml$ |
601
+ ^airflow-core/src/airflow/ui/pnpm-lock\ .yaml$|
602
602
^airflow-core/src/airflow/utils/db\.py$|
603
603
^airflow-core/src/airflow/utils/trigger_rule\.py$|
604
604
^chart/values.schema\.json$|
@@ -619,11 +619,11 @@ repos:
619
619
^devel-common/src/sphinx_exts/removemarktransform\.py|
620
620
^airflow-core/newsfragments/41761.significant\.rst$|
621
621
^scripts/ci/pre_commit/vendor_k8s_json_schema\.py$|
622
- ^scripts/ci/docker-compose/integration-keycloak.yml$|
623
- ^scripts/ci/docker-compose/keycloak/keycloak-entrypoint.sh$|
622
+ ^scripts/ci/docker-compose/integration-keycloak\ .yml$|
623
+ ^scripts/ci/docker-compose/keycloak/keycloak-entrypoint\ .sh$|
624
624
^airflow-core/tests/|
625
625
^providers/.*/tests/|
626
- ^.pre-commit-config\.yaml$|
626
+ ^\ .pre-commit-config\.yaml$|
627
627
^.*CHANGELOG\.(rst|txt)$|
628
628
^.*changelog\.(rst|txt)$|
629
629
^.*commits\.(rst|txt)$|
@@ -814,7 +814,7 @@ repos:
814
814
- id : compile-fab-assets
815
815
name : Compile FAB provider assets
816
816
language : node
817
- ' types_or ' : [ javascript, ts, tsx ]
817
+ ' types_or ' : [javascript, ts, tsx]
818
818
files : ^providers/fab/.*/www/
819
819
entry : ./scripts/ci/pre_commit/compile_fab_assets.py
820
820
pass_filenames : false
@@ -850,7 +850,7 @@ repos:
850
850
name : Sync integrations list with docs
851
851
entry : ./scripts/ci/pre_commit/check_integrations_list.py
852
852
language : python
853
- files : ^scripts/ci/docker-compose/integration-.*\.yml$|^contributing-docs/testing/integration_tests.rst$
853
+ files : ^scripts/ci/docker-compose/integration-.*\.yml$|^contributing-docs/testing/integration_tests\ .rst$
854
854
additional_dependencies : ['black==24.10.0', 'tabulate>=0.9.0', 'rich>=12.4.4', 'pyyaml>=6.0.2']
855
855
require_serial : true
856
856
pass_filenames : false
@@ -866,15 +866,15 @@ repos:
866
866
name : Update Airflow's meta-package pyproject.toml
867
867
language : python
868
868
entry : ./scripts/ci/pre_commit/update_airflow_pyproject_toml.py
869
- files : ^pyproject.toml$
869
+ files : ^pyproject\ .toml$
870
870
pass_filenames : false
871
871
require_serial : true
872
872
additional_dependencies : ['rich>=12.4.4', 'tomli>=2.0.1']
873
873
- id : update-reproducible-source-date-epoch
874
874
name : Update Source Date Epoch for reproducible builds
875
875
language : python
876
876
entry : ./scripts/ci/pre_commit/update_source_date_epoch.py
877
- files : ^RELEASE_NOTES.rst$|^chart/RELEASE_NOTES.rst$
877
+ files : ^RELEASE_NOTES\ .rst$|^chart/RELEASE_NOTES\ .rst$
878
878
additional_dependencies : ['rich>=12.4.4', 'pyyaml>=6.0.2']
879
879
pass_filenames : false
880
880
require_serial : true
@@ -891,7 +891,7 @@ repos:
891
891
name : Check if tests are in the right folders
892
892
entry : ./scripts/ci/pre_commit/check_tests_in_right_folders.py
893
893
language : python
894
- files : ^airflow-core/tests/.*\.py
894
+ files : ^airflow-core/tests/.*\.py$
895
895
pass_filenames : true
896
896
require_serial : true
897
897
additional_dependencies : ['rich>=12.4.4']
@@ -950,7 +950,7 @@ repos:
950
950
exclude : >
951
951
(?x)
952
952
^scripts/ci/docker-compose/grafana/.|
953
- ^scripts/ci/docker-compose/.+-config\.ya?ml
953
+ ^scripts/ci/docker-compose/.+-config\.ya?ml$
954
954
require_serial : true
955
955
additional_dependencies : ['jsonschema>=3.2.0,<5.0', 'pyyaml>=6.0.2', 'requests==2.32.3', 'rich>=12.4.4']
956
956
- id : lint-json-schema
@@ -1054,7 +1054,7 @@ repos:
1054
1054
- id : check-newsfragments-are-valid
1055
1055
name : Check newsfragments are valid
1056
1056
language : python
1057
- files : newsfragments/.*\.rst
1057
+ files : newsfragments/.*\.rst$
1058
1058
entry : ./scripts/ci/pre_commit/newsfragments.py
1059
1059
pass_filenames : true
1060
1060
# We sometimes won't have newsfragments in the repo, so always run it so `check-hooks-apply` passes
@@ -1064,7 +1064,7 @@ repos:
1064
1064
name : Check significant newsfragments are valid
1065
1065
# Significant newsfragments follows a special format so that we can group information easily.
1066
1066
language : python
1067
- files : airflow-core/newsfragments/.*\.rst
1067
+ files : airflow-core/newsfragments/.*\.rst$
1068
1068
entry : ./scripts/ci/pre_commit/significant_newsfragments_checker.py
1069
1069
pass_filenames : false
1070
1070
additional_dependencies : ['docutils>=0.21.2', 'pygments>=2.19.1', 'jinja2>=3.1.5']
@@ -1080,8 +1080,8 @@ repos:
1080
1080
(?x)
1081
1081
^dev/breeze/.*$|
1082
1082
^\.pre-commit-config\.yaml$|
1083
- ^scripts/ci/pre_commit/breeze_cmd_line.py$|
1084
- ^generated/provider_dependencies.json$
1083
+ ^scripts/ci/pre_commit/breeze_cmd_line\ .py$|
1084
+ ^generated/provider_dependencies\ .json$
1085
1085
require_serial : true
1086
1086
pass_filenames : false
1087
1087
additional_dependencies : ['rich>=12.4.4']
@@ -1125,7 +1125,7 @@ repos:
1125
1125
name : Validate provider doc files
1126
1126
entry : ./scripts/ci/pre_commit/check_provider_docs.py
1127
1127
language : python
1128
- files : ^providers/.*/provider\.yaml|^.*/docs/.*
1128
+ files : ^providers/.*/provider\.yaml$ |^.*/docs/.*
1129
1129
additional_dependencies : ['rich>=12.4.4', 'pyyaml>=6.0.2', 'jinja2']
1130
1130
require_serial : true
1131
1131
pass_filenames : false
@@ -1135,7 +1135,7 @@ repos:
1135
1135
entry : bandit
1136
1136
language : python
1137
1137
language_version : python3
1138
- types : [ python ]
1138
+ types : [python]
1139
1139
additional_dependencies : ['bandit==1.7.6']
1140
1140
require_serial : true
1141
1141
files : ^airflow-core/src/airflow/.*
@@ -1152,7 +1152,7 @@ repos:
1152
1152
entry : pylint
1153
1153
language : python
1154
1154
language_version : python3
1155
- types : [ python ]
1155
+ types : [python]
1156
1156
additional_dependencies : ['pylint==3.1.0']
1157
1157
require_serial : true
1158
1158
files : ^airflow-core/src/airflow/.*
@@ -1274,7 +1274,7 @@ repos:
1274
1274
name : Run mypy for airflow-ctl
1275
1275
language : python
1276
1276
entry : ./scripts/ci/pre_commit/mypy.py
1277
- files : ^airflow-ctl/src/airflowctl/.*\.py$|^airflow-ctl/tests// .*\.py$
1277
+ files : ^airflow-ctl/src/airflowctl/.*\.py$|^airflow-ctl/tests/.*\.py$
1278
1278
require_serial : true
1279
1279
additional_dependencies : ['rich>=12.4.4']
1280
1280
- id : mypy-airflow-ctl
@@ -1301,8 +1301,9 @@ repos:
1301
1301
types_or : [javascript, ts, tsx, yaml, css, json]
1302
1302
files : |
1303
1303
(?x)
1304
- ^airflow-core/src/airflow/ui/|^airflow-core/src/airflow/api_fastapi/core_api/openapi/v1-generated\.yaml$ |
1305
- ^airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui/ |
1304
+ ^airflow-core/src/airflow/ui/|
1305
+ ^airflow-core/src/airflow/api_fastapi/core_api/openapi/v1-generated\.yaml$|
1306
+ ^airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui/|
1306
1307
^airflow-core/src/airflow/api_fastapi/auth/managers/simple/openapi/v1-generated\.yaml$
1307
1308
entry : ./scripts/ci/pre_commit/compile_lint_ui.py
1308
1309
additional_dependencies :
['[email protected] ']
@@ -1350,5 +1351,5 @@ repos:
1350
1351
additional_dependencies : ['rich>=12.4.4']
1351
1352
require_serial : true
1352
1353
pass_filenames : false
1353
- files : ^airflow-core/src/airflow/config_templates/config.yml
1354
+ files : ^airflow-core/src/airflow/config_templates/config\ .yml$
1354
1355
# # ONLY ADD PRE-COMMITS HERE THAT REQUIRE CI IMAGE
0 commit comments