This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 6acbc03bdae Make dependency review one repo-wide gate, not a per-SDK
one (#73061)
6acbc03bdae is described below
commit 6acbc03bdae8993684c33a75b7941b42c577378a
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sun Sep 13 14:49:23 2026 +0630
Make dependency review one repo-wide gate, not a per-SDK one (#73061)
`dependency-review-action` has no path or manifest input. Once it runs
it reviews the entire dependency graph diff of the PR, every lockfile
included - so a gate named after one SDK can only ever be lying about
what it covers.
That is not theoretical. apache/airflow#72946, a release sync PR that
changed 816 files and not one of them under `java-sdk/`, tripped the
Java SDK gate through the self-reference in its own `paths` filter
(v*-test and v*-stable keep different copies of every workflow file),
and the Java SDK gate then failed on a Python advisory in `uv.lock`.
Replace the two per-SDK review jobs with one `Dependency review`
workflow covering the manifests of every ecosystem in the repo:
* new `.github/workflows/dependency-review.yml`, triggered by any
Python, JavaScript, Go or JVM manifest in the PR.
* `java-sdk-dependency-security.yml` keeps only the Gradle
`dependency-submission` job, which really is Java-specific, and
drops its `pull_request` trigger.
* `ts-sdk-dependency-review.yml` goes away - the generic gate already
reviews `ts-sdk/package.json` and `ts-sdk/pnpm-lock.yaml`.
The check name contributors see, `Reject vulnerable dependency
changes`, is unchanged. The settings are the stricter of the two the
repo had: the ts-sdk gate ran at the action's default
`fail-on-scopes: runtime`, and now gets `runtime, development,
unknown` like the java one.
Generated-by: Claude Opus 5
Claude-Session: https://claude.ai/code/session_01G9A6Mofr5qErDuTh7vqWcX
---
.github/workflows/dependency-review.yml | 82 ++++++++++++++++++++++
.github/workflows/java-sdk-dependency-security.yml | 20 +-----
.github/workflows/ts-sdk-dependency-review.yml | 44 ------------
3 files changed, 83 insertions(+), 63 deletions(-)
diff --git a/.github/workflows/dependency-review.yml
b/.github/workflows/dependency-review.yml
new file mode 100644
index 00000000000..f21a71d64bc
--- /dev/null
+++ b/.github/workflows/dependency-review.yml
@@ -0,0 +1,82 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+---
+name: Dependency review
+
+# `dependency-review-action` has no way to limit itself to one ecosystem's
+# manifests: once it runs it reviews the whole dependency graph diff of the PR,
+# every lockfile included. So this is one repo-wide gate rather than a per-SDK
+# one - a per-SDK gate would only be lying about what it covers, and would fail
+# on another ecosystem's advisory under a name that points at the wrong team.
+#
+# Keep the `paths` list below in step with the manifests the repo actually has:
+# a dependency file that is not listed here is never reviewed.
+
+on: # yamllint disable-line rule:truthy
+ pull_request:
+ paths:
+ # Python
+ - "uv.lock"
+ - "**/uv.lock"
+ - "pyproject.toml"
+ - "**/pyproject.toml"
+ - "**/requirements*.txt"
+ # JavaScript / TypeScript
+ - "**/package.json"
+ - "**/pnpm-lock.yaml"
+ - "**/package-lock.json"
+ - "**/yarn.lock"
+ # Go
+ - "**/go.mod"
+ - "**/go.sum"
+ # Java / Kotlin / Scala
+ - "**/*.gradle"
+ - "**/*.gradle.kts"
+ - "**/gradle/libs.versions.toml"
+ - "**/gradle.lockfile"
+ - "**/pom.xml"
+ # This workflow
+ - ".github/workflows/dependency-review.yml"
+
+permissions:
+ contents: read
+
+concurrency:
+ group: dependency-review-${{ github.event.pull_request.number || github.ref
}}
+ cancel-in-progress: true
+
+jobs:
+ dependency-review:
+ name: Reject vulnerable dependency changes
+ runs-on: ubuntu-slim
+ steps:
+ - name: Review dependency changes
+ uses:
actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 #
v5.0.0
+ with:
+ fail-on-severity: high
+ fail-on-scopes: runtime, development, unknown
+ show-openssf-scorecard: true
+ show-patched-versions: true
+ # GHSA-8mgp-746c-j5xp / CVE-2026-81726 - path traversal in nltk's
+ # model-artifact save/load APIs, no released fix yet. nltk is a
CI-only
+ # transitive dependency (llama-index-core, pulled by the common.ai
+ # provider's "llamaindex" extra); it is not in the released
constraints
+ # and none of the affected APIs are reachable from llama-index-core,
+ # which only uses the Punkt tokenizer and the stopwords corpus. The
fix
+ # is merged on nltk's develop branch (nltk/nltk#3757, #3759, #3813)
and
+ # is waiting on a 3.10.4 release - drop this entry once that ships.
+ allow-ghsas: GHSA-8mgp-746c-j5xp
diff --git a/.github/workflows/java-sdk-dependency-security.yml
b/.github/workflows/java-sdk-dependency-security.yml
index 805ca491628..ca74a6dd2b1 100644
--- a/.github/workflows/java-sdk-dependency-security.yml
+++ b/.github/workflows/java-sdk-dependency-security.yml
@@ -18,10 +18,6 @@
name: Java SDK dependency security
on: # yamllint disable-line rule:truthy
- pull_request:
- paths:
- - "java-sdk/**"
- - ".github/workflows/java-sdk-dependency-security.yml"
push:
branches:
- main
@@ -36,25 +32,11 @@ permissions:
concurrency:
group: java-sdk-dependency-security-${{ github.event_name }}-${{ github.ref
}}
- cancel-in-progress: ${{ github.event_name == 'pull_request' }}
+ cancel-in-progress: false
jobs:
- dependency-review:
- name: Reject vulnerable dependency changes
- if: github.event_name == 'pull_request'
- runs-on: ubuntu-slim
- steps:
- - name: Review dependency changes
- uses:
actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 #
v5.0.0
- with:
- fail-on-severity: high
- fail-on-scopes: runtime, development, unknown
- show-openssf-scorecard: true
- show-patched-versions: true
-
dependency-submission:
name: Submit resolved Gradle dependencies
- if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: write
diff --git a/.github/workflows/ts-sdk-dependency-review.yml
b/.github/workflows/ts-sdk-dependency-review.yml
deleted file mode 100644
index 37bcdb9c814..00000000000
--- a/.github/workflows/ts-sdk-dependency-review.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
----
-name: TypeScript SDK dependency review
-
-on: # yamllint disable-line rule:truthy
- pull_request:
- branches:
- - main
- paths:
- - "ts-sdk/package.json"
- - "ts-sdk/pnpm-lock.yaml"
- - ".github/workflows/ts-sdk-dependency-review.yml"
-
-permissions:
- contents: read
-
-concurrency:
- group: ts-sdk-dependency-review-${{ github.event.pull_request.number ||
github.ref }}
- cancel-in-progress: true
-
-jobs:
- dependency-review:
- name: Reject vulnerable dependency changes
- runs-on: ubuntu-slim
- steps:
- - name: Review dependency changes
- uses:
actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 #
v5.0.0
- with:
- fail-on-severity: high