From 9b26d6f5b7df0a14b4855cf46c0bbb2e6fef1618 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 10:18:44 +0100
Subject: [PATCH 01/24] ci: fix updating apt dependencies
---
.github/workflows/update-dependencies.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 5c7a159c..d2aa1c1f 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -31,7 +31,7 @@ jobs:
- uses: ./.github/actions/update-apt-packages
id: update-packages
with:
- input-file: .devcontainer/${{ matrix.flavor }}/apt-requirements-*.json
+ input-file: .devcontainer/${{ matrix.flavor }}/apt-requirements*.json
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: token
with:
From 7a3143f58cdfc2bfbd354922b3b97aa8fb3bfad3 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 10:19:18 +0100
Subject: [PATCH 02/24] ci: truncate release details for extension updates
---
.../update-vscode-extensions.sh | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index f8d08e50..90c584e5 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -32,7 +32,16 @@ get_github_releasenotes() {
break;
fi
- printf "%s\n\n" "$(gh release view --json body --jq '.body' -R $GITHUB_URL $TAG)"
+ RELEASE_BODY=$(gh release view --json body --jq '.body' -R $GITHUB_URL $TAG)
+ MAX_RELEASE_BODY_SIZE=32768
+ TRUNCATED=""
+
+ if [[ ${#RELEASE_BODY} > $MAX_RELEASE_BODY_SIZE) ]]
+ then
+ TRUNCATED="\n\n... [truncated]"
+ fi
+
+ printf "%.$MAX_RELEASE_BODY_SIZEs%s\n\n" "$(gh release view --json body --jq '.body' -R $GITHUB_URL $TAG)" $TRUNCATED
done
}
From 06c71b8f4aca48eb415dd6840a2c2cd4e6ad67a8 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 10:24:10 +0100
Subject: [PATCH 03/24] ci: fix script error
---
.../update-vscode-extensions/update-vscode-extensions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index 90c584e5..e03586c9 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -36,7 +36,7 @@ get_github_releasenotes() {
MAX_RELEASE_BODY_SIZE=32768
TRUNCATED=""
- if [[ ${#RELEASE_BODY} > $MAX_RELEASE_BODY_SIZE) ]]
+ if [[ ${#RELEASE_BODY} > $MAX_RELEASE_BODY_SIZE ]]
then
TRUNCATED="\n\n... [truncated]"
fi
From 041b38be1659ed0752a5f06664fd05f104d0c761 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 10:26:30 +0100
Subject: [PATCH 04/24] ci: minor script fixes
---
.../update-vscode-extensions/update-vscode-extensions.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index e03586c9..7a41455c 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -36,12 +36,12 @@ get_github_releasenotes() {
MAX_RELEASE_BODY_SIZE=32768
TRUNCATED=""
- if [[ ${#RELEASE_BODY} > $MAX_RELEASE_BODY_SIZE ]]
+ if [[ ${#RELEASE_BODY} -gt $MAX_RELEASE_BODY_SIZE ]]
then
TRUNCATED="\n\n... [truncated]"
fi
- printf "%.$MAX_RELEASE_BODY_SIZEs%s\n\n" "$(gh release view --json body --jq '.body' -R $GITHUB_URL $TAG)" $TRUNCATED
+ printf "%.$MAX_RELEASE_BODY_SIZEs%s\n\n" "$RELEASE_BODY" $TRUNCATED
done
}
From 03e6010c2e25205ceb11ccc5bfcb2e782ed6db89 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 10:29:44 +0100
Subject: [PATCH 05/24] ci: more script fixes
---
.../update-vscode-extensions/update-vscode-extensions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index 7a41455c..f7131e3a 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -41,7 +41,7 @@ get_github_releasenotes() {
TRUNCATED="\n\n... [truncated]"
fi
- printf "%.$MAX_RELEASE_BODY_SIZEs%s\n\n" "$RELEASE_BODY" $TRUNCATED
+ printf "%.*%s\n\n" "$MAX_RELEASE_BODY_SIZE" "$RELEASE_BODY" "$TRUNCATED"
done
}
From e67d9081fdfa984b69eba1238d10ea83dd763ac1 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 10:38:26 +0100
Subject: [PATCH 06/24] ci: more fixing
---
.../update-vscode-extensions/update-vscode-extensions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index f7131e3a..11328cb6 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -41,7 +41,7 @@ get_github_releasenotes() {
TRUNCATED="\n\n... [truncated]"
fi
- printf "%.*%s\n\n" "$MAX_RELEASE_BODY_SIZE" "$RELEASE_BODY" "$TRUNCATED"
+ printf "%.*s%s\n\n" "$MAX_RELEASE_BODY_SIZE" "$RELEASE_BODY" "$TRUNCATED"
done
}
From 08cbea64c08ae23e8381288dd998aba504b43d9c Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 10:41:23 +0100
Subject: [PATCH 07/24] ci: minor refactor
---
.../update-vscode-extensions/update-vscode-extensions.sh | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index 11328cb6..861f5b63 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -34,14 +34,13 @@ get_github_releasenotes() {
RELEASE_BODY=$(gh release view --json body --jq '.body' -R $GITHUB_URL $TAG)
MAX_RELEASE_BODY_SIZE=32768
- TRUNCATED=""
if [[ ${#RELEASE_BODY} -gt $MAX_RELEASE_BODY_SIZE ]]
then
- TRUNCATED="\n\n... [truncated]"
+ printf "%.*s\n\n... [truncated]\n\n" "$MAX_RELEASE_BODY_SIZE" "$RELEASE_BODY" "$TRUNCATED"
+ else
+ printf "%s\n\n" "$RELEASE_BODY"
fi
-
- printf "%.*s%s\n\n" "$MAX_RELEASE_BODY_SIZE" "$RELEASE_BODY" "$TRUNCATED"
done
}
From 79511c9e59dca8dfa43dc762ca69999ffdab9a94 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 11:09:01 +0100
Subject: [PATCH 08/24] ci: different strategy
---
.../update-vscode-extensions.sh | 10 +---------
.github/workflows/update-dependencies.yml | 13 ++++++++-----
2 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index 861f5b63..f8d08e50 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -32,15 +32,7 @@ get_github_releasenotes() {
break;
fi
- RELEASE_BODY=$(gh release view --json body --jq '.body' -R $GITHUB_URL $TAG)
- MAX_RELEASE_BODY_SIZE=32768
-
- if [[ ${#RELEASE_BODY} -gt $MAX_RELEASE_BODY_SIZE ]]
- then
- printf "%.*s\n\n... [truncated]\n\n" "$MAX_RELEASE_BODY_SIZE" "$RELEASE_BODY" "$TRUNCATED"
- else
- printf "%s\n\n" "$RELEASE_BODY"
- fi
+ printf "%s\n\n" "$(gh release view --json body --jq '.body' -R $GITHUB_URL $TAG)"
done
}
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index d2aa1c1f..16d94d05 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -67,6 +67,13 @@ jobs:
id: update-extensions
with:
input-file: .devcontainer/${{ matrix.flavor }}/${{ matrix.file }}
+ - run: |
+ {
+ echo "> [!NOTE]"
+ echo "> Before merging this PR, please conduct a manual test checking basic functionality of the updated plug-ins. There are limited automated tests for the VS Code Extension updates."
+ echo ""
+ echo "${{ steps.update-extensions.outputs.markdown-summary }}"
+ } >> pull-request-body.md
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: token
with:
@@ -76,11 +83,7 @@ jobs:
with:
commit-message: "Update ${{ join(fromJson(steps.update-extensions.outputs.updated-dependencies), ', ') }} in ${{ matrix.file }}"
branch: feature/amp-devcontainer-${{ matrix.flavor }}/update-vscode-extensions-${{ matrix.file }}
- body: |
- > [!NOTE]
- > Before merging this PR, please conduct a manual test checking basic functionality of the updated plug-ins. There are limited automated tests for the VS Code Extension updates.
-
- ${{ steps.update-extensions.outputs.markdown-summary }}
+ body-path: pull-request-body.md
title: "chore(deps, ${{ matrix.flavor }}): update ${{ join(fromJson(steps.update-extensions.outputs.updated-dependencies), ', ') }} in ${{ matrix.file }}"
labels: dependencies,vscode-extensions
token: ${{ steps.token.outputs.token }}
From 4e86f5c0231fd15c9bb2ed88f26fe7e77c7b191e Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 11:14:47 +0100
Subject: [PATCH 09/24] ci: enable dry-run of update-dependencies jobs
---
.github/workflows/update-dependencies.yml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 16d94d05..53f110eb 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -2,6 +2,7 @@
name: Update Dependencies
on:
+ pull_request:
schedule:
- cron: "30 2 * * 0"
workflow_dispatch:
@@ -34,10 +35,12 @@ jobs:
input-file: .devcontainer/${{ matrix.flavor }}/apt-requirements*.json
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: token
+ if: github.event_name != 'pull_request'
with:
app-id: ${{ vars.FOREST_RELEASER_APP_ID }}
private-key: ${{ secrets.FOREST_RELEASER_APP_PRIVATE_KEY }}
- uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
+ if: github.event_name != 'pull_request'
with:
commit-message: "Update ${{ join(fromJson(steps.update-packages.outputs.updated-dependencies), ', ') }}"
branch: feature/amp-devcontainer-${{ matrix.flavor }}/update-apt-packages
@@ -76,10 +79,12 @@ jobs:
} >> pull-request-body.md
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: token
+ if: github.event_name != 'pull_request'
with:
app-id: ${{ vars.FOREST_RELEASER_APP_ID }}
private-key: ${{ secrets.FOREST_RELEASER_APP_PRIVATE_KEY }}
- uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
+ if: github.event_name != 'pull_request'
with:
commit-message: "Update ${{ join(fromJson(steps.update-extensions.outputs.updated-dependencies), ', ') }} in ${{ matrix.file }}"
branch: feature/amp-devcontainer-${{ matrix.flavor }}/update-vscode-extensions-${{ matrix.file }}
From 093d594d3714d2336538e90ab27ed0224a04978e Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 11:25:11 +0100
Subject: [PATCH 10/24] Update .github/workflows/update-dependencies.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Ron <45816308+rjaegers@users.noreply.github.com>
---
.github/workflows/update-dependencies.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 53f110eb..d2946df8 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -32,7 +32,7 @@ jobs:
- uses: ./.github/actions/update-apt-packages
id: update-packages
with:
- input-file: .devcontainer/${{ matrix.flavor }}/apt-requirements*.json
+ input-file: .devcontainer/${{ matrix.flavor }}/apt-requirements{,-*}.json
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: token
if: github.event_name != 'pull_request'
From 603c367fa8cc336a647e1358ee47ab1aa52b93f8 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 11:36:26 +0100
Subject: [PATCH 11/24] ci: revert copilot fix
---
.github/workflows/update-dependencies.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index d2946df8..53f110eb 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -32,7 +32,7 @@ jobs:
- uses: ./.github/actions/update-apt-packages
id: update-packages
with:
- input-file: .devcontainer/${{ matrix.flavor }}/apt-requirements{,-*}.json
+ input-file: .devcontainer/${{ matrix.flavor }}/apt-requirements*.json
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: token
if: github.event_name != 'pull_request'
From 4f7eca2e513e7d92cb31f1633d94bde57ebb4394 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 10:41:50 +0000
Subject: [PATCH 12/24] ci: additional fixes
---
.github/workflows/update-dependencies.yml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index d2946df8..8b9a7b62 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -14,6 +14,7 @@ jobs:
name: Update APT Dependencies (๐จ ${{ matrix.flavor }})
runs-on: ubuntu-latest
strategy:
+ fail-fast: false
matrix:
flavor: ["base", "cpp", "rust"]
# Using our own container is required since we need all package sources
@@ -32,7 +33,7 @@ jobs:
- uses: ./.github/actions/update-apt-packages
id: update-packages
with:
- input-file: .devcontainer/${{ matrix.flavor }}/apt-requirements{,-*}.json
+ input-file: .devcontainer/${{ matrix.flavor }}/apt-requirements*.json
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: token
if: github.event_name != 'pull_request'
@@ -53,6 +54,7 @@ jobs:
name: Update VS Code Extensions (๐จ ${{ matrix.flavor }}, ${{ matrix.file }})
runs-on: ubuntu-latest
strategy:
+ fail-fast: false
matrix:
flavor: ["cpp", "rust"]
file: ["devcontainer-metadata.json", "devcontainer.json"]
@@ -75,8 +77,10 @@ jobs:
echo "> [!NOTE]"
echo "> Before merging this PR, please conduct a manual test checking basic functionality of the updated plug-ins. There are limited automated tests for the VS Code Extension updates."
echo ""
- echo "${{ steps.update-extensions.outputs.markdown-summary }}"
+ echo "$MARKDOWN_SUMMARY"
} >> pull-request-body.md
+ env:
+ MARKDOWN_SUMMARY: ${{ steps.update-extensions.outputs.markdown-summary }}
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: token
if: github.event_name != 'pull_request'
From 96018d61de6d0b41f9e2fca6cdc1bfa659e48273 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 10:48:18 +0000
Subject: [PATCH 13/24] ci: another another aproach
---
.github/actions/update-vscode-extensions/action.yml | 13 +++++--------
.../update-vscode-extensions.sh | 1 +
.github/workflows/update-dependencies.yml | 4 ++--
3 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/.github/actions/update-vscode-extensions/action.yml b/.github/actions/update-vscode-extensions/action.yml
index 6104154e..eb502e85 100644
--- a/.github/actions/update-vscode-extensions/action.yml
+++ b/.github/actions/update-vscode-extensions/action.yml
@@ -11,9 +11,9 @@ outputs:
updated-dependencies:
description: JSON array with the names of the updated dependencies
value: ${{ steps.update-extensions.outputs.updated-dependencies }}
- markdown-summary:
- description: Markdown summary of update result
- value: ${{ steps.update-extensions.outputs.markdown-summary }}
+ markdown-summary-file:
+ description: Path to a file containing the markdown summary of update result
+ value: ${{ steps.update-extensions.outputs.markdown-summary-file }}
runs:
using: composite
@@ -24,11 +24,8 @@ runs:
sudo npm install -g @vscode/vsce
shell: bash
- run: |
- EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
- echo "markdown-summary<<${EOF}" >> "${GITHUB_OUTPUT}"
- echo "$(${GITHUB_ACTION_PATH}/update-vscode-extensions.sh ${INPUT_FILE})" >> "${GITHUB_OUTPUT}"
- echo "${EOF}" >> "${GITHUB_OUTPUT}"
-
+ ${GITHUB_ACTION_PATH}/update-vscode-extensions.sh ${INPUT_FILE}
+ echo "markdown-summary-file=${RUNNER_TEMP}/markdown-summary.md" >> "${GITHUB_OUTPUT}"
echo "updated-dependencies=$(cat updated-extensions.json)" >> "${GITHUB_OUTPUT}"
rm updated-extensions.json
id: update-extensions
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index f8d08e50..65562316 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -64,4 +64,5 @@ EXTENSIONS=$(echo "[${EXTENSIONS::-1}]" | jq 'sort_by(. | ascii_downcase)')
echo $JSON | jq '.customizations.vscode.extensions = $extensions' --argjson extensions "$EXTENSIONS" > $FILE
echo "$UPDATE_DETAILS_MARKDOWN"
+echo "$UPDATE_DETAILS_MARKDOWN" > "${RUNNER_TEMP}/markdown-summary.md"
echo "$UPDATED_EXTENSIONS_JSON" > updated-extensions.json
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 8b9a7b62..89e67e01 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -77,10 +77,10 @@ jobs:
echo "> [!NOTE]"
echo "> Before merging this PR, please conduct a manual test checking basic functionality of the updated plug-ins. There are limited automated tests for the VS Code Extension updates."
echo ""
- echo "$MARKDOWN_SUMMARY"
+ cat "$MARKDOWN_SUMMARY_FILE"
} >> pull-request-body.md
env:
- MARKDOWN_SUMMARY: ${{ steps.update-extensions.outputs.markdown-summary }}
+ MARKDOWN_SUMMARY_FILE: ${{ steps.update-extensions.outputs.markdown-summary-file }}
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
id: token
if: github.event_name != 'pull_request'
From a32cad4421f1d28d0b518ee75fbed20d65b7bb43 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 11:03:19 +0000
Subject: [PATCH 14/24] ci: reduce script injection attack surface
---
.../update-vscode-extensions/action.yml | 6 +--
.../update-vscode-extensions.sh | 40 +++++++++++--------
.github/workflows/update-dependencies.yml | 3 +-
3 files changed, 28 insertions(+), 21 deletions(-)
diff --git a/.github/actions/update-vscode-extensions/action.yml b/.github/actions/update-vscode-extensions/action.yml
index eb502e85..96b507f9 100644
--- a/.github/actions/update-vscode-extensions/action.yml
+++ b/.github/actions/update-vscode-extensions/action.yml
@@ -24,10 +24,10 @@ runs:
sudo npm install -g @vscode/vsce
shell: bash
- run: |
- ${GITHUB_ACTION_PATH}/update-vscode-extensions.sh ${INPUT_FILE}
+ "${GITHUB_ACTION_PATH}/update-vscode-extensions.sh" "${INPUT_FILE}"
echo "markdown-summary-file=${RUNNER_TEMP}/markdown-summary.md" >> "${GITHUB_OUTPUT}"
- echo "updated-dependencies=$(cat updated-extensions.json)" >> "${GITHUB_OUTPUT}"
- rm updated-extensions.json
+ echo "updated-dependencies=$(cat ${RUNNER_TEMP}/updated-extensions.json)" >> "${GITHUB_OUTPUT}"
+ rm "${RUNNER_TEMP}/updated-extensions.json"
id: update-extensions
shell: bash
env:
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index 65562316..7a74c075 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -3,7 +3,7 @@
set -Eeuo pipefail
FILE=${1:?}
-JSON=$(cat $FILE)
+JSON=$(cat "$FILE")
EXTENSIONS=
UPDATE_DETAILS_MARKDOWN=
UPDATED_EXTENSIONS_JSON="[]"
@@ -22,47 +22,53 @@ get_github_releasenotes() {
local GITHUB_URL=${1:?}
local CURRENT_RELEASE=${2:?}
- gh release list --exclude-drafts --exclude-pre-releases -R $GITHUB_URL --json name,tagName --jq '.[]' | while read -r RELEASE;
+ gh release list --exclude-drafts --exclude-pre-releases -R "$GITHUB_URL" --json name,tagName --jq '.[]' | while read -r RELEASE;
do
NAME=$(echo "$RELEASE" | jq -r '.name')
TAG=$(echo "$RELEASE" | jq -r '.tagName')
- if [[ $NAME == *$CURRENT_RELEASE* || $TAG == v$CURRENT_RELEASE ]];
+ if [[ $NAME == *"$CURRENT_RELEASE"* || $TAG == "v$CURRENT_RELEASE" ]];
then
break;
fi
- printf "%s\n\n" "$(gh release view --json body --jq '.body' -R $GITHUB_URL $TAG)"
+ printf "%s\n\n" "$(gh release view --json body --jq '.body' -R "$GITHUB_URL" "$TAG")"
done
}
-for EXTENSION in $(echo $JSON | jq -r '.customizations.vscode.extensions | flatten[]'); do
+while IFS= read -r EXTENSION; do
+ [[ -z "$EXTENSION" ]] && continue
+
NAME="${EXTENSION%%@*}"
CURRENT_VERSION="${EXTENSION#*@}"
- LATEST_NON_PRERELEASE_VERSION_JSON=$(vsce show --json $NAME | jq '[ .versions[] | select(.properties) | select(any(.properties[].key; contains("Microsoft.VisualStudio.Code.PreRelease")) | not) ][0]')
- LATEST_NON_PRERELEASE_VERSION=$(echo $LATEST_NON_PRERELEASE_VERSION_JSON | jq -r '.version')
+ LATEST_NON_PRERELEASE_VERSION_JSON=$(vsce show --json "$NAME" | jq '[ .versions[] | select(.properties) | select(any(.properties[].key; contains("Microsoft.VisualStudio.Code.PreRelease")) | not) ][0]')
+ LATEST_NON_PRERELEASE_VERSION=$(echo "$LATEST_NON_PRERELEASE_VERSION_JSON" | jq -r '.version')
- if [[ $CURRENT_VERSION != $LATEST_NON_PRERELEASE_VERSION ]];
+ if [[ $CURRENT_VERSION != "$LATEST_NON_PRERELEASE_VERSION" ]];
then
- GITHUB_URL=$(echo $LATEST_NON_PRERELEASE_VERSION_JSON | jq -r '.properties | map(select(.key == "Microsoft.VisualStudio.Services.Links.GitHub"))[] | .value')
+ GITHUB_URL=$(echo "$LATEST_NON_PRERELEASE_VERSION_JSON" | jq -r '.properties | map(select(.key == "Microsoft.VisualStudio.Services.Links.GitHub"))[] | .value')
if [[ -n "$GITHUB_URL" && "$GITHUB_URL" != "null" ]]; then
- RELEASE_DETAILS=$(get_github_releasenotes $GITHUB_URL $CURRENT_VERSION | prevent_github_backlinks | prevent_github_at_mentions)
- UPDATE_DETAILS_MARKDOWN=$(printf "Updates \`%s\` from %s to %s\n\nRelease notes
\n\n\n%s\n
\n \n\n%s" $NAME $CURRENT_VERSION $LATEST_NON_PRERELEASE_VERSION "$RELEASE_DETAILS" "$UPDATE_DETAILS_MARKDOWN")
+ RELEASE_DETAILS=$(get_github_releasenotes "$GITHUB_URL" "$CURRENT_VERSION" | prevent_github_backlinks | prevent_github_at_mentions)
+ UPDATE_DETAILS_MARKDOWN=$(printf "Updates \`%s\` from %s to %s\n\nRelease notes
\n\n\n%s\n
\n \n\n%s" "$NAME" "$CURRENT_VERSION" "$LATEST_NON_PRERELEASE_VERSION" "$RELEASE_DETAILS" "$UPDATE_DETAILS_MARKDOWN")
else
- UPDATE_DETAILS_MARKDOWN=$(printf "Updates \`%s\` from %s to %s\n\n%s" $NAME $CURRENT_VERSION $LATEST_NON_PRERELEASE_VERSION "$UPDATE_DETAILS_MARKDOWN")
+ UPDATE_DETAILS_MARKDOWN=$(printf "Updates \`%s\` from %s to %s\n\n%s" "$NAME" "$CURRENT_VERSION" "$LATEST_NON_PRERELEASE_VERSION" "$UPDATE_DETAILS_MARKDOWN")
fi
- UPDATED_EXTENSIONS_JSON=$(echo $UPDATED_EXTENSIONS_JSON | jq -c '. += ["'$NAME'"]')
+ UPDATED_EXTENSIONS_JSON=$(echo "$UPDATED_EXTENSIONS_JSON" | jq -c --arg name "$NAME" '. += [$name]')
fi
EXTENSIONS="\"$NAME@$LATEST_NON_PRERELEASE_VERSION\",$EXTENSIONS"
-done
+done < <(echo "$JSON" | jq -r '.customizations.vscode.extensions | flatten[]')
-EXTENSIONS=$(echo "[${EXTENSIONS::-1}]" | jq 'sort_by(. | ascii_downcase)')
-echo $JSON | jq '.customizations.vscode.extensions = $extensions' --argjson extensions "$EXTENSIONS" > $FILE
+if [[ -n "$EXTENSIONS" ]]; then
+ EXTENSIONS=$(echo "[${EXTENSIONS::-1}]" | jq 'sort_by(. | ascii_downcase)')
+else
+ EXTENSIONS="[]"
+fi
+echo "$JSON" | jq '.customizations.vscode.extensions = $extensions' --argjson extensions "$EXTENSIONS" > "$FILE"
echo "$UPDATE_DETAILS_MARKDOWN"
echo "$UPDATE_DETAILS_MARKDOWN" > "${RUNNER_TEMP}/markdown-summary.md"
-echo "$UPDATED_EXTENSIONS_JSON" > updated-extensions.json
+echo "$UPDATED_EXTENSIONS_JSON" > "${RUNNER_TEMP}/updated-extensions.json"
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 89e67e01..85064354 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -72,7 +72,8 @@ jobs:
id: update-extensions
with:
input-file: .devcontainer/${{ matrix.flavor }}/${{ matrix.file }}
- - run: |
+ - name: Generate PR body
+ run: |
{
echo "> [!NOTE]"
echo "> Before merging this PR, please conduct a manual test checking basic functionality of the updated plug-ins. There are limited automated tests for the VS Code Extension updates."
From 8132dedfda02dd99555c37c7774d2fcbeb16342f Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 11:15:12 +0000
Subject: [PATCH 15/24] ci: don't add files to the workspace
---
.github/workflows/update-dependencies.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 85064354..1fcb18b2 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -79,7 +79,7 @@ jobs:
echo "> Before merging this PR, please conduct a manual test checking basic functionality of the updated plug-ins. There are limited automated tests for the VS Code Extension updates."
echo ""
cat "$MARKDOWN_SUMMARY_FILE"
- } >> pull-request-body.md
+ } >> "${RUNNER_TEMP}/pull-request-body.md"
env:
MARKDOWN_SUMMARY_FILE: ${{ steps.update-extensions.outputs.markdown-summary-file }}
- uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
@@ -93,7 +93,7 @@ jobs:
with:
commit-message: "Update ${{ join(fromJson(steps.update-extensions.outputs.updated-dependencies), ', ') }} in ${{ matrix.file }}"
branch: feature/amp-devcontainer-${{ matrix.flavor }}/update-vscode-extensions-${{ matrix.file }}
- body-path: pull-request-body.md
+ body-path: "${RUNNER_TEMP}/pull-request-body.md"
title: "chore(deps, ${{ matrix.flavor }}): update ${{ join(fromJson(steps.update-extensions.outputs.updated-dependencies), ', ') }} in ${{ matrix.file }}"
labels: dependencies,vscode-extensions
token: ${{ steps.token.outputs.token }}
From f9114f46fca48cfa4bfa174f9bb9ca1cf4aa93fa Mon Sep 17 00:00:00 2001
From: "philips-software-forest-releaser[bot]"
<80338643+philips-software-forest-releaser[bot]@users.noreply.github.com>
Date: Fri, 30 Jan 2026 13:29:10 +0100
Subject: [PATCH 16/24] chore(deps, cpp): update mull-19 (#1115)
Update mull-19
Co-authored-by: philips-software-forest-releaser[bot] <80338643+philips-software-forest-releaser[bot]@users.noreply.github.com>
---
.devcontainer/cpp/apt-requirements-clang.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.devcontainer/cpp/apt-requirements-clang.json b/.devcontainer/cpp/apt-requirements-clang.json
index 5a9b33a1..3786b760 100644
--- a/.devcontainer/cpp/apt-requirements-clang.json
+++ b/.devcontainer/cpp/apt-requirements-clang.json
@@ -7,5 +7,5 @@
"libclang-rt-19-dev": "1:19.1.7~++20250804090312+cd708029e0b2-1~exp1~20250804210325.79",
"lld-19": "1:19.1.7~++20250804090312+cd708029e0b2-1~exp1~20250804210325.79",
"llvm-19": "1:19.1.7~++20250804090312+cd708029e0b2-1~exp1~20250804210325.79",
- "mull-19": "0.27.1"
+ "mull-19": "0.29.0"
}
From cbf92345861e1d8e02fe659c14ca2921fe9da4a9 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 13:34:32 +0100
Subject: [PATCH 17/24] Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Ron <45816308+rjaegers@users.noreply.github.com>
---
.github/workflows/update-dependencies.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 3f0577b4..4ef6be7d 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -93,7 +93,7 @@ jobs:
with:
commit-message: "Update ${{ join(fromJson(steps.update-extensions.outputs.updated-dependencies), ', ') }} in ${{ matrix.file }}"
branch: feature/amp-devcontainer-${{ matrix.flavor }}/update-vscode-extensions-${{ matrix.file }}
- body-path: "${RUNNER_TEMP}/pull-request-body.md"
+ body-path: ${{ runner.temp }}/pull-request-body.md
title: "chore(deps, ${{ matrix.flavor }}): update ${{ join(fromJson(steps.update-extensions.outputs.updated-dependencies), ', ') }} in ${{ matrix.file }}"
labels: dependencies,vscode-extensions
token: ${{ steps.token.outputs.token }}
From e6120153f60318e3cf035e4de88a52d3dc62076b Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Fri, 30 Jan 2026 13:35:23 +0100
Subject: [PATCH 18/24] Apply suggestion from @rjaegers
Signed-off-by: Ron <45816308+rjaegers@users.noreply.github.com>
---
.devcontainer/cpp/apt-requirements-clang.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.devcontainer/cpp/apt-requirements-clang.json b/.devcontainer/cpp/apt-requirements-clang.json
index 3786b760..5a9b33a1 100644
--- a/.devcontainer/cpp/apt-requirements-clang.json
+++ b/.devcontainer/cpp/apt-requirements-clang.json
@@ -7,5 +7,5 @@
"libclang-rt-19-dev": "1:19.1.7~++20250804090312+cd708029e0b2-1~exp1~20250804210325.79",
"lld-19": "1:19.1.7~++20250804090312+cd708029e0b2-1~exp1~20250804210325.79",
"llvm-19": "1:19.1.7~++20250804090312+cd708029e0b2-1~exp1~20250804210325.79",
- "mull-19": "0.29.0"
+ "mull-19": "0.27.1"
}
From 4c473dfd54f0d4d3361f475270ebe40fc5ba8fa0 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Mon, 2 Feb 2026 09:14:29 +0000
Subject: [PATCH 19/24] ci: shorten job names somewhat
---
.github/workflows/update-dependencies.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 4ef6be7d..2a041fe5 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -1,5 +1,5 @@
---
-name: Update Dependencies
+name: Update ๐ฆ
on:
pull_request:
@@ -11,7 +11,7 @@ permissions: {}
jobs:
update-apt-dependencies:
- name: Update APT Dependencies (๐จ ${{ matrix.flavor }})
+ name: OS (๐จ ${{ matrix.flavor }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
@@ -51,7 +51,7 @@ jobs:
sign-commits: true
update-vscode-extensions:
- name: Update VS Code Extensions (๐จ ${{ matrix.flavor }}, ${{ matrix.file }})
+ name: Extensions (๐จ ${{ matrix.flavor }}, ${{ matrix.file }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
From 0fca03706ee77f0e6caa9012b8f2c80c1b5e6ade Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Mon, 2 Feb 2026 09:21:16 +0000
Subject: [PATCH 20/24] ci: processed review comment
---
.github/actions/update-vscode-extensions/action.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/actions/update-vscode-extensions/action.yml b/.github/actions/update-vscode-extensions/action.yml
index 96b507f9..d1318af3 100644
--- a/.github/actions/update-vscode-extensions/action.yml
+++ b/.github/actions/update-vscode-extensions/action.yml
@@ -26,7 +26,7 @@ runs:
- run: |
"${GITHUB_ACTION_PATH}/update-vscode-extensions.sh" "${INPUT_FILE}"
echo "markdown-summary-file=${RUNNER_TEMP}/markdown-summary.md" >> "${GITHUB_OUTPUT}"
- echo "updated-dependencies=$(cat ${RUNNER_TEMP}/updated-extensions.json)" >> "${GITHUB_OUTPUT}"
+ echo "updated-dependencies=$(cat "${RUNNER_TEMP}/updated-extensions.json")" >> "${GITHUB_OUTPUT}"
rm "${RUNNER_TEMP}/updated-extensions.json"
id: update-extensions
shell: bash
From 8e8c3cad134f8b0e0cfa09c462cc9becea62420b Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Mon, 2 Feb 2026 09:33:18 +0000
Subject: [PATCH 21/24] ci: use secure temp files
---
.github/actions/update-vscode-extensions/action.yml | 3 ---
.../update-vscode-extensions.sh | 10 ++++++++--
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/.github/actions/update-vscode-extensions/action.yml b/.github/actions/update-vscode-extensions/action.yml
index d1318af3..4fad07ad 100644
--- a/.github/actions/update-vscode-extensions/action.yml
+++ b/.github/actions/update-vscode-extensions/action.yml
@@ -25,9 +25,6 @@ runs:
shell: bash
- run: |
"${GITHUB_ACTION_PATH}/update-vscode-extensions.sh" "${INPUT_FILE}"
- echo "markdown-summary-file=${RUNNER_TEMP}/markdown-summary.md" >> "${GITHUB_OUTPUT}"
- echo "updated-dependencies=$(cat "${RUNNER_TEMP}/updated-extensions.json")" >> "${GITHUB_OUTPUT}"
- rm "${RUNNER_TEMP}/updated-extensions.json"
id: update-extensions
shell: bash
env:
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index 7a74c075..860aab67 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -69,6 +69,12 @@ else
fi
echo "$JSON" | jq '.customizations.vscode.extensions = $extensions' --argjson extensions "$EXTENSIONS" > "$FILE"
+MARKDOWN_SUMMARY_FILE=$(mktemp "${RUNNER_TEMP}/markdown-summary.XXXXXX.md")
+
+echo "::group::VS Code Extensions Update Details"
echo "$UPDATE_DETAILS_MARKDOWN"
-echo "$UPDATE_DETAILS_MARKDOWN" > "${RUNNER_TEMP}/markdown-summary.md"
-echo "$UPDATED_EXTENSIONS_JSON" > "${RUNNER_TEMP}/updated-extensions.json"
+echo "::endgroup::"
+
+echo "$UPDATE_DETAILS_MARKDOWN" > "${MARKDOWN_SUMMARY_FILE}"
+echo "markdown-summary-file=${MARKDOWN_SUMMARY_FILE}" >> "${GITHUB_OUTPUT}"
+echo "updated-dependencies=${UPDATED_EXTENSIONS_JSON}" >> "${GITHUB_OUTPUT}"
From d025582d10863aafa6bea54e420876d1b6477f7f Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Mon, 2 Feb 2026 10:14:55 +0000
Subject: [PATCH 22/24] ci: process more review comments
---
.../update-vscode-extensions.sh | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index 860aab67..591067a3 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -2,7 +2,7 @@
set -Eeuo pipefail
-FILE=${1:?}
+FILE=${1:?"Usage: $0 "}
JSON=$(cat "$FILE")
EXTENSIONS=
UPDATE_DETAILS_MARKDOWN=
@@ -24,10 +24,10 @@ get_github_releasenotes() {
gh release list --exclude-drafts --exclude-pre-releases -R "$GITHUB_URL" --json name,tagName --jq '.[]' | while read -r RELEASE;
do
- NAME=$(echo "$RELEASE" | jq -r '.name')
+ RELEASE_NAME=$(echo "$RELEASE" | jq -r '.name')
TAG=$(echo "$RELEASE" | jq -r '.tagName')
- if [[ $NAME == *"$CURRENT_RELEASE"* || $TAG == "v$CURRENT_RELEASE" ]];
+ if [[ $RELEASE_NAME == *"$CURRENT_RELEASE"* || $TAG == "v$CURRENT_RELEASE" ]];
then
break;
fi
@@ -67,14 +67,21 @@ if [[ -n "$EXTENSIONS" ]]; then
else
EXTENSIONS="[]"
fi
+
echo "$JSON" | jq '.customizations.vscode.extensions = $extensions' --argjson extensions "$EXTENSIONS" > "$FILE"
-MARKDOWN_SUMMARY_FILE=$(mktemp "${RUNNER_TEMP}/markdown-summary.XXXXXX.md")
+echo "::group::๐ Changes to $FILE"
+git diff --color=always -- "$FILE" || true
+echo "::endgroup::"
echo "::group::VS Code Extensions Update Details"
echo "$UPDATE_DETAILS_MARKDOWN"
echo "::endgroup::"
+MARKDOWN_SUMMARY_FILE=$(mktemp "${RUNNER_TEMP:-/tmp}/markdown-summary.XXXXXX.md")
echo "$UPDATE_DETAILS_MARKDOWN" > "${MARKDOWN_SUMMARY_FILE}"
-echo "markdown-summary-file=${MARKDOWN_SUMMARY_FILE}" >> "${GITHUB_OUTPUT}"
-echo "updated-dependencies=${UPDATED_EXTENSIONS_JSON}" >> "${GITHUB_OUTPUT}"
+
+if [[ -n "${GITHUB_OUTPUT:-}" ]]; then
+ echo "markdown-summary-file=${MARKDOWN_SUMMARY_FILE}" >> "${GITHUB_OUTPUT}"
+ echo "updated-dependencies=${UPDATED_EXTENSIONS_JSON}" >> "${GITHUB_OUTPUT}"
+fi
From adbd4a849211ac23c93a71323c0a1a127e2ef6f4 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Mon, 2 Feb 2026 11:35:59 +0000
Subject: [PATCH 23/24] ci: switch to date based comparison for release notes
---
.../update-vscode-extensions.sh | 34 +++++++++++--------
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
index 591067a3..0df817d6 100755
--- a/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
+++ b/.github/actions/update-vscode-extensions/update-vscode-extensions.sh
@@ -20,18 +20,14 @@ prevent_github_at_mentions() {
get_github_releasenotes() {
local GITHUB_URL=${1:?}
- local CURRENT_RELEASE=${2:?}
-
- gh release list --exclude-drafts --exclude-pre-releases -R "$GITHUB_URL" --json name,tagName --jq '.[]' | while read -r RELEASE;
- do
- RELEASE_NAME=$(echo "$RELEASE" | jq -r '.name')
- TAG=$(echo "$RELEASE" | jq -r '.tagName')
-
- if [[ $RELEASE_NAME == *"$CURRENT_RELEASE"* || $TAG == "v$CURRENT_RELEASE" ]];
- then
- break;
- fi
-
+ local CURRENT_VERSION_DATE=${2:?}
+
+ # Fetch all releases newer than the current version's publish date
+ # This approach works regardless of versioning scheme (semver, date-based, etc.)
+ gh release list --exclude-drafts --exclude-pre-releases -R "$GITHUB_URL" \
+ --json tagName,publishedAt \
+ --jq ".[] | select(.publishedAt > \"$CURRENT_VERSION_DATE\") | .tagName" | \
+ while read -r TAG; do
printf "%s\n\n" "$(gh release view --json body --jq '.body' -R "$GITHUB_URL" "$TAG")"
done
}
@@ -42,7 +38,9 @@ while IFS= read -r EXTENSION; do
NAME="${EXTENSION%%@*}"
CURRENT_VERSION="${EXTENSION#*@}"
- LATEST_NON_PRERELEASE_VERSION_JSON=$(vsce show --json "$NAME" | jq '[ .versions[] | select(.properties) | select(any(.properties[].key; contains("Microsoft.VisualStudio.Code.PreRelease")) | not) ][0]')
+ # Fetch all non-prerelease versions with their dates
+ ALL_VERSIONS_JSON=$(vsce show --json "$NAME" | jq '[ .versions[] | select(.properties) | select(any(.properties[].key; contains("Microsoft.VisualStudio.Code.PreRelease")) | not) ]')
+ LATEST_NON_PRERELEASE_VERSION_JSON=$(echo "$ALL_VERSIONS_JSON" | jq '.[0]')
LATEST_NON_PRERELEASE_VERSION=$(echo "$LATEST_NON_PRERELEASE_VERSION_JSON" | jq -r '.version')
if [[ $CURRENT_VERSION != "$LATEST_NON_PRERELEASE_VERSION" ]];
@@ -50,7 +48,15 @@ while IFS= read -r EXTENSION; do
GITHUB_URL=$(echo "$LATEST_NON_PRERELEASE_VERSION_JSON" | jq -r '.properties | map(select(.key == "Microsoft.VisualStudio.Services.Links.GitHub"))[] | .value')
if [[ -n "$GITHUB_URL" && "$GITHUB_URL" != "null" ]]; then
- RELEASE_DETAILS=$(get_github_releasenotes "$GITHUB_URL" "$CURRENT_VERSION" | prevent_github_backlinks | prevent_github_at_mentions)
+ # Get the publish date of the current version for date-based release matching
+ CURRENT_VERSION_DATE=$(echo "$ALL_VERSIONS_JSON" | jq -r --arg version "$CURRENT_VERSION" 'map(select(.version == $version))[0].lastUpdated // empty')
+
+ if [[ -n "$CURRENT_VERSION_DATE" ]]; then
+ RELEASE_DETAILS=$(get_github_releasenotes "$GITHUB_URL" "$CURRENT_VERSION_DATE" | prevent_github_backlinks | prevent_github_at_mentions)
+ else
+ echo "::warning::Could not find publish date for $NAME@$CURRENT_VERSION, skipping release notes"
+ RELEASE_DETAILS=""
+ fi
UPDATE_DETAILS_MARKDOWN=$(printf "Updates \`%s\` from %s to %s\n\nRelease notes
\n\n\n%s\n
\n \n\n%s" "$NAME" "$CURRENT_VERSION" "$LATEST_NON_PRERELEASE_VERSION" "$RELEASE_DETAILS" "$UPDATE_DETAILS_MARKDOWN")
else
UPDATE_DETAILS_MARKDOWN=$(printf "Updates \`%s\` from %s to %s\n\n%s" "$NAME" "$CURRENT_VERSION" "$LATEST_NON_PRERELEASE_VERSION" "$UPDATE_DETAILS_MARKDOWN")
From 770eb7213b44fd6fcb80000fc9bd2e79a7c41064 Mon Sep 17 00:00:00 2001
From: Ron <45816308+rjaegers@users.noreply.github.com>
Date: Mon, 2 Feb 2026 11:46:23 +0000
Subject: [PATCH 24/24] ci: give a visual cue of a dry-run
---
.github/workflows/update-dependencies.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml
index 2a041fe5..bebb2257 100644
--- a/.github/workflows/update-dependencies.yml
+++ b/.github/workflows/update-dependencies.yml
@@ -1,5 +1,5 @@
---
-name: Update ๐ฆ
+name: ๐ฆ Update
on:
pull_request:
@@ -11,7 +11,7 @@ permissions: {}
jobs:
update-apt-dependencies:
- name: OS (๐จ ${{ matrix.flavor }})
+ name: ${{ github.event_name == 'pull_request' && '๐งช' || '' }} OS (๐จ ${{ matrix.flavor }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
@@ -51,7 +51,7 @@ jobs:
sign-commits: true
update-vscode-extensions:
- name: Extensions (๐จ ${{ matrix.flavor }}, ${{ matrix.file }})
+ name: ${{ github.event_name == 'pull_request' && '๐งช' || '' }} Extensions (๐จ ${{ matrix.flavor }}, ${{ matrix.file }})
runs-on: ubuntu-latest
strategy:
fail-fast: false