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

kevinjqliu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/main by this push:
     new 39d5e1d595 chore(ci): add explicit least-privilege workflow 
permissions (#15409)
39d5e1d595 is described below

commit 39d5e1d5955d93b6a9ff9d42c17ad6c919628a72
Author: Kevin Liu <[email protected]>
AuthorDate: Mon Feb 23 20:54:51 2026 -0500

    chore(ci): add explicit least-privilege workflow permissions (#15409)
---
 .github/workflows/api-binary-compatibility.yml            | 3 +++
 .github/workflows/codeql.yml                              | 3 +++
 .github/workflows/delta-conversion-ci.yml                 | 3 +++
 .github/workflows/docs-ci.yml                             | 3 +++
 .github/workflows/flink-ci.yml                            | 3 +++
 .github/workflows/hive-ci.yml                             | 3 +++
 .github/workflows/java-ci.yml                             | 3 +++
 .github/workflows/jmh-benchmarks.yml                      | 3 +++
 .github/workflows/kafka-connect-ci.yml                    | 3 +++
 .github/workflows/license-check.yml                       | 3 +++
 .github/workflows/open-api.yml                            | 3 +++
 .github/workflows/publish-iceberg-rest-fixture-docker.yml | 3 +++
 .github/workflows/publish-snapshot.yml                    | 3 +++
 .github/workflows/recurring-jmh-benchmarks.yml            | 3 +++
 .github/workflows/site-ci.yml                             | 6 ++++++
 .github/workflows/spark-ci.yml                            | 3 +++
 16 files changed, 51 insertions(+)

diff --git a/.github/workflows/api-binary-compatibility.yml 
b/.github/workflows/api-binary-compatibility.yml
index 3343ba4035..236efbaef4 100644
--- a/.github/workflows/api-binary-compatibility.yml
+++ b/.github/workflows/api-binary-compatibility.yml
@@ -35,6 +35,9 @@ on:
       - 'api/**'
       - '.palantir/revapi.yml'
 
+permissions:
+  contents: read
+
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 37133239da..e81c715896 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -27,6 +27,9 @@ on:
   schedule:
     - cron: '16 4 * * 1'
 
+permissions:
+  contents: read
+
 jobs:
   analyze:
     name: Analyze Actions
diff --git a/.github/workflows/delta-conversion-ci.yml 
b/.github/workflows/delta-conversion-ci.yml
index bdb46782db..96b1a6c069 100644
--- a/.github/workflows/delta-conversion-ci.yml
+++ b/.github/workflows/delta-conversion-ci.yml
@@ -63,6 +63,9 @@ on:
       - '**/NOTICE'
       - 'doap.rdf'
 
+permissions:
+  contents: read
+
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml
index 20c46e931e..5f753c2024 100644
--- a/.github/workflows/docs-ci.yml
+++ b/.github/workflows/docs-ci.yml
@@ -25,6 +25,9 @@ on:
       - format/**
       - .github/workflows/docs-ci.yml
 
+permissions:
+  contents: read
+
 jobs:
   build-docs:
     runs-on: ${{ matrix.os }}
diff --git a/.github/workflows/flink-ci.yml b/.github/workflows/flink-ci.yml
index 3a1e952895..fd7dccb698 100644
--- a/.github/workflows/flink-ci.yml
+++ b/.github/workflows/flink-ci.yml
@@ -63,6 +63,9 @@ on:
     - '**/NOTICE'
     - 'doap.rdf'
 
+permissions:
+  contents: read
+
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/hive-ci.yml b/.github/workflows/hive-ci.yml
index 6b13a93526..9edfb0b2af 100644
--- a/.github/workflows/hive-ci.yml
+++ b/.github/workflows/hive-ci.yml
@@ -64,6 +64,9 @@ on:
     - '**/NOTICE'
     - 'doap.rdf'
 
+permissions:
+  contents: read
+
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/java-ci.yml b/.github/workflows/java-ci.yml
index bc3fc35171..8d7c8c7753 100644
--- a/.github/workflows/java-ci.yml
+++ b/.github/workflows/java-ci.yml
@@ -59,6 +59,9 @@ on:
     - '**/NOTICE'
     - 'doap.rdf'
 
+permissions:
+  contents: read
+
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/jmh-benchmarks.yml 
b/.github/workflows/jmh-benchmarks.yml
index 640e7e2b0d..4a0aecd8b5 100644
--- a/.github/workflows/jmh-benchmarks.yml
+++ b/.github/workflows/jmh-benchmarks.yml
@@ -35,6 +35,9 @@ on:
         description: 'A list of comma-separated double-quoted Benchmark names, 
such as "IcebergSourceFlatParquetDataReadBenchmark", 
"IcebergSourceFlatParquetDataFilterBenchmark"'
         required: true
 
+permissions:
+  contents: read
+
 jobs:
   matrix:
     runs-on: ubuntu-24.04
diff --git a/.github/workflows/kafka-connect-ci.yml 
b/.github/workflows/kafka-connect-ci.yml
index 0919dc6c75..9bffb3b8d3 100644
--- a/.github/workflows/kafka-connect-ci.yml
+++ b/.github/workflows/kafka-connect-ci.yml
@@ -63,6 +63,9 @@ on:
     - '**/NOTICE'
     - 'doap.rdf'
 
+permissions:
+  contents: read
+
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/license-check.yml 
b/.github/workflows/license-check.yml
index 7640d40f10..af693f1843 100644
--- a/.github/workflows/license-check.yml
+++ b/.github/workflows/license-check.yml
@@ -20,6 +20,9 @@
 name: "Run License Check"
 on: pull_request
 
+permissions:
+  contents: read
+
 jobs:
   rat:
     runs-on: ubuntu-24.04
diff --git a/.github/workflows/open-api.yml b/.github/workflows/open-api.yml
index dedae02067..7cc12ba337 100644
--- a/.github/workflows/open-api.yml
+++ b/.github/workflows/open-api.yml
@@ -32,6 +32,9 @@ on:
       - '.github/workflows/open-api.yml'
       - 'open-api/**'
 
+permissions:
+  contents: read
+
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/publish-iceberg-rest-fixture-docker.yml 
b/.github/workflows/publish-iceberg-rest-fixture-docker.yml
index 5d379615f5..24d6d2d5f3 100644
--- a/.github/workflows/publish-iceberg-rest-fixture-docker.yml
+++ b/.github/workflows/publish-iceberg-rest-fixture-docker.yml
@@ -27,6 +27,9 @@ on:
     - cron: '0 2 * * *' # run at 2 AM UTC
   workflow_dispatch:
 
+permissions:
+  contents: read
+
 env:
   DOCKER_IMAGE_TAG: iceberg-rest-fixture
   DOCKER_IMAGE_VERSION: latest
diff --git a/.github/workflows/publish-snapshot.yml 
b/.github/workflows/publish-snapshot.yml
index c8012b5d02..f01f559982 100644
--- a/.github/workflows/publish-snapshot.yml
+++ b/.github/workflows/publish-snapshot.yml
@@ -25,6 +25,9 @@ on:
     # we're publishing a new snapshot every night at 00:00 UTC
     - cron:  '0 0 * * *'
 
+permissions:
+  contents: read
+
 jobs:
   publish-snapshot:
     if: github.repository_owner == 'apache'
diff --git a/.github/workflows/recurring-jmh-benchmarks.yml 
b/.github/workflows/recurring-jmh-benchmarks.yml
index 24b1924684..f3f5510676 100644
--- a/.github/workflows/recurring-jmh-benchmarks.yml
+++ b/.github/workflows/recurring-jmh-benchmarks.yml
@@ -25,6 +25,9 @@ on:
     # we're running benchmarks every Sunday at 00:00 UTC
     - cron:  '0 0 * * 0'
 
+permissions:
+  contents: read
+
 jobs:
   run-benchmark:
     if: github.repository_owner == 'apache'
diff --git a/.github/workflows/site-ci.yml b/.github/workflows/site-ci.yml
index 7efbf94ba8..689b9e5967 100644
--- a/.github/workflows/site-ci.yml
+++ b/.github/workflows/site-ci.yml
@@ -26,9 +26,15 @@ on:
       - site/**
       - format/**
   workflow_dispatch:
+
+permissions:
+  contents: read
+
 jobs:
   deploy:
     runs-on: ubuntu-latest
+    permissions:
+      contents: write
     steps:
       - uses: actions/checkout@v6
       - uses: actions/setup-python@v6
diff --git a/.github/workflows/spark-ci.yml b/.github/workflows/spark-ci.yml
index 886bff0ebc..d8b30b0e47 100644
--- a/.github/workflows/spark-ci.yml
+++ b/.github/workflows/spark-ci.yml
@@ -63,6 +63,9 @@ on:
     - '**/NOTICE'
     - 'doap.rdf'
 
+permissions:
+  contents: read
+
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: ${{ github.event_name == 'pull_request' }}

Reply via email to