This is an automated email from the ASF dual-hosted git repository.
sciabarracom pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/openserverless-devcontainer.git
The following commit(s) were added to refs/heads/main by this push:
new 6f9ccb9 list images
6f9ccb9 is described below
commit 6f9ccb9f52c317a21f75f8ea15e2f6a0a7b8cae8
Author: Michele Sciabarra <[email protected]>
AuthorDate: Wed Sep 2 20:53:52 2026 +0200
list images
---
.github/workflows/list-images.yml | 93 +++++++++++++++++++++++++++++++++++++++
1 file changed, 93 insertions(+)
diff --git a/.github/workflows/list-images.yml
b/.github/workflows/list-images.yml
new file mode 100644
index 0000000..e95246c
--- /dev/null
+++ b/.github/workflows/list-images.yml
@@ -0,0 +1,93 @@
+# 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: List Images
+on:
+ workflow_dispatch:
+
+jobs:
+ list:
+ name: List apache/openserverless-* images and tags
+ runs-on: ubuntu-22.04
+ env:
+ IMAGES: >-
+ openserverless-admin-api
+ openserverless-devcontainer
+ openserverless-operator
+ openserverless-runtime-common
+ openserverless-runtime-go
+ openserverless-runtime-java
+ openserverless-runtime-nodejs
+ openserverless-runtime-php
+ openserverless-runtime-python
+ openserverless-streamer
+ openserverless-wsk-controller
+ openserverless-wsk-invoker
+ openserverless-wsk-scala
+ openserverless-wsk-scheduler
+ openserverless-wsk-standalone
+ steps:
+ - name: List images and tags
+ env:
+ DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
+ DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
+ run: |
+ set -euo pipefail
+
+ # Get a Docker Hub JWT (works with both password and PAT)
+ TOKEN=$(curl -s -H 'Content-Type: application/json' \
+ -d "$(jq -n --arg u "$DOCKERHUB_USER" --arg p "$DOCKERHUB_TOKEN" \
+ '{username:$u,password:$p}')" \
+ https://hub.docker.com/v2/users/login/ | jq -r '.token // empty')
+
+ if [ -z "$TOKEN" ]; then
+ echo "Docker Hub login failed" >&2
+ exit 1
+ fi
+
+ AUTH=(-H "Authorization: JWT $TOKEN")
+
+ {
+ echo "## apache/openserverless-* images"
+ echo
+ } >> "$GITHUB_STEP_SUMMARY"
+
+ for REPO in $IMAGES; do
+ echo "=== apache/$REPO ==="
+ echo "### apache/$REPO" >> "$GITHUB_STEP_SUMMARY"
+
+ TAGS=""
+
TURL="https://hub.docker.com/v2/repositories/apache/$REPO/tags/?page_size=100"
+ while [ -n "$TURL" ] && [ "$TURL" != "null" ]; do
+ TPAGE=$(curl -s "${AUTH[@]}" "$TURL")
+ TAGS="$TAGS$(echo "$TPAGE" | jq -r '.results[]? |
"\(.name)\t\(.last_updated)"')
+ "
+ TURL=$(echo "$TPAGE" | jq -r '.next')
+ done
+
+ TAGS=$(echo "$TAGS" | sed '/^\s*$/d')
+ if [ -z "$TAGS" ]; then
+ echo " (no tags)"
+ echo "- _(no tags)_" >> "$GITHUB_STEP_SUMMARY"
+ else
+ echo "$TAGS" | while IFS=$'\t' read -r NAME UPDATED; do
+ echo " $NAME (updated $UPDATED)"
+ echo "- \`$NAME\` — updated $UPDATED" >> "$GITHUB_STEP_SUMMARY"
+ done
+ fi
+ echo >> "$GITHUB_STEP_SUMMARY"
+ done