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

epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr-mcp.git


The following commit(s) were added to refs/heads/main by this push:
     new 564ee63  ci: fix workflows blocked by the ASF GitHub Actions 
allow-list (#145)
564ee63 is described below

commit 564ee63a5938c7271ffaa2a29b4681e8daa06293
Author: Aditya Parikh <[email protected]>
AuthorDate: Sat Jun 13 14:27:59 2026 -0400

    ci: fix workflows blocked by the ASF GitHub Actions allow-list (#145)
    
    This commit fixes CI workflows that were failing to start because they 
violated the ASF GitHub Actions allow-list.
    
    **Root cause:** The Apache org only allows `actions/*`, `apache/*`, and 
`github/*` actions to run freely; all third-party actions must be pinned to an 
exact, explicitly allow-listed commit SHA. The workflows referenced third-party 
actions by mutable tag (`graalvm/setup-graalvm@v1`, `docker/login-action@v3`, 
etc.), which never match SHA-based allow-list entries — so `native.yml` and 
`build-and-publish.yml` were rejected at startup with no check runs at all.
    
    ---------
    
    Signed-off-by: adityamparikh <[email protected]>
    Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
---
 .github/workflows/atr-release.yml       | 82 +++++++++++++++++----------------
 .github/workflows/build-and-publish.yml |  4 +-
 .github/workflows/native.yml            |  6 +--
 .github/workflows/nightly-build.yml     | 53 +++++++++++----------
 .github/workflows/release-publish.yml   |  9 ++--
 5 files changed, 79 insertions(+), 75 deletions(-)

diff --git a/.github/workflows/atr-release.yml 
b/.github/workflows/atr-release.yml
index bbb2b86..9053e1c 100644
--- a/.github/workflows/atr-release.yml
+++ b/.github/workflows/atr-release.yml
@@ -374,48 +374,50 @@ jobs:
                     announce-path-suffix: "solr/mcp/${{ inputs.release_version 
}}"
 
             -   name: Create GitHub Release
-                uses: softprops/action-gh-release@v1
-                with:
-                    tag_name: v${{ inputs.release_version }}
-                    name: Apache Solr MCP ${{ inputs.release_version }}
-                    draft: false
-                    prerelease: false
-                    body: |
-                        ## Apache Solr MCP ${{ inputs.release_version }}
-                        
-                        This release was approved through the Apache voting 
process.
-                        
-                        ### Installation
-                        
-                        **Docker:**
-                        ```bash
-                        docker pull apache/solr-mcp:${{ inputs.release_version 
}}
-                        ```
-                        
-                        **JAR:**
-                        Download from [Apache 
Mirrors](https://www.apache.org/dyn/closer.lua/solr/mcp/${{ 
inputs.release_version }}/)
-                        
-                        ### Verification
-                        
-                        All release artifacts are signed. Verify using:
-                        ```bash
-                        gpg --verify solr-mcp-${{ inputs.release_version 
}}.jar.asc
-                        sha512sum -c solr-mcp-${{ inputs.release_version 
}}.jar.sha512
-                        ```
-                        
-                        ### Release Notes
-                        See 
[CHANGES.txt](https://github.com/apache/solr-mcp/blob/v${{ 
inputs.release_version }}/CHANGES.txt)
+                env:
+                    GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+                    RELEASE_VERSION: ${{ inputs.release_version }}
+                run: |
+                    cat > "${RUNNER_TEMP}/release-notes.md" <<'NOTES'
+                    ## Apache Solr MCP ${{ inputs.release_version }}
+
+                    This release was approved through the Apache voting 
process.
+
+                    ### Installation
+
+                    **Docker:**
+                    ```bash
+                    docker pull apache/solr-mcp:${{ inputs.release_version }}
+                    ```
+
+                    **JAR:**
+                    Download from [Apache 
Mirrors](https://www.apache.org/dyn/closer.lua/solr/mcp/${{ 
inputs.release_version }}/)
+
+                    ### Verification
+
+                    All release artifacts are signed. Verify using:
+                    ```bash
+                    gpg --verify solr-mcp-${{ inputs.release_version }}.jar.asc
+                    sha512sum -c solr-mcp-${{ inputs.release_version 
}}.jar.sha512
+                    ```
+
+                    ### Release Notes
+                    See 
[CHANGES.txt](https://github.com/apache/solr-mcp/blob/v${{ 
inputs.release_version }}/CHANGES.txt)
+                    NOTES
+                    gh release create "v${RELEASE_VERSION}" \
+                        --title "Apache Solr MCP ${RELEASE_VERSION}" \
+                        --notes-file "${RUNNER_TEMP}/release-notes.md"
 
             -   name: Trigger Docker publishing workflow
-                uses: peter-evans/repository-dispatch@v2
-                with:
-                    token: ${{ secrets.GITHUB_TOKEN }}
-                    event-type: release-approved
-                    client-payload: |
-                        {
-                          "release_version": "${{ inputs.release_version }}",
-                          "release_candidate": "${{ inputs.release_candidate 
}}"
-                        }
+                env:
+                    GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+                    RELEASE_VERSION: ${{ inputs.release_version }}
+                    RELEASE_CANDIDATE: ${{ inputs.release_candidate }}
+                    REPO: ${{ github.repository }}
+                run: |
+                    printf 
'{"event_type":"release-approved","client_payload":{"release_version":"%s","release_candidate":"%s"}}'
 \
+                        "$RELEASE_VERSION" "$RELEASE_CANDIDATE" \
+                        | gh api "repos/${REPO}/dispatches" --input -
 
             -   name: Final summary
                 run: |
diff --git a/.github/workflows/build-and-publish.yml 
b/.github/workflows/build-and-publish.yml
index d195b76..54b2e77 100644
--- a/.github/workflows/build-and-publish.yml
+++ b/.github/workflows/build-and-publish.yml
@@ -287,7 +287,7 @@ jobs:
             # Authenticate to GitHub Container Registry
             # Uses built-in GITHUB_TOKEN (no configuration needed)
             -   name: Log in to GitHub Container Registry
-                uses: docker/login-action@v3
+                uses: 
docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0 
(ASF-allow-listed, no expiry)
                 with:
                     registry: ghcr.io
                     username: ${{ github.actor }}
@@ -320,7 +320,7 @@ jobs:
             #
             #      Note: `GITHUB_TOKEN` is provided automatically for GHCR; do 
not store it manually.
             #      - name: Log in to Docker Hub
-            #        uses: docker/login-action@v3
+            #        uses: 
docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0 
(ASF-allow-listed, no expiry)
             #        with:
             #          username: ${{ secrets.DOCKERHUB_USERNAME }}
             #          password: ${{ secrets.DOCKERHUB_TOKEN }}
diff --git a/.github/workflows/native.yml b/.github/workflows/native.yml
index 8888dbc..0d28c6f 100644
--- a/.github/workflows/native.yml
+++ b/.github/workflows/native.yml
@@ -54,7 +54,7 @@ jobs:
                 uses: actions/checkout@v4
 
             -   name: Set up GraalVM JDK 25
-                uses: graalvm/setup-graalvm@v1
+                uses: 
graalvm/setup-graalvm@329c42c5f4c343bceb505f0b28cc8499bc2bf174 # v1.5.4 
(ASF-allow-listed, no expiry)
                 with:
                     java-version: '25'
                     distribution: 'graalvm'
@@ -84,7 +84,7 @@ jobs:
                 uses: actions/checkout@v4
 
             -   name: Set up GraalVM JDK 25
-                uses: graalvm/setup-graalvm@v1
+                uses: 
graalvm/setup-graalvm@329c42c5f4c343bceb505f0b28cc8499bc2bf174 # v1.5.4 
(ASF-allow-listed, no expiry)
                 with:
                     java-version: '25'
                     distribution: 'graalvm'
@@ -118,7 +118,7 @@ jobs:
                 uses: actions/checkout@v4
 
             -   name: Set up GraalVM JDK 25
-                uses: graalvm/setup-graalvm@v1
+                uses: 
graalvm/setup-graalvm@329c42c5f4c343bceb505f0b28cc8499bc2bf174 # v1.5.4 
(ASF-allow-listed, no expiry)
                 with:
                     java-version: '25'
                     distribution: 'graalvm'
diff --git a/.github/workflows/nightly-build.yml 
b/.github/workflows/nightly-build.yml
index d2121e1..5f70074 100644
--- a/.github/workflows/nightly-build.yml
+++ b/.github/workflows/nightly-build.yml
@@ -173,31 +173,36 @@ jobs:
           ls -la build/distributions/
 
       - name: Create GitHub pre-release
-        uses: softprops/action-gh-release@v1
-        with:
-          tag_name: nightly-${{ steps.version.outputs.date }}
-          name: Nightly Build ${{ steps.version.outputs.date }}
-          prerelease: true
-          draft: false
-          files: |
-            build/distributions/solr-mcp-*.tar.gz
-            build/distributions/solr-mcp-*.sha512
+        # ASF policy disallows non-allow-listed third-party actions; use the gh
+        # CLI (already used below to prune old nightlies) instead of
+        # softprops/action-gh-release.
+        env:
+          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          NIGHTLY_DATE: ${{ steps.version.outputs.date }}
+        run: |
+          cat > "${RUNNER_TEMP}/nightly-notes.md" <<'NOTES'
+          ## Nightly Build
+
+          **Date**: ${{ steps.version.outputs.date }}
+          **Commit**: ${{ github.sha }}
+
+          ### Docker Image
+          ```bash
+          docker pull apache/solr-mcp-nightly:${{ 
steps.version.outputs.version }}
+          ```
+
+          ### Source Distribution
+          - [solr-mcp-${{ steps.version.outputs.version 
}}-src.tar.gz](https://github.com/${{ github.repository 
}}/releases/download/nightly-${{ steps.version.outputs.date }}/solr-mcp-${{ 
steps.version.outputs.version }}-src.tar.gz)
+
+          **Note**: This is a nightly build and not an official Apache release.
+          NOTES
+          gh release create "nightly-${NIGHTLY_DATE}" \
+            --title "Nightly Build ${NIGHTLY_DATE}" \
+            --prerelease \
+            --notes-file "${RUNNER_TEMP}/nightly-notes.md" \
+            build/distributions/solr-mcp-*.tar.gz \
+            build/distributions/solr-mcp-*.sha512 \
             build/libs/solr-mcp-*.jar
-          body: |
-            ## Nightly Build
-
-            **Date**: ${{ steps.version.outputs.date }}
-            **Commit**: ${{ github.sha }}
-
-            ### Docker Image
-            ```bash
-            docker pull apache/solr-mcp-nightly:${{ 
steps.version.outputs.version }}
-            ```
-
-            ### Source Distribution
-            - [solr-mcp-${{ steps.version.outputs.version 
}}-src.tar.gz](https://github.com/${{ github.repository 
}}/releases/download/nightly-${{ steps.version.outputs.date }}/solr-mcp-${{ 
steps.version.outputs.version }}-src.tar.gz)
-
-            **Note**: This is a nightly build and not an official Apache 
release.
 
       - name: Clean up old nightly releases
         run: |
diff --git a/.github/workflows/release-publish.yml 
b/.github/workflows/release-publish.yml
index f4eb779..3f8015d 100644
--- a/.github/workflows/release-publish.yml
+++ b/.github/workflows/release-publish.yml
@@ -389,7 +389,7 @@ jobs:
           ref: "v${{ inputs.release_version }}-${{ inputs.release_candidate }}"
 
       - name: Set up GraalVM JDK 25
-        uses: graalvm/setup-graalvm@v1
+        uses: graalvm/setup-graalvm@329c42c5f4c343bceb505f0b28cc8499bc2bf174 # 
v1.5.4 (ASF-allow-listed, no expiry)
         with:
           java-version: '25'
           distribution: 'graalvm'
@@ -403,7 +403,7 @@ jobs:
           sed -i "s/version = \".*\"/version = \"${RELEASE_VERSION}\"/" 
build.gradle.kts
 
       - name: Log in to GHCR
-        uses: docker/login-action@v3
+        uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # 
v4.2.0 (ASF-allow-listed, no expiry)
         with:
           registry: ghcr.io
           username: ${{ github.actor }}
@@ -452,15 +452,12 @@ jobs:
       packages: write
     steps:
       - name: Log in to GHCR
-        uses: docker/login-action@v3
+        uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # 
v4.2.0 (ASF-allow-listed, no expiry)
         with:
           registry: ghcr.io
           username: ${{ github.actor }}
           password: ${{ secrets.GITHUB_TOKEN }}
 
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v3
-
       - name: Create version manifest lists
         env:
           REPO_OWNER: ${{ github.repository_owner }}

Reply via email to