This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a change to branch enable-auto-merge
in repository https://gitbox.apache.org/repos/asf/airflow.git


    omit e80819f3887 Enable auto-merge, gated on a dedicated CI passed check
     add f20ff2cfa7a Add a Duplicate action to the Connections list (#75110)
     add 4bbe5f56ce8 Mask CLI secrets in the audit log by parsed argument, not 
argv position (#72650)
     add c1b25527a41 Keep parent DAG folders collapsed after one click (#75079)
     add c581c186987 Keep DAG folder selection distinct across bundle names 
(#75080)
     add b8db2af9cd6 Fix 500 when ordering the Dag list by state or start_date 
(#75025)
     add 3134ac232fa Add AwsEksExecutor to the Amazon provider (#74399)
     add 5a64dfcc78e Java SDK: Add edge labels to native Dags (#74523)
     add 51411acb7e5 Fix empty audit log dag_id for DAG.cli() subcommands 
(#73379)
     add 11ed2049e12 Fix stale-session assertion in mapped placeholder 
promotion test (#75175)
     add 99b90b0e4a4 Update Magpie floor to 0.9.0.dev202610192305 (#75174)
     add c6e4d52f61b Complete Hindi (hi) UI translations (#75057)
     add 9091cd0c7b0 Java SDK: Send log timestamps in UTC (#74783)
     add 3e69e05f0d3 Unexclude Vespa on Python 3.14 (#75062)
     add 94ce2c9f998 TS SDK: Collect dag_dependencies in the tasks pass (#75032)
     add bd29fed01b6 Fix breeze translation key sorting to match the UI ESLint 
rule (#75065)
     add 0a4b5d8e495 [main] Upgrade important CI environment (#73822)
     add 6aee277d4a9 Fix log template sync failing when a custom SQL Alchemy 
schema is configured (#70793)
     add 7126d336e94 Log the retry reason in airflowctl API client retries 
(#75059)
     add 1c4af038874 Java SDK: Reject IDs that collide with task group join 
nodes (#74781)
     add eaefdf9c160 Fix duplicate pyvespa block in uv.lock (#75200)
     add 249e5cbcbc1 Fix Modal contract test importing a private class from its 
old location (#75188)
     add 347dd398d62 Require uv 0.13.1 (#75201)
     add 31bb7edc69c Add emit_message_history to record an agent transcript 
without seeding it (#74811)
     add b7b69d70389 Skip or fail ECS tasks correctly when their CloudWatch log 
stream is missing (#74730)
     add 1d63c9cbedb Exclude minimal and ECS Amazon Linux AMIs in 
get_latest_ami_id (#75171)
     add b0cfa1e1b1b Stop the EKS executor concurrency test from starving its 
own builders (#75197)
     add 12df3270b84 Clean up unused mypy suppressions in standard provider 
tests (#75210)
     add 359d361de93 Base CI and PROD images on hardened Python images (#73038)
     add 1bd0a764d34 Distinguish invalid Dag access control from FAB backend 
failures (#74788)
     add 99eff4608f9 Keep the token cookie set by a route in 
JWTRefreshMiddleware (#75217)
     add 31994976b54 Add emailer utilities to the SMTP provider (#74623)
     add 8a5212c855e Fix Dag run filtering for null start dates (#71654)
     add 4ab76ad9d1f Make KubernetesPodOperator event logging best-effort and 
optional (#75016)
     add 6639577b61e Put the PROD build virtualenv before /usr/python/bin on 
PATH (#75236)
     add 5fa997cf002 Add YAML Dag schema publishing infra (#75055)
     add 9f1be063d49 Skip inclusive-language check for non-English UI 
translations (#75247)
     add 6d8a58bff74 Exempt Google Cloud link modules from provider test-file 
check (#74924)
     add 4ca5754ade4 UI: Show a label instead of a broken link for hidden 
assets (#75178)
     add 57ed6e7bcb6 UI: Add regression tests for Dags list rows remounting on 
refresh (#75005)
     add 55c47dd05e7 Enable auto-merge, gated on a dedicated CI passed check

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (e80819f3887)
            \
             N -- N -- N   refs/heads/enable-auto-merge (55c47dd05e7)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .apache-magpie.lock                                |    6 +-
 .../actions/build_ci_image_with_cache/action.yml   |   10 +-
 .github/workflows/ci-image-build.yml               |   19 +-
 .github/workflows/mirror-hardened-base-images.yml  |   80 +
 .github/workflows/prod-image-build.yml             |    9 +-
 .github/workflows/publish-docs-to-s3.yml           |   20 +-
 .github/workflows/push-image-cache.yml             |    4 +-
 .../scheduled-legacy-prod-image-canary.yml         |  262 +
 .pre-commit-config.yaml                            |    6 +-
 Dockerfile                                         |  451 +-
 Dockerfile.ci                                      |  443 +-
 .../language-sdks/java.rst                         |   54 +-
 .../docs/authoring-and-scheduling/yaml-dags.rst    |    4 +-
 airflow-core/docs/best-practices.rst               |    2 +-
 airflow-core/newsfragments/73038.significant.rst   |   31 +
 airflow-core/pyproject.toml                        |    4 +-
 .../api_fastapi/auth/middlewares/refresh_token.py  |   23 +-
 .../airflow/api_fastapi/common/parameters/range.py |   39 +-
 .../api_fastapi/core_api/openapi/_private_ui.yaml  |    4 +-
 .../core_api/openapi/v2-rest-api-generated.yaml    |    4 +-
 .../api_fastapi/core_api/routes/public/dag_run.py  |    9 +-
 .../api_fastapi/core_api/routes/public/dags.py     |    2 +-
 .../airflow/api_fastapi/core_api/routes/ui/dags.py |    2 +-
 airflow-core/src/airflow/models/backfill.py        |    5 +-
 airflow-core/src/airflow/models/dag.py             |    7 +-
 airflow-core/src/airflow/models/dagrun.py          |    4 +-
 .../ui/openapi-gen/queries/ensureQueryData.ts      |    4 +-
 .../src/airflow/ui/openapi-gen/queries/prefetch.ts |    4 +-
 .../src/airflow/ui/openapi-gen/queries/queries.ts  |    4 +-
 .../src/airflow/ui/openapi-gen/queries/suspense.ts |    4 +-
 .../ui/openapi-gen/requests/services.gen.ts        |    4 +-
 .../airflow/ui/openapi-gen/requests/types.gen.ts   |    4 +-
 .../airflow/ui/public/i18n/locales/en/admin.json   |    2 +
 .../airflow/ui/public/i18n/locales/en/common.json  |    1 +
 .../airflow/ui/public/i18n/locales/hi/admin.json   |   15 +-
 .../airflow/ui/public/i18n/locales/hi/assets.json  |   16 +-
 .../airflow/ui/public/i18n/locales/hi/browse.json  |   32 +
 .../airflow/ui/public/i18n/locales/hi/common.json  |  150 +-
 .../ui/public/i18n/locales/hi/components.json      |   45 +-
 .../src/airflow/ui/public/i18n/locales/hi/dag.json |  133 +-
 .../airflow/ui/public/i18n/locales/hi/dags.json    |   54 +-
 .../ui/public/i18n/locales/hi/dashboard.json       |   17 +-
 .../AssetExpression/AssetNode.test.tsx}            |   37 +-
 .../src/components/AssetExpression/AssetNode.tsx   |   13 +-
 .../ui/src/pages/Connections/Connections.tsx       |    2 +
 .../Connections/DuplicateConnectionButton.test.tsx |  114 +
 ...ionButton.tsx => DuplicateConnectionButton.tsx} |   64 +-
 .../DagsList/DagFolderTree/DagFolderTree.test.tsx  |   78 +-
 .../pages/DagsList/DagFolderTree/DagFolderTree.tsx |    6 +-
 .../DagsList/DagFolderTree/buildFolderTree.ts      |    3 +-
 .../ui/src/pages/DagsList/DagsList.test.tsx        |   80 +-
 airflow-core/src/airflow/utils/cli.py              |  391 +-
 airflow-core/src/airflow/utils/db.py               |   14 +-
 .../tests/unit/always/test_project_structure.py    |   55 +-
 .../auth/middlewares/test_refresh_token.py         |   51 +
 .../unit/api_fastapi/common/test_parameters.py     |   19 +
 .../core_api/routes/public/test_dag_run.py         |   17 +
 .../core_api/routes/public/test_dags.py            |   12 +
 .../api_fastapi/core_api/routes/ui/test_dags.py    |   12 +
 .../tests/unit/models/test_mappedoperator.py       |   16 +-
 airflow-core/tests/unit/utils/test_cli_util.py     |  762 +-
 airflow-core/tests/unit/utils/test_db.py           |   50 +-
 airflow-ctl/pyproject.toml                         |    2 +-
 airflow-ctl/src/airflowctl/api/client.py           |    4 +-
 .../airflowctl/api/datamodels/auth_generated.py    |    2 +-
 .../src/airflowctl/api/datamodels/generated.py     |    2 +-
 airflow-ctl/tests/airflow_ctl/api/test_client.py   |   31 +
 airflow-e2e-tests/docker/Dockerfile.java           |   23 +-
 airflow-e2e-tests/pyproject.toml                   |    2 +-
 contributing-docs/30_new_language_sdk.rst          |   12 +-
 dev/breeze/doc/09_release_management_tasks.rst     |   38 +-
 dev/breeze/doc/ci/02_images.md                     |   24 +-
 dev/breeze/doc/images/output_ci-image_build.svg    |   94 +-
 dev/breeze/doc/images/output_ci-image_build.txt    |    2 +-
 dev/breeze/doc/images/output_prod-image_build.svg  |  164 +-
 dev/breeze/doc/images/output_prod-image_build.txt  |    2 +-
 .../doc/images/output_release-management.svg       |   38 +-
 .../doc/images/output_release-management.txt       |    2 +-
 ...utput_release-management_mirror-base-images.svg |  116 +
 ...utput_release-management_mirror-base-images.txt |    1 +
 ...ut_release-management_publish-schemas-to-s3.svg |   34 +-
 ...ut_release-management_publish-schemas-to-s3.txt |    2 +-
 .../output_setup_check-all-params-in-groups.svg    |   20 +-
 .../output_setup_check-all-params-in-groups.txt    |    2 +-
 .../output_setup_regenerate-command-images.svg     |    2 +-
 .../output_setup_regenerate-command-images.txt     |    2 +-
 dev/breeze/pyproject.toml                          |    2 +-
 .../airflow_breeze/commands/ci_image_commands.py   |    4 -
 .../commands/ci_image_commands_config.py           |    1 -
 .../commands/common_image_options.py               |   10 +
 .../airflow_breeze/commands/kubernetes_commands.py |   12 +-
 .../commands/production_image_commands.py          |    4 +
 .../commands/production_image_commands_config.py   |    1 +
 .../commands/release_management_commands.py        |  115 +-
 .../commands/release_management_commands_config.py |   10 +
 .../src/airflow_breeze/commands/ui_commands.py     |   65 +-
 dev/breeze/src/airflow_breeze/global_constants.py  |   42 +-
 .../src/airflow_breeze/params/build_prod_params.py |   11 +
 .../airflow_breeze/params/common_build_params.py   |    6 +-
 .../airflow_breeze/utils/check_release_files.py    |    2 +-
 .../src/airflow_breeze/utils/publish_docs_to_s3.py |    6 +-
 dev/breeze/tests/test_build_prod_params.py         |   82 +
 dev/breeze/tests/test_environment_check.py         |    2 +-
 .../tests/test_kubernetes_lang_sdk_commands.py     |   45 +
 dev/breeze/tests/test_mirror_base_images.py        |   98 +
 dev/breeze/tests/test_selective_checks.py          |    1 -
 dev/breeze/tests/test_ui_commands.py               |   28 +-
 dev/breeze/uv.lock                                 | 1132 +--
 dev/mypy/pyproject.toml                            |    2 +-
 devel-common/pyproject.toml                        |    4 +-
 docker-stack-docs/build-arg-ref.rst                |   30 +-
 docker-stack-docs/build.rst                        |  128 +-
 docker-stack-docs/changelog.rst                    |   43 +
 .../customizing/add-build-essential-custom.sh      |    4 +-
 .../docker-examples/customizing/custom-sources.sh  |    4 +-
 .../customizing/pypi-dev-runtime-deps.sh           |    4 +-
 .../customizing/pypi-extras-and-deps.sh            |    4 +-
 .../customizing/pypi-selected-version.sh           |    4 +-
 .../extending/add-providers/Dockerfile             |    4 +-
 .../restricted/restricted_environments.sh          |    4 +-
 docs/spelling_wordlist.txt                         |    4 +
 .../example/nativedag/AnnotationExample.java       |    5 +-
 .../example/nativedag/InterfaceExample.java        |    6 +-
 java-sdk/gradle/verification-metadata.xml          |   13 -
 .../org/apache/airflow/sdk/AirflowProcessor.kt     |   15 +-
 .../org/apache/airflow/sdk/AirflowProcessorTest.kt |  202 +
 .../ci/prek/check_serialization_conformance.py     |    2 +-
 java-sdk/sdk/build.gradle.kts                      |    1 -
 .../main/kotlin/org/apache/airflow/sdk/DagDef.kt   |   84 +-
 .../src/main/kotlin/org/apache/airflow/sdk/Deps.kt |   69 +-
 .../main/kotlin/org/apache/airflow/sdk/Label.kt    |   93 +
 .../kotlin/org/apache/airflow/sdk/TaskGroupRef.kt  |   13 +-
 .../org/apache/airflow/sdk/execution/Logger.kt     |   16 +-
 .../org/apache/airflow/sdk/execution/Serde.kt      |   52 +-
 .../kotlin/org/apache/airflow/sdk/internal/Ids.kt  |   13 +
 .../kotlin/org/apache/airflow/sdk/EdgeLabelTest.kt |  323 +
 .../kotlin/org/apache/airflow/sdk/TaskGroupTest.kt |   98 +
 .../airflow/sdk/conformance/SerializeJava.kt       |    6 +-
 .../org/apache/airflow/sdk/execution/LogTest.kt    |   62 +
 kubernetes-tests/lang_sdk/Dockerfile.runtimes      |   23 +-
 providers/.pre-commit-config.yaml                  |    2 +-
 providers/amazon/README.rst                        |    4 +-
 providers/amazon/docs/executors/eks-executor.rst   |  223 +
 providers/amazon/docs/executors/general.rst        |    6 +-
 providers/amazon/docs/executors/index.rst          |    4 +
 providers/amazon/docs/index.rst                    |    4 +-
 providers/amazon/provider.yaml                     |   41 +
 providers/amazon/pyproject.toml                    |    4 +-
 .../amazon/aws/executors/eks}/__init__.py          |    7 +-
 .../amazon/aws/executors/eks/_client_factory.py    |  170 +
 .../amazon/aws/executors/eks/eks_executor.py       |  189 +
 .../providers/amazon/aws/executors/eks/utils.py}   |   34 +-
 .../providers/amazon/aws/utils/eks_get_token.py    |   17 +-
 .../providers/amazon/aws/utils/task_log_fetcher.py |   24 +-
 .../airflow/providers/amazon/get_provider_info.py  |   34 +
 .../src/airflow/providers/amazon/version_compat.py |    2 +
 .../amazon/tests/system/amazon/aws/utils/ec2.py    |   29 +-
 .../unit/amazon/aws/executors/eks}/__init__.py     |    0
 .../aws/executors/eks/test__client_factory.py      |  264 +
 .../amazon/aws/executors/eks/test_eks_executor.py  |  238 +
 .../unit/amazon/aws/executors/eks/test_utils.py    |   21 +-
 .../tests/unit/amazon/aws/operators/test_ecs.py    |   22 +
 .../unit/amazon/aws/utils/test_eks_get_token.py    |   53 +-
 .../unit/amazon/aws/utils/test_task_log_fetcher.py |    8 +
 providers/cncf/kubernetes/docs/operators.rst       |   37 +
 .../providers/cncf/kubernetes/operators/pod.py     |   20 +-
 .../providers/cncf/kubernetes/triggers/pod.py      |   68 +-
 .../providers/cncf/kubernetes/utils/pod_manager.py |   52 +-
 .../unit/cncf/kubernetes/operators/test_pod.py     |   54 +
 .../unit/cncf/kubernetes/triggers/test_pod.py      |   47 +
 .../unit/cncf/kubernetes/utils/test_pod_manager.py |   69 +
 providers/common/ai/docs/message_history.rst       |   10 +-
 providers/common/ai/docs/operators/agent.rst       |    3 +
 providers/common/ai/docs/stability.rst             |    4 +
 providers/common/ai/docs/troubleshooting.rst       |    2 +-
 providers/common/ai/provider.yaml                  |    2 +
 .../providers/common/ai/get_provider_info.py       |    2 +
 .../airflow/providers/common/ai/operators/agent.py |   14 +-
 .../providers/common/ai/utils/sql_validation.py    |   12 +-
 .../tests/unit/common/ai/operators/test_agent.py   |   45 +-
 .../ai/tests/unit/common/ai/operators/test_llm.py  |    5 +-
 .../ai/tests/unit/common/ai/sandbox/test_modal.py  |    3 +-
 .../tests/unit/common/ai/test_provider_metadata.py |   19 +-
 .../unit/common/ai/utils/test_prompt_cache.py      |   38 +-
 .../unit/common/ai/utils/test_sql_validation.py    |    4 +-
 .../fab/auth_manager/security_manager/override.py  |   10 +-
 .../tests/unit/fab/auth_manager/test_security.py   |   39 +-
 providers/google/README.rst                        |   16 +-
 providers/google/docs/index.rst                    |   16 +-
 providers/google/pyproject.toml                    |   16 +-
 .../tests/unit/google/cloud/links/test_alloy_db.py |   62 -
 .../unit/google/cloud/links/test_managed_kafka.py  |   79 -
 providers/hashicorp/docs/index.rst                 |    2 +-
 providers/hashicorp/pyproject.toml                 |    2 +-
 providers/microsoft/azure/README.rst               |    2 +-
 providers/microsoft/azure/docs/index.rst           |    2 +-
 providers/microsoft/azure/pyproject.toml           |    2 +-
 providers/smtp/docs/index.rst                      |    1 +
 .../smtp/docs/utils/emailer.rst                    |   19 +
 providers/smtp/provider.yaml                       |    3 +
 .../airflow/providers/smtp/get_provider_info.py    |    1 +
 .../src/airflow/providers/smtp/utils}/__init__.py  |    0
 .../src/airflow/providers/smtp/utils/emailer.py    |    9 +-
 .../smtp/tests/unit/smtp/utils}/__init__.py        |    0
 .../smtp/tests/unit/smtp/utils/test_emailer.py     |  185 +-
 providers/snowflake/README.rst                     |    1 +
 providers/snowflake/docs/index.rst                 |    1 +
 providers/snowflake/pyproject.toml                 |    5 +
 .../tests/unit/standard/decorators/test_bash.py    |    2 +-
 .../tests/unit/standard/decorators/test_python.py  |   12 +-
 .../unit/standard/decorators/test_short_circuit.py |    2 +-
 .../unit/standard/operators/test_latest_only.py    |    2 +-
 .../unit/standard/sensors/test_external_task.py    |   12 +-
 .../tests/unit/standard/sensors/test_time_delta.py |    4 +-
 .../tests/unit/standard/sensors/test_weekday.py    |    2 +-
 providers/vespa/README.rst                         |   11 +-
 providers/vespa/docs/changelog.rst                 |    5 +
 providers/vespa/docs/index.rst                     |    9 +-
 providers/vespa/provider.yaml                      |    3 -
 providers/vespa/pyproject.toml                     |    6 +-
 pyproject.toml                                     |    8 +-
 scripts/ci/prek/check_imports_in_providers.py      |    2 +-
 scripts/ci/prek/generate_yaml_importer_schema.py   |    1 +
 scripts/ci/prek/ruff_format.py                     |    2 +-
 scripts/ci/prek/update_docker_gpg_keys.py          |    2 +
 scripts/ci/prek/upgrade_important_versions.py      |   82 +-
 scripts/docker/common.sh                           |   16 +-
 scripts/docker/entrypoint_ci.sh                    |    5 +-
 scripts/docker/install_mssql.sh                    |    4 +-
 scripts/docker/install_mysql.sh                    |   17 +-
 scripts/docker/install_os_dependencies.sh          |  353 +-
 scripts/docker/install_postgres.sh                 |    2 +-
 scripts/docker/keys/microsoft-2025.asc             |   29 +
 scripts/in_container/run_ci_tests.sh               |   11 +-
 .../ci/prek/test_upgrade_important_versions.py     |   62 +
 scripts/tools/setup_breeze                         |    2 +-
 .../src/airflow/sdk/api/datamodels/_generated.py   |    2 +-
 task-sdk/src/airflow/sdk/definitions/dag.py        |    3 +
 .../sdk/definitions/decorators/__init__.pyi        |    8 +
 .../src/airflow/sdk/execution_time/supervisor.py   |   10 +-
 .../sdk/importers/yaml_importer/importer.py        |   20 +-
 .../sdk/importers/yaml_importer/schema.json        |    3 +-
 .../task_sdk/execution_time/test_supervisor.py     |   24 +
 .../importers/yaml_importer/test_importer.py       |   55 +-
 ts-sdk/src/coordinator/serde.ts                    |   40 +-
 uv.lock                                            | 7703 +++++++++++---------
 246 files changed, 12935 insertions(+), 5408 deletions(-)
 create mode 100644 .github/workflows/mirror-hardened-base-images.yml
 create mode 100644 .github/workflows/scheduled-legacy-prod-image-canary.yml
 create mode 100644 airflow-core/newsfragments/73038.significant.rst
 copy airflow-core/src/airflow/ui/src/{pages/Dag/Code/FileLocation.test.tsx => 
components/AssetExpression/AssetNode.test.tsx} (52%)
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Connections/DuplicateConnectionButton.test.tsx
 copy 
airflow-core/src/airflow/ui/src/pages/Connections/{EditConnectionButton.tsx => 
DuplicateConnectionButton.tsx} (54%)
 create mode 100644 
dev/breeze/doc/images/output_release-management_mirror-base-images.svg
 create mode 100644 
dev/breeze/doc/images/output_release-management_mirror-base-images.txt
 create mode 100644 dev/breeze/tests/test_build_prod_params.py
 create mode 100644 dev/breeze/tests/test_mirror_base_images.py
 create mode 100644 java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/Label.kt
 create mode 100644 
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/EdgeLabelTest.kt
 create mode 100644 providers/amazon/docs/executors/eks-executor.rst
 copy {airflow-ctl-tests/tests/airflowctl_tests => 
providers/amazon/src/airflow/providers/amazon/aws/executors/eks}/__init__.py 
(88%)
 create mode 100644 
providers/amazon/src/airflow/providers/amazon/aws/executors/eks/_client_factory.py
 create mode 100644 
providers/amazon/src/airflow/providers/amazon/aws/executors/eks/eks_executor.py
 copy 
providers/{apache/kafka/tests/integration/apache/kafka/plugins/dags/demo_dag.py 
=> amazon/src/airflow/providers/amazon/aws/executors/eks/utils.py} (60%)
 copy {airflow-core/src/airflow/_shared => 
providers/amazon/tests/unit/amazon/aws/executors/eks}/__init__.py (100%)
 create mode 100644 
providers/amazon/tests/unit/amazon/aws/executors/eks/test__client_factory.py
 create mode 100644 
providers/amazon/tests/unit/amazon/aws/executors/eks/test_eks_executor.py
 copy airflow-core/src/airflow/models/xcom_arg.py => 
providers/amazon/tests/unit/amazon/aws/executors/eks/test_utils.py (62%)
 delete mode 100644 
providers/google/tests/unit/google/cloud/links/test_alloy_db.py
 delete mode 100644 
providers/google/tests/unit/google/cloud/links/test_managed_kafka.py
 copy scripts/ci/license-templates/LICENSE.rst => 
providers/smtp/docs/utils/emailer.rst (52%)
 copy {airflow-core/src/airflow/_shared => 
providers/smtp/src/airflow/providers/smtp/utils}/__init__.py (100%)
 copy airflow-core/src/airflow/utils/email.py => 
providers/smtp/src/airflow/providers/smtp/utils/emailer.py (98%)
 copy {airflow-core/src/airflow/_shared => 
providers/smtp/tests/unit/smtp/utils}/__init__.py (100%)
 copy airflow-core/tests/unit/utils/test_email.py => 
providers/smtp/tests/unit/smtp/utils/test_emailer.py (65%)
 create mode 100644 scripts/docker/keys/microsoft-2025.asc

Reply via email to