shahar1 opened a new pull request, #75718:
URL: https://github.com/apache/airflow/pull/75718

   <!-- HUMAN SUMMARY - AGENTS DO NOT MODIFY -->
   As-titled, CI-defining files should be gated.
   <!-- END OF HUMAN SUMMARY -->
   
   <details><summary>AI Summary</summary>
   
   The workflow run auto-approval added in #75455 has two rules. A PR whose CI 
runs in the contributor's fork is held for a maintainer when it changes a file 
the fork CI reconciler counts as CI-defining. A PR whose CI runs in the project 
was checked against a shorter list: `.github/`, `dev/breeze/` and `scripts/ci/`.
   
   Running the decision with real selective checks on main (54f645dd30) showed 
the effect:
   - A fork PR that changed only a `.pre-commit-config.yaml` had its runs 
approved without a maintainer's look. This holds for the root file (estimated 
274 job-minutes) and for nested ones such as 
`airflow-core/.pre-commit-config.yaml` (6 job-minutes). These files decide 
which static checks CI runs.
   - Changes to `Dockerfile*`, `scripts/docker/` and `scripts/in_container/` 
were refused, but only because selective checks currently run the full set of 
tests for them. Narrowing that selective-checks rule would have let them 
through.
   
   This PR makes the project rule use the existing 
`find_fork_ci_definition_files`. Both rules now read the reconciler's list, so 
a path added there applies to both. The docs that list the paths are updated.
   
   Not covered here, and the same for both rules: other files that CI runs, 
such as `scripts/tools/`, `devel-common/` or nested Dockerfiles like 
`airflow-e2e-tests/docker/*`. Widening `CI_DEFINING_PREFIXES` in 
`fork_ci_reconcile.py` would cover both rules.
   
   Checks run locally:
   - New parametrized cases in `test_decide_approval` for 
`.pre-commit-config.yaml`, `airflow-core/.pre-commit-config.yaml`, 
`Dockerfile.ci`, `scripts/docker/entrypoint_ci.sh` and 
`scripts/in_container/run_ci_tests.sh`. All five fail without the change.
   - `test_workflow_run_approval.py` and `test_fork_ci_reconcile.py`: 321 
passed.
   - `prek` pre-commit and manual stages passed. Skipped: `lychee-docker`, 
because Docker was unavailable in the session.
   - `breeze verify` commands (full `dev/breeze` suite and its integration 
tests): 23 failures in `test_packages.py`, `test_selective_checks.py`, 
`test_shim_version_check.py`, `test_workflow_commands.py` and the 
reproducible-build integration test. The 22 non-integration ones fail the same 
way with this change reverted. `test_publish_docs_to_s3.py` could not be 
collected locally (needs `botocore[crt]`).
   
   </details>
   
   related: #75455
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes — Claude Code (Opus 5.5)
   
   Generated-by: Claude Code (Opus 5.5) following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to