diff --git a/images/Dockerfile b/images/Dockerfile
index cce8cae34d4..83b59dc3acc 100644
--- a/images/Dockerfile
+++ b/images/Dockerfile
@@ -5,8 +5,8 @@ ARG TARGETOS
ARG TARGETARCH
ARG RUNNER_VERSION
ARG RUNNER_CONTAINER_HOOKS_VERSION=0.7.0
-ARG DOCKER_VERSION=29.9.0
-ARG BUILDX_VERSION=0.38.0
+ARG DOCKER_VERSION=29.9.2
+ARG BUILDX_VERSION=0.38.1
RUN apt update -y && apt install curl unzip -y
diff --git a/patches/last_processed_commit.txt b/patches/last_processed_commit.txt
index 0c9126a5426..7da421d3d85 100644
--- a/patches/last_processed_commit.txt
+++ b/patches/last_processed_commit.txt
@@ -1 +1 @@
-9abfe11d2abd9de09d3a8d933d7ed701ea0518a3
+4197182ef8f39c719f66038c1bc9b34cd9e9ac9a
diff --git a/patches/runner-main-sdk8-arm.patch b/patches/runner-main-sdk8-arm.patch
index 2fc4c18c986..5b8577e1dd1 100644
--- a/patches/runner-main-sdk8-arm.patch
+++ b/patches/runner-main-sdk8-arm.patch
@@ -1,5 +1,5 @@
diff --git a/src/Misc/externals.sh b/src/Misc/externals.sh
-index 90978b6d..ee3fd607 100755
+index c385c5ef..6a83be46 100755
--- a/src/Misc/externals.sh
+++ b/src/Misc/externals.sh
@@ -4,6 +4,9 @@ PRECACHE=$2
@@ -19,10 +19,10 @@ index 90978b6d..ee3fd607 100755
+ acquireExternalTool "$NODE_URL/v${NODE22_VERSION}/node-v${NODE22_VERSION}-linux-armv7l.tar.gz" node22 fix_nested_dir
fi
diff --git a/src/Runner.Common/Constants.cs b/src/Runner.Common/Constants.cs
-index 4acf4943..97d3dd87 100644
+index 3c9a1768..d63bdf18 100644
--- a/src/Runner.Common/Constants.cs
+++ b/src/Runner.Common/Constants.cs
-@@ -197,6 +197,7 @@ namespace GitHub.Runner.Common
+@@ -198,6 +198,7 @@ namespace GitHub.Runner.Common
// Node versions
public static readonly string Node20 = "node20";
public static readonly string Node24 = "node24";
@@ -30,7 +30,7 @@ index 4acf4943..97d3dd87 100644
// Environment variables for controlling node version selection
public static readonly string ForceNode24Variable = "FORCE_JAVASCRIPT_ACTIONS_TO_NODE24";
-@@ -211,6 +212,12 @@ namespace GitHub.Runner.Common
+@@ -212,6 +213,12 @@ namespace GitHub.Runner.Common
public static readonly string DeprecateLinuxArm32Flag = "actions_runner_deprecate_linux_arm32";
public static readonly string KillLinuxArm32Flag = "actions_runner_kill_linux_arm32";
@@ -599,27 +599,27 @@ index 5ad39f3c..5cbc9c0d 100644
true
NU1701;NU1603;NU1603;xUnit2013;SYSLIB0050;SYSLIB0051
diff --git a/src/dev.sh b/src/dev.sh
-index 5fd2b549..e12b1f2c 100755
+index e4e8d10d..e12b1f2c 100755
--- a/src/dev.sh
+++ b/src/dev.sh
@@ -17,7 +17,7 @@ LAYOUT_DIR="$SCRIPT_DIR/../_layout"
DOWNLOAD_DIR="$SCRIPT_DIR/../_downloads/netcore2x"
PACKAGE_DIR="$SCRIPT_DIR/../_package"
DOTNETSDK_ROOT="$SCRIPT_DIR/../_dotnetsdk"
--DOTNETSDK_VERSION="8.0.425"
+-DOTNETSDK_VERSION="8.0.427"
+DOTNETSDK_VERSION="9.0.318"
DOTNETSDK_INSTALLDIR="$DOTNETSDK_ROOT/$DOTNETSDK_VERSION"
RUNNER_VERSION=$(cat runnerversion)
diff --git a/src/global.json b/src/global.json
-index 5821cb36..70cfe5c2 100644
+index 63e95af8..70cfe5c2 100644
--- a/src/global.json
+++ b/src/global.json
@@ -1,5 +1,5 @@
{
"sdk": {
-- "version": "8.0.425"
+- "version": "8.0.427"
+ "version": "9.0.318"
}
}
-# From upstream commit: 9abfe11d2abd9de09d3a8d933d7ed701ea0518a3
+# From upstream commit: 4197182ef8f39c719f66038c1bc9b34cd9e9ac9a
diff --git a/patches/runner-main-sdk8-ppc64le.patch b/patches/runner-main-sdk8-ppc64le.patch
index ec171006b06..f77c631713d 100644
--- a/patches/runner-main-sdk8-ppc64le.patch
+++ b/patches/runner-main-sdk8-ppc64le.patch
@@ -16,7 +16,7 @@ index 9c069b12..d26b0dc2 100644
diff --git a/src/Misc/externals.sh b/src/Misc/externals.sh
-index 90978b6d..05ed87f3 100755
+index c385c5ef..f708159e 100755
--- a/src/Misc/externals.sh
+++ b/src/Misc/externals.sh
@@ -187,3 +187,13 @@ fi
@@ -86,7 +86,7 @@ index 14cc6bab..c8ed8b92 100755
if ! [ -x "$(command -v ldconfig)" ]; then
diff --git a/src/Runner.Common/Constants.cs b/src/Runner.Common/Constants.cs
-index 4acf4943..5a0d934e 100644
+index 3c9a1768..44083c86 100644
--- a/src/Runner.Common/Constants.cs
+++ b/src/Runner.Common/Constants.cs
@@ -59,7 +59,9 @@ namespace GitHub.Runner.Common
@@ -216,7 +216,7 @@ index 5ad39f3c..183f5ab7 100644
NU1701;NU1603;NU1603;xUnit2013;SYSLIB0050;SYSLIB0051
diff --git a/src/dev.sh b/src/dev.sh
-index 5fd2b549..5f751981 100755
+index e4e8d10d..073026fe 100755
--- a/src/dev.sh
+++ b/src/dev.sh
@@ -54,6 +54,8 @@ elif [[ "$CURRENT_PLATFORM" == 'linux' ]]; then
@@ -284,4 +284,4 @@ index 056a312e..3f9a3679 100644
-# From upstream commit: 9abfe11d2abd9de09d3a8d933d7ed701ea0518a3
+# From upstream commit: 4197182ef8f39c719f66038c1bc9b34cd9e9ac9a
diff --git a/patches/runner-main-sdk8-s390x.patch b/patches/runner-main-sdk8-s390x.patch
index ec171006b06..f77c631713d 100644
--- a/patches/runner-main-sdk8-s390x.patch
+++ b/patches/runner-main-sdk8-s390x.patch
@@ -16,7 +16,7 @@ index 9c069b12..d26b0dc2 100644
diff --git a/src/Misc/externals.sh b/src/Misc/externals.sh
-index 90978b6d..05ed87f3 100755
+index c385c5ef..f708159e 100755
--- a/src/Misc/externals.sh
+++ b/src/Misc/externals.sh
@@ -187,3 +187,13 @@ fi
@@ -86,7 +86,7 @@ index 14cc6bab..c8ed8b92 100755
if ! [ -x "$(command -v ldconfig)" ]; then
diff --git a/src/Runner.Common/Constants.cs b/src/Runner.Common/Constants.cs
-index 4acf4943..5a0d934e 100644
+index 3c9a1768..44083c86 100644
--- a/src/Runner.Common/Constants.cs
+++ b/src/Runner.Common/Constants.cs
@@ -59,7 +59,9 @@ namespace GitHub.Runner.Common
@@ -216,7 +216,7 @@ index 5ad39f3c..183f5ab7 100644
NU1701;NU1603;NU1603;xUnit2013;SYSLIB0050;SYSLIB0051
diff --git a/src/dev.sh b/src/dev.sh
-index 5fd2b549..5f751981 100755
+index e4e8d10d..073026fe 100755
--- a/src/dev.sh
+++ b/src/dev.sh
@@ -54,6 +54,8 @@ elif [[ "$CURRENT_PLATFORM" == 'linux' ]]; then
@@ -284,4 +284,4 @@ index 056a312e..3f9a3679 100644
-# From upstream commit: 9abfe11d2abd9de09d3a8d933d7ed701ea0518a3
+# From upstream commit: 4197182ef8f39c719f66038c1bc9b34cd9e9ac9a
diff --git a/src/Misc/expressionFunc/hashFiles/package-lock.json b/src/Misc/expressionFunc/hashFiles/package-lock.json
index e6c38adc868..0a4f599c4de 100644
--- a/src/Misc/expressionFunc/hashFiles/package-lock.json
+++ b/src/Misc/expressionFunc/hashFiles/package-lock.json
@@ -14,8 +14,8 @@
"devDependencies": {
"@stylistic/eslint-plugin": "^5.10.0",
"@types/node": "^22.0.0",
- "@typescript-eslint/eslint-plugin": "^8.71.2",
- "@typescript-eslint/parser": "^8.71.0",
+ "@typescript-eslint/eslint-plugin": "^8.72.0",
+ "@typescript-eslint/parser": "^8.72.0",
"@vercel/ncc": "^0.45.0",
"eslint": "^8.47.0",
"eslint-plugin-github": "^6.1.2",
@@ -370,17 +370,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.2.tgz",
- "integrity": "sha512-K72/pvT7qpm8q3k8G5u93NCSN1RcLxX5h7Gw0bQpbMXviBHeY6Nx1WEwmk9wP+eKTSQ8ecxvcgt/ZX/rB938xQ==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.72.0.tgz",
+ "integrity": "sha512-aysKgysPX9XOv/dk95UkvUDe++Q3n3dJPG9CEWT3RUccxfkPJ+Qn6nhKPDhZXU6Ofo9kgwGWwKyQCnZIXTgngg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.12.2",
- "@typescript-eslint/scope-manager": "8.71.2",
- "@typescript-eslint/type-utils": "8.71.2",
- "@typescript-eslint/utils": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/scope-manager": "8.72.0",
+ "@typescript-eslint/type-utils": "8.72.0",
+ "@typescript-eslint/utils": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"ignore": "^7.0.5",
"natural-compare": "^1.4.0",
"ts-api-utils": "^2.5.0"
@@ -393,20 +393,20 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.71.2",
+ "@typescript-eslint/parser": "^8.72.0",
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
"typescript": ">=4.8.4 <6.1.0"
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/project-service": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.2.tgz",
- "integrity": "sha512-Pd68GsLVh5ZXlcEccFPdhSOvtHZ/2WU0XsA8zmXOS3F158lVlcTLhfQ6qvtL1RzbMie0Kp8xtbVwAg4nejKPHw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.0.tgz",
+ "integrity": "sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.71.2",
- "@typescript-eslint/types": "^8.71.2",
+ "@typescript-eslint/tsconfig-utils": "^8.72.0",
+ "@typescript-eslint/types": "^8.72.0",
"debug": "^4.4.3"
},
"engines": {
@@ -421,14 +421,14 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.2.tgz",
- "integrity": "sha512-YF4wgg5iUX5Obywoac27B56FhozMNFhdJSbh11H5GBAwmBtfyRhmgTQqW9tRNNmHDvsZ2CX6UGzoz+YfYn2Leg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.0.tgz",
+ "integrity": "sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2"
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -439,9 +439,9 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.2.tgz",
- "integrity": "sha512-jz49TAWokm/7yWD9/o837nYax9DyALxIPOImdImvVzo6canBCZYzin8zJyqNR5k1j9K1DE0bVvr0XYB+99uAdg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.0.tgz",
+ "integrity": "sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -456,9 +456,9 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.2.tgz",
- "integrity": "sha512-y5Ukl3oVp7e/VGxqIoEXoeb/Roj71PAJ4WG/N/RGj+eeDvKRLM15kGr9MijLbN0i03S52zxu31Z98E5gWChJKw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.0.tgz",
+ "integrity": "sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -470,16 +470,16 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.2.tgz",
- "integrity": "sha512-DgNOEsl4pdYzwSL+N/Cl33tX1Hlw3FvId73LnKXfq7jnrF2viOEn7X+P7RBkkSWCVm92gnWd28GIC5vJuLREeA==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.0.tgz",
+ "integrity": "sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.71.2",
- "@typescript-eslint/tsconfig-utils": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/project-service": "8.72.0",
+ "@typescript-eslint/tsconfig-utils": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"debug": "^4.4.3",
"minimatch": "^10.2.2",
"semver": "^7.7.3",
@@ -498,16 +498,16 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.71.2.tgz",
- "integrity": "sha512-RyKa1G1M9rKHDhrk+HJtiF1MvLD5Ux2JW3TSkzw+02pRALdpJb+QzG1Y5em+LvCgzGwgg8H7mBRFKljNz7ImPw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.72.0.tgz",
+ "integrity": "sha512-0up3oArJZBYnzOaEXKo8DmI43QvMZyPoFEt9LWzRJcyl/RcJjfKKPebknN1VbTgXBf3M/KggUh5uUMdURLnseg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/typescript-estree": "8.71.2"
+ "@typescript-eslint/scope-manager": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/typescript-estree": "8.72.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -522,13 +522,13 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.2.tgz",
- "integrity": "sha512-zozlN0UA32bSG2zkKAgQyRYSbEISVoyU6vvkKYo2aSny74D8Jh4e+POkJ6Lk0dlezZi5x7TtD+88Xb06IB8nhg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.0.tgz",
+ "integrity": "sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.71.2",
+ "@typescript-eslint/types": "8.72.0",
"eslint-visitor-keys": "^5.0.0"
},
"engines": {
@@ -602,16 +602,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.71.2.tgz",
- "integrity": "sha512-aTtmZjp/x3gsGHkDs04/1I8kNogBJkpQaeGaN0PfiG43NzDEmW2n+OP5im9wfsvyX0yP1UZWBrAGtDBfH9jEVw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.72.0.tgz",
+ "integrity": "sha512-0O+x3ynciD6zuXb1CKSu165haQV6ey53DKhHHUnujP7U+XlltJG+/keT0Xhd1HXCze+IHf7Tvt39ovyepX/LNw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/typescript-estree": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/scope-manager": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/typescript-estree": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"debug": "^4.4.3"
},
"engines": {
@@ -627,14 +627,14 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.2.tgz",
- "integrity": "sha512-Pd68GsLVh5ZXlcEccFPdhSOvtHZ/2WU0XsA8zmXOS3F158lVlcTLhfQ6qvtL1RzbMie0Kp8xtbVwAg4nejKPHw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.0.tgz",
+ "integrity": "sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.71.2",
- "@typescript-eslint/types": "^8.71.2",
+ "@typescript-eslint/tsconfig-utils": "^8.72.0",
+ "@typescript-eslint/types": "^8.72.0",
"debug": "^4.4.3"
},
"engines": {
@@ -649,14 +649,14 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.2.tgz",
- "integrity": "sha512-YF4wgg5iUX5Obywoac27B56FhozMNFhdJSbh11H5GBAwmBtfyRhmgTQqW9tRNNmHDvsZ2CX6UGzoz+YfYn2Leg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.0.tgz",
+ "integrity": "sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2"
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -667,9 +667,9 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.2.tgz",
- "integrity": "sha512-jz49TAWokm/7yWD9/o837nYax9DyALxIPOImdImvVzo6canBCZYzin8zJyqNR5k1j9K1DE0bVvr0XYB+99uAdg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.0.tgz",
+ "integrity": "sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -684,9 +684,9 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.2.tgz",
- "integrity": "sha512-y5Ukl3oVp7e/VGxqIoEXoeb/Roj71PAJ4WG/N/RGj+eeDvKRLM15kGr9MijLbN0i03S52zxu31Z98E5gWChJKw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.0.tgz",
+ "integrity": "sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -698,16 +698,16 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.2.tgz",
- "integrity": "sha512-DgNOEsl4pdYzwSL+N/Cl33tX1Hlw3FvId73LnKXfq7jnrF2viOEn7X+P7RBkkSWCVm92gnWd28GIC5vJuLREeA==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.0.tgz",
+ "integrity": "sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.71.2",
- "@typescript-eslint/tsconfig-utils": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/project-service": "8.72.0",
+ "@typescript-eslint/tsconfig-utils": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"debug": "^4.4.3",
"minimatch": "^10.2.2",
"semver": "^7.7.3",
@@ -726,13 +726,13 @@
}
},
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.2.tgz",
- "integrity": "sha512-zozlN0UA32bSG2zkKAgQyRYSbEISVoyU6vvkKYo2aSny74D8Jh4e+POkJ6Lk0dlezZi5x7TtD+88Xb06IB8nhg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.0.tgz",
+ "integrity": "sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.71.2",
+ "@typescript-eslint/types": "8.72.0",
"eslint-visitor-keys": "^5.0.0"
},
"engines": {
@@ -850,15 +850,15 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.71.2.tgz",
- "integrity": "sha512-cC8UaalCViJkb3rH/xLIvidEwoFRtMZMUqDjjJMGEKaTFwYRHYBcoczlEGHuvkHEO8svRDrgZ0yQgOArFmwang==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.72.0.tgz",
+ "integrity": "sha512-gEXxmmbSTSOVTC37IYYvremOM31v+UN2W772bJxmVYPhAOPSUxtacyb7wkm1EhkYKU6KzFJsdU44DCV4to0LWw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/typescript-estree": "8.71.2",
- "@typescript-eslint/utils": "8.71.2",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/typescript-estree": "8.72.0",
+ "@typescript-eslint/utils": "8.72.0",
"debug": "^4.4.3",
"ts-api-utils": "^2.5.0"
},
@@ -875,14 +875,14 @@
}
},
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/project-service": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.2.tgz",
- "integrity": "sha512-Pd68GsLVh5ZXlcEccFPdhSOvtHZ/2WU0XsA8zmXOS3F158lVlcTLhfQ6qvtL1RzbMie0Kp8xtbVwAg4nejKPHw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.0.tgz",
+ "integrity": "sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.71.2",
- "@typescript-eslint/types": "^8.71.2",
+ "@typescript-eslint/tsconfig-utils": "^8.72.0",
+ "@typescript-eslint/types": "^8.72.0",
"debug": "^4.4.3"
},
"engines": {
@@ -897,14 +897,14 @@
}
},
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.2.tgz",
- "integrity": "sha512-YF4wgg5iUX5Obywoac27B56FhozMNFhdJSbh11H5GBAwmBtfyRhmgTQqW9tRNNmHDvsZ2CX6UGzoz+YfYn2Leg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.0.tgz",
+ "integrity": "sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2"
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -915,9 +915,9 @@
}
},
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.2.tgz",
- "integrity": "sha512-jz49TAWokm/7yWD9/o837nYax9DyALxIPOImdImvVzo6canBCZYzin8zJyqNR5k1j9K1DE0bVvr0XYB+99uAdg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.0.tgz",
+ "integrity": "sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -932,9 +932,9 @@
}
},
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.2.tgz",
- "integrity": "sha512-y5Ukl3oVp7e/VGxqIoEXoeb/Roj71PAJ4WG/N/RGj+eeDvKRLM15kGr9MijLbN0i03S52zxu31Z98E5gWChJKw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.0.tgz",
+ "integrity": "sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -946,16 +946,16 @@
}
},
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.2.tgz",
- "integrity": "sha512-DgNOEsl4pdYzwSL+N/Cl33tX1Hlw3FvId73LnKXfq7jnrF2viOEn7X+P7RBkkSWCVm92gnWd28GIC5vJuLREeA==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.0.tgz",
+ "integrity": "sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.71.2",
- "@typescript-eslint/tsconfig-utils": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/project-service": "8.72.0",
+ "@typescript-eslint/tsconfig-utils": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"debug": "^4.4.3",
"minimatch": "^10.2.2",
"semver": "^7.7.3",
@@ -974,16 +974,16 @@
}
},
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.71.2.tgz",
- "integrity": "sha512-RyKa1G1M9rKHDhrk+HJtiF1MvLD5Ux2JW3TSkzw+02pRALdpJb+QzG1Y5em+LvCgzGwgg8H7mBRFKljNz7ImPw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.72.0.tgz",
+ "integrity": "sha512-0up3oArJZBYnzOaEXKo8DmI43QvMZyPoFEt9LWzRJcyl/RcJjfKKPebknN1VbTgXBf3M/KggUh5uUMdURLnseg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/typescript-estree": "8.71.2"
+ "@typescript-eslint/scope-manager": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/typescript-estree": "8.72.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -998,13 +998,13 @@
}
},
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.2.tgz",
- "integrity": "sha512-zozlN0UA32bSG2zkKAgQyRYSbEISVoyU6vvkKYo2aSny74D8Jh4e+POkJ6Lk0dlezZi5x7TtD+88Xb06IB8nhg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.0.tgz",
+ "integrity": "sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.71.2",
+ "@typescript-eslint/types": "8.72.0",
"eslint-visitor-keys": "^5.0.0"
},
"engines": {
@@ -4746,9 +4746,9 @@
}
},
"node_modules/undici": {
- "version": "6.29.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.29.0.tgz",
- "integrity": "sha512-R+RODBqp6i2pPflGdq+xIOUkl+RNfGgHwoinecKu/JCuf2uO06cOKoDbI2P7Dn6KcswdKwrczbU6IYJ6K8X+wg==",
+ "version": "6.29.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.29.1.tgz",
+ "integrity": "sha512-EvRlUt/QqAEvXdQeRMYUfwOQsfzpDztykrG2owGEE/rBOBoYv9uF39ZzsNDh4lTFHhTr2XOZjKkYgueD12ZmGA==",
"license": "MIT",
"engines": {
"node": ">=18.17"
@@ -5185,65 +5185,65 @@
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.2.tgz",
- "integrity": "sha512-K72/pvT7qpm8q3k8G5u93NCSN1RcLxX5h7Gw0bQpbMXviBHeY6Nx1WEwmk9wP+eKTSQ8ecxvcgt/ZX/rB938xQ==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.72.0.tgz",
+ "integrity": "sha512-aysKgysPX9XOv/dk95UkvUDe++Q3n3dJPG9CEWT3RUccxfkPJ+Qn6nhKPDhZXU6Ofo9kgwGWwKyQCnZIXTgngg==",
"dev": true,
"requires": {
"@eslint-community/regexpp": "^4.12.2",
- "@typescript-eslint/scope-manager": "8.71.2",
- "@typescript-eslint/type-utils": "8.71.2",
- "@typescript-eslint/utils": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/scope-manager": "8.72.0",
+ "@typescript-eslint/type-utils": "8.72.0",
+ "@typescript-eslint/utils": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"ignore": "^7.0.5",
"natural-compare": "^1.4.0",
"ts-api-utils": "^2.5.0"
},
"dependencies": {
"@typescript-eslint/project-service": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.2.tgz",
- "integrity": "sha512-Pd68GsLVh5ZXlcEccFPdhSOvtHZ/2WU0XsA8zmXOS3F158lVlcTLhfQ6qvtL1RzbMie0Kp8xtbVwAg4nejKPHw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.0.tgz",
+ "integrity": "sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==",
"dev": true,
"requires": {
- "@typescript-eslint/tsconfig-utils": "^8.71.2",
- "@typescript-eslint/types": "^8.71.2",
+ "@typescript-eslint/tsconfig-utils": "^8.72.0",
+ "@typescript-eslint/types": "^8.72.0",
"debug": "^4.4.3"
}
},
"@typescript-eslint/scope-manager": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.2.tgz",
- "integrity": "sha512-YF4wgg5iUX5Obywoac27B56FhozMNFhdJSbh11H5GBAwmBtfyRhmgTQqW9tRNNmHDvsZ2CX6UGzoz+YfYn2Leg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.0.tgz",
+ "integrity": "sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2"
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0"
}
},
"@typescript-eslint/tsconfig-utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.2.tgz",
- "integrity": "sha512-jz49TAWokm/7yWD9/o837nYax9DyALxIPOImdImvVzo6canBCZYzin8zJyqNR5k1j9K1DE0bVvr0XYB+99uAdg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.0.tgz",
+ "integrity": "sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==",
"dev": true,
"requires": {}
},
"@typescript-eslint/types": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.2.tgz",
- "integrity": "sha512-y5Ukl3oVp7e/VGxqIoEXoeb/Roj71PAJ4WG/N/RGj+eeDvKRLM15kGr9MijLbN0i03S52zxu31Z98E5gWChJKw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.0.tgz",
+ "integrity": "sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.2.tgz",
- "integrity": "sha512-DgNOEsl4pdYzwSL+N/Cl33tX1Hlw3FvId73LnKXfq7jnrF2viOEn7X+P7RBkkSWCVm92gnWd28GIC5vJuLREeA==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.0.tgz",
+ "integrity": "sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==",
"dev": true,
"requires": {
- "@typescript-eslint/project-service": "8.71.2",
- "@typescript-eslint/tsconfig-utils": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/project-service": "8.72.0",
+ "@typescript-eslint/tsconfig-utils": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"debug": "^4.4.3",
"minimatch": "^10.2.2",
"semver": "^7.7.3",
@@ -5252,24 +5252,24 @@
}
},
"@typescript-eslint/utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.71.2.tgz",
- "integrity": "sha512-RyKa1G1M9rKHDhrk+HJtiF1MvLD5Ux2JW3TSkzw+02pRALdpJb+QzG1Y5em+LvCgzGwgg8H7mBRFKljNz7ImPw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.72.0.tgz",
+ "integrity": "sha512-0up3oArJZBYnzOaEXKo8DmI43QvMZyPoFEt9LWzRJcyl/RcJjfKKPebknN1VbTgXBf3M/KggUh5uUMdURLnseg==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/typescript-estree": "8.71.2"
+ "@typescript-eslint/scope-manager": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/typescript-estree": "8.72.0"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.2.tgz",
- "integrity": "sha512-zozlN0UA32bSG2zkKAgQyRYSbEISVoyU6vvkKYo2aSny74D8Jh4e+POkJ6Lk0dlezZi5x7TtD+88Xb06IB8nhg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.0.tgz",
+ "integrity": "sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.71.2",
+ "@typescript-eslint/types": "8.72.0",
"eslint-visitor-keys": "^5.0.0"
}
},
@@ -5312,62 +5312,62 @@
}
},
"@typescript-eslint/parser": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.71.2.tgz",
- "integrity": "sha512-aTtmZjp/x3gsGHkDs04/1I8kNogBJkpQaeGaN0PfiG43NzDEmW2n+OP5im9wfsvyX0yP1UZWBrAGtDBfH9jEVw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.72.0.tgz",
+ "integrity": "sha512-0O+x3ynciD6zuXb1CKSu165haQV6ey53DKhHHUnujP7U+XlltJG+/keT0Xhd1HXCze+IHf7Tvt39ovyepX/LNw==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/typescript-estree": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/scope-manager": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/typescript-estree": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"debug": "^4.4.3"
},
"dependencies": {
"@typescript-eslint/project-service": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.2.tgz",
- "integrity": "sha512-Pd68GsLVh5ZXlcEccFPdhSOvtHZ/2WU0XsA8zmXOS3F158lVlcTLhfQ6qvtL1RzbMie0Kp8xtbVwAg4nejKPHw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.0.tgz",
+ "integrity": "sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==",
"dev": true,
"requires": {
- "@typescript-eslint/tsconfig-utils": "^8.71.2",
- "@typescript-eslint/types": "^8.71.2",
+ "@typescript-eslint/tsconfig-utils": "^8.72.0",
+ "@typescript-eslint/types": "^8.72.0",
"debug": "^4.4.3"
}
},
"@typescript-eslint/scope-manager": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.2.tgz",
- "integrity": "sha512-YF4wgg5iUX5Obywoac27B56FhozMNFhdJSbh11H5GBAwmBtfyRhmgTQqW9tRNNmHDvsZ2CX6UGzoz+YfYn2Leg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.0.tgz",
+ "integrity": "sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2"
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0"
}
},
"@typescript-eslint/tsconfig-utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.2.tgz",
- "integrity": "sha512-jz49TAWokm/7yWD9/o837nYax9DyALxIPOImdImvVzo6canBCZYzin8zJyqNR5k1j9K1DE0bVvr0XYB+99uAdg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.0.tgz",
+ "integrity": "sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==",
"dev": true,
"requires": {}
},
"@typescript-eslint/types": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.2.tgz",
- "integrity": "sha512-y5Ukl3oVp7e/VGxqIoEXoeb/Roj71PAJ4WG/N/RGj+eeDvKRLM15kGr9MijLbN0i03S52zxu31Z98E5gWChJKw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.0.tgz",
+ "integrity": "sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.2.tgz",
- "integrity": "sha512-DgNOEsl4pdYzwSL+N/Cl33tX1Hlw3FvId73LnKXfq7jnrF2viOEn7X+P7RBkkSWCVm92gnWd28GIC5vJuLREeA==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.0.tgz",
+ "integrity": "sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==",
"dev": true,
"requires": {
- "@typescript-eslint/project-service": "8.71.2",
- "@typescript-eslint/tsconfig-utils": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/project-service": "8.72.0",
+ "@typescript-eslint/tsconfig-utils": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"debug": "^4.4.3",
"minimatch": "^10.2.2",
"semver": "^7.7.3",
@@ -5376,12 +5376,12 @@
}
},
"@typescript-eslint/visitor-keys": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.2.tgz",
- "integrity": "sha512-zozlN0UA32bSG2zkKAgQyRYSbEISVoyU6vvkKYo2aSny74D8Jh4e+POkJ6Lk0dlezZi5x7TtD+88Xb06IB8nhg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.0.tgz",
+ "integrity": "sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.71.2",
+ "@typescript-eslint/types": "8.72.0",
"eslint-visitor-keys": "^5.0.0"
}
},
@@ -5446,62 +5446,62 @@
"requires": {}
},
"@typescript-eslint/type-utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.71.2.tgz",
- "integrity": "sha512-cC8UaalCViJkb3rH/xLIvidEwoFRtMZMUqDjjJMGEKaTFwYRHYBcoczlEGHuvkHEO8svRDrgZ0yQgOArFmwang==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.72.0.tgz",
+ "integrity": "sha512-gEXxmmbSTSOVTC37IYYvremOM31v+UN2W772bJxmVYPhAOPSUxtacyb7wkm1EhkYKU6KzFJsdU44DCV4to0LWw==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/typescript-estree": "8.71.2",
- "@typescript-eslint/utils": "8.71.2",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/typescript-estree": "8.72.0",
+ "@typescript-eslint/utils": "8.72.0",
"debug": "^4.4.3",
"ts-api-utils": "^2.5.0"
},
"dependencies": {
"@typescript-eslint/project-service": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.2.tgz",
- "integrity": "sha512-Pd68GsLVh5ZXlcEccFPdhSOvtHZ/2WU0XsA8zmXOS3F158lVlcTLhfQ6qvtL1RzbMie0Kp8xtbVwAg4nejKPHw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.72.0.tgz",
+ "integrity": "sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==",
"dev": true,
"requires": {
- "@typescript-eslint/tsconfig-utils": "^8.71.2",
- "@typescript-eslint/types": "^8.71.2",
+ "@typescript-eslint/tsconfig-utils": "^8.72.0",
+ "@typescript-eslint/types": "^8.72.0",
"debug": "^4.4.3"
}
},
"@typescript-eslint/scope-manager": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.2.tgz",
- "integrity": "sha512-YF4wgg5iUX5Obywoac27B56FhozMNFhdJSbh11H5GBAwmBtfyRhmgTQqW9tRNNmHDvsZ2CX6UGzoz+YfYn2Leg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.72.0.tgz",
+ "integrity": "sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2"
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0"
}
},
"@typescript-eslint/tsconfig-utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.2.tgz",
- "integrity": "sha512-jz49TAWokm/7yWD9/o837nYax9DyALxIPOImdImvVzo6canBCZYzin8zJyqNR5k1j9K1DE0bVvr0XYB+99uAdg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.72.0.tgz",
+ "integrity": "sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==",
"dev": true,
"requires": {}
},
"@typescript-eslint/types": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.2.tgz",
- "integrity": "sha512-y5Ukl3oVp7e/VGxqIoEXoeb/Roj71PAJ4WG/N/RGj+eeDvKRLM15kGr9MijLbN0i03S52zxu31Z98E5gWChJKw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.72.0.tgz",
+ "integrity": "sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.2.tgz",
- "integrity": "sha512-DgNOEsl4pdYzwSL+N/Cl33tX1Hlw3FvId73LnKXfq7jnrF2viOEn7X+P7RBkkSWCVm92gnWd28GIC5vJuLREeA==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.72.0.tgz",
+ "integrity": "sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==",
"dev": true,
"requires": {
- "@typescript-eslint/project-service": "8.71.2",
- "@typescript-eslint/tsconfig-utils": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/visitor-keys": "8.71.2",
+ "@typescript-eslint/project-service": "8.72.0",
+ "@typescript-eslint/tsconfig-utils": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/visitor-keys": "8.72.0",
"debug": "^4.4.3",
"minimatch": "^10.2.2",
"semver": "^7.7.3",
@@ -5510,24 +5510,24 @@
}
},
"@typescript-eslint/utils": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.71.2.tgz",
- "integrity": "sha512-RyKa1G1M9rKHDhrk+HJtiF1MvLD5Ux2JW3TSkzw+02pRALdpJb+QzG1Y5em+LvCgzGwgg8H7mBRFKljNz7ImPw==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.72.0.tgz",
+ "integrity": "sha512-0up3oArJZBYnzOaEXKo8DmI43QvMZyPoFEt9LWzRJcyl/RcJjfKKPebknN1VbTgXBf3M/KggUh5uUMdURLnseg==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.71.2",
- "@typescript-eslint/types": "8.71.2",
- "@typescript-eslint/typescript-estree": "8.71.2"
+ "@typescript-eslint/scope-manager": "8.72.0",
+ "@typescript-eslint/types": "8.72.0",
+ "@typescript-eslint/typescript-estree": "8.72.0"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "8.71.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.2.tgz",
- "integrity": "sha512-zozlN0UA32bSG2zkKAgQyRYSbEISVoyU6vvkKYo2aSny74D8Jh4e+POkJ6Lk0dlezZi5x7TtD+88Xb06IB8nhg==",
+ "version": "8.72.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.72.0.tgz",
+ "integrity": "sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "8.71.2",
+ "@typescript-eslint/types": "8.72.0",
"eslint-visitor-keys": "^5.0.0"
}
},
@@ -8059,9 +8059,9 @@
}
},
"undici": {
- "version": "6.29.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.29.0.tgz",
- "integrity": "sha512-R+RODBqp6i2pPflGdq+xIOUkl+RNfGgHwoinecKu/JCuf2uO06cOKoDbI2P7Dn6KcswdKwrczbU6IYJ6K8X+wg=="
+ "version": "6.29.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.29.1.tgz",
+ "integrity": "sha512-EvRlUt/QqAEvXdQeRMYUfwOQsfzpDztykrG2owGEE/rBOBoYv9uF39ZzsNDh4lTFHhTr2XOZjKkYgueD12ZmGA=="
},
"undici-types": {
"version": "6.21.0",
diff --git a/src/Misc/expressionFunc/hashFiles/package.json b/src/Misc/expressionFunc/hashFiles/package.json
index 93de6b2c44c..c0e559033e7 100644
--- a/src/Misc/expressionFunc/hashFiles/package.json
+++ b/src/Misc/expressionFunc/hashFiles/package.json
@@ -37,8 +37,8 @@
"devDependencies": {
"@stylistic/eslint-plugin": "^5.10.0",
"@types/node": "^22.0.0",
- "@typescript-eslint/eslint-plugin": "^8.71.2",
- "@typescript-eslint/parser": "^8.71.0",
+ "@typescript-eslint/eslint-plugin": "^8.72.0",
+ "@typescript-eslint/parser": "^8.72.0",
"@vercel/ncc": "^0.45.0",
"eslint": "^8.47.0",
"eslint-plugin-github": "^6.1.2",
diff --git a/src/Misc/externals.sh b/src/Misc/externals.sh
index 90978b6d53b..c385c5ef382 100755
--- a/src/Misc/externals.sh
+++ b/src/Misc/externals.sh
@@ -7,7 +7,7 @@ NODE_ALPINE_URL=https://github.com/actions/alpine_nodejs/releases/download
# When you update Node versions you must also create a new release of alpine_nodejs at that updated version.
# Follow the instructions here: https://github.com/actions/alpine_nodejs?tab=readme-ov-file#getting-started
NODE20_VERSION="20.20.2"
-NODE24_VERSION="24.21.0"
+NODE24_VERSION="24.22.1"
get_abs_path() {
# exploits the fact that pwd will print abs path when no args
diff --git a/src/Misc/layoutbin/update.cmd.template b/src/Misc/layoutbin/update.cmd.template
index 66267a7277e..7d2f4e7238b 100644
--- a/src/Misc/layoutbin/update.cmd.template
+++ b/src/Misc/layoutbin/update.cmd.template
@@ -120,7 +120,7 @@ if ERRORLEVEL 1 (
echo [%date% %time%] Update succeed >> "%logfile%" 2>&1
-type nul > update.finished
+type nul > "%rootfolder%\update.finished"
echo [%date% %time%] update.finished file creation succeed >> "%logfile%" 2>&1
rem rename the update log file with %logfile%.succeed/.failed/succeedneedrestart
@@ -143,4 +143,3 @@ goto :eof
echo [%date% %time%] Rename "%logfile%" to be "%logfile%.failed" >> "%logfile%" 2>&1
move "%logfile%" "%logfile%.failed" >nul
goto :eof
-
diff --git a/src/Misc/layoutbin/update.sh.template b/src/Misc/layoutbin/update.sh.template
index 82ada18b917..06e804ec5e7 100755
--- a/src/Misc/layoutbin/update.sh.template
+++ b/src/Misc/layoutbin/update.sh.template
@@ -204,7 +204,7 @@ fi
date "+[%F %T-%4N] Update succeed" >> "$logfile"
-touch update.finished
+touch "$rootfolder/update.finished"
date "+[%F %T-%4N] update.finished file creation succeed" >> "$logfile"
# rename the update log file with %logfile%.succeed/.failed/succeedneedrestart
diff --git a/src/Misc/layoutroot/run-helper.cmd.template b/src/Misc/layoutroot/run-helper.cmd.template
index 389280ef7c8..7cb9b6c8ec5 100644
--- a/src/Misc/layoutroot/run-helper.cmd.template
+++ b/src/Misc/layoutroot/run-helper.cmd.template
@@ -1,5 +1,5 @@
@echo off
-SET UPDATEFILE=update.finished
+SET "UPDATEFILE=%~dp0update.finished"
"%~dp0\bin\Runner.Listener.exe" run %*
rem using `if %ERRORLEVEL% EQU N` instead of `if ERRORLEVEL N`
@@ -32,9 +32,9 @@ if %ERRORLEVEL% EQU 3 (
rem Wait for 30 seconds or for flag file to exists for the ephemeral runner update process finish
echo "Runner listener exit because of updating, re-launch runner after successful update"
FOR /L %%G IN (1,1,30) DO (
- IF EXIST %UPDATEFILE% (
+ IF EXIST "%UPDATEFILE%" (
echo "Update finished successfully."
- del %FILE%
+ del "%UPDATEFILE%"
exit /b 1
)
ping 127.0.0.1 -n 2 -w 1000 >NUL
@@ -46,9 +46,9 @@ if %ERRORLEVEL% EQU 4 (
rem Wait for 30 seconds or for flag file to exists for the runner update process finish
echo "Runner listener exit because of updating, re-launch runner after successful update"
FOR /L %%G IN (1,1,30) DO (
- IF EXIST %UPDATEFILE% (
+ IF EXIST "%UPDATEFILE%" (
echo "Update finished successfully."
- del %FILE%
+ del "%UPDATEFILE%"
exit /b 1
)
ping 127.0.0.1 -n 2 -w 1000 >NUL
diff --git a/src/Misc/layoutroot/run-helper.sh.template b/src/Misc/layoutroot/run-helper.sh.template
index 813c747355a..e40787e3a10 100755
--- a/src/Misc/layoutroot/run-helper.sh.template
+++ b/src/Misc/layoutroot/run-helper.sh.template
@@ -32,7 +32,7 @@ if [ ! -z "$RUNNER_WAIT_FOR_DOCKER_IN_SECONDS" ]; then
fi
fi
-updateFile="update.finished"
+updateFile="$DIR/update.finished"
"$DIR"/bin/Runner.Listener run $*
returnCode=$?
if [[ $returnCode == 0 ]]; then
diff --git a/src/Runner.Common/Constants.cs b/src/Runner.Common/Constants.cs
index 4acf4943632..3c9a17681d8 100644
--- a/src/Runner.Common/Constants.cs
+++ b/src/Runner.Common/Constants.cs
@@ -182,6 +182,7 @@ public static class Features
public static readonly string OverrideDebuggerWelcomeMessage = "actions_runner_override_debugger_welcome_message";
public static readonly string AllowArtifactsFile = "actions_runner_allow_artifacts_file";
public static readonly string SelfRepository = "actions_self_repository";
+ public static readonly string FixEmbeddedGitHubContext = "actions_fix_embedded_github_context";
}
// Categories reported to the service alongside an infrastructure failure so
diff --git a/src/Runner.Listener/SelfUpdater.cs b/src/Runner.Listener/SelfUpdater.cs
index 9cf6ae8a9e9..170ccb27355 100644
--- a/src/Runner.Listener/SelfUpdater.cs
+++ b/src/Runner.Listener/SelfUpdater.cs
@@ -96,10 +96,11 @@ public async Task SelfUpdate(AgentRefreshMessage updateMessage, IJobDispat
// For L0, we will skip execute update script.
if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("_GITHUB_ACTION_EXECUTE_UPDATE_SCRIPT")))
{
- string flagFile = "update.finished";
+ string flagFile = Path.Combine(HostContext.GetDirectory(WellKnownDirectory.Root), "update.finished");
IOUtil.DeleteFile(flagFile);
// kick off update script
Process invokeScript = new();
+ invokeScript.StartInfo.WorkingDirectory = HostContext.GetDirectory(WellKnownDirectory.Root);
#if OS_WINDOWS
invokeScript.StartInfo.FileName = WhichUtil.Which("cmd.exe", trace: Trace);
invokeScript.StartInfo.Arguments = $"/c \"{updateScript}\"";
diff --git a/src/Runner.Listener/SelfUpdaterV2.cs b/src/Runner.Listener/SelfUpdaterV2.cs
index 78a2acdd3ad..4914eee8041 100644
--- a/src/Runner.Listener/SelfUpdaterV2.cs
+++ b/src/Runner.Listener/SelfUpdaterV2.cs
@@ -96,10 +96,11 @@ public async Task SelfUpdate(RunnerRefreshMessage updateMessage, IJobDispa
if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("_GITHUB_ACTION_EXECUTE_UPDATE_SCRIPT")))
#endif
{
- string flagFile = "update.finished";
+ string flagFile = Path.Combine(HostContext.GetDirectory(WellKnownDirectory.Root), "update.finished");
IOUtil.DeleteFile(flagFile);
// kick off update script
Process invokeScript = new();
+ invokeScript.StartInfo.WorkingDirectory = HostContext.GetDirectory(WellKnownDirectory.Root);
#if OS_WINDOWS
invokeScript.StartInfo.FileName = WhichUtil.Which("cmd.exe", trace: Trace);
invokeScript.StartInfo.Arguments = $"/c \"{updateScript}\"";
diff --git a/src/Runner.Worker/ExecutionContext.cs b/src/Runner.Worker/ExecutionContext.cs
index 0f9410821c6..824c3c921f8 100644
--- a/src/Runner.Worker/ExecutionContext.cs
+++ b/src/Runner.Worker/ExecutionContext.cs
@@ -488,6 +488,7 @@ public IExecutionContext CreateChild(
///
/// An embedded execution context shares the same record ID, record name, logger,
/// but NOT the cancellation token (just like workflow steps contexts - they don't share a token)
+ /// When enabled, its GitHub context is a shallow copy of the containing execution context's GitHub context.
///
public IExecutionContext CreateEmbeddedChild(
string scopeName,
@@ -497,7 +498,17 @@ public IExecutionContext CreateEmbeddedChild(
Dictionary intraActionState = null,
string siblingScopeName = null)
{
- return Root.CreateChild(_record.Id, _record.Name, _record.Id.ToString("N"), scopeName, contextName, stage, logger: _logger, isEmbedded: true, embeddedIssueCollector: _embeddedIssueCollector, cancellationTokenSource: null, intraActionState: intraActionState, embeddedId: embeddedId, siblingScopeName: siblingScopeName, timeout: GetRemainingTimeout(), recordOrder: _record.Order);
+ var child = Root.CreateChild(_record.Id, _record.Name, _record.Id.ToString("N"), scopeName, contextName, stage, logger: _logger, isEmbedded: true, embeddedIssueCollector: _embeddedIssueCollector, cancellationTokenSource: null, intraActionState: intraActionState, embeddedId: embeddedId, siblingScopeName: siblingScopeName, timeout: GetRemainingTimeout(), recordOrder: _record.Order);
+
+ if (Global.Variables.GetBoolean(Constants.Runner.Features.FixEmbeddedGitHubContext) == true)
+ {
+ // Background actions and nested composites should have a GitHub context separate from the root.
+ var gitHubContext = ExpressionValues["github"] as GitHubContext;
+ ArgUtil.NotNull(gitHubContext, nameof(gitHubContext));
+ child.ExpressionValues["github"] = gitHubContext.ShallowCopy();
+ }
+
+ return child;
}
public void Start(string currentOperation = null)
diff --git a/src/Runner.Worker/Handlers/CompositeActionHandler.cs b/src/Runner.Worker/Handlers/CompositeActionHandler.cs
index 6db8995d0d4..3deec1cbb63 100644
--- a/src/Runner.Worker/Handlers/CompositeActionHandler.cs
+++ b/src/Runner.Worker/Handlers/CompositeActionHandler.cs
@@ -151,11 +151,14 @@ public async Task RunAsync(ActionRunStage stage)
step.ExecutionContext.ExpressionValues["steps"] = ExecutionContext.Global.StepsContext.GetScope(childScopeName);
}
- // Shallow copy github context
- var gitHubContext = step.ExecutionContext.ExpressionValues["github"] as GitHubContext;
- ArgUtil.NotNull(gitHubContext, nameof(gitHubContext));
- gitHubContext = gitHubContext.ShallowCopy();
- step.ExecutionContext.ExpressionValues["github"] = gitHubContext;
+ if (ExecutionContext.Global.Variables.GetBoolean(Constants.Runner.Features.FixEmbeddedGitHubContext) != true)
+ {
+ // Shallow copy github context
+ var gitHubContext = step.ExecutionContext.ExpressionValues["github"] as GitHubContext;
+ ArgUtil.NotNull(gitHubContext, nameof(gitHubContext));
+ gitHubContext = gitHubContext.ShallowCopy();
+ step.ExecutionContext.ExpressionValues["github"] = gitHubContext;
+ }
// Set GITHUB_ACTION_PATH
step.ExecutionContext.SetGitHubContext("action_path", ActionDirectory);
diff --git a/src/Test/L0/Worker/ExecutionContextL0.cs b/src/Test/L0/Worker/ExecutionContextL0.cs
index 553c8b154ff..b373bd5d195 100644
--- a/src/Test/L0/Worker/ExecutionContextL0.cs
+++ b/src/Test/L0/Worker/ExecutionContextL0.cs
@@ -17,6 +17,93 @@ namespace GitHub.Runner.Common.Tests.Worker
{
public sealed class ExecutionContextL0
{
+ [Theory]
+ [InlineData("true", true, ActionRunStage.Main, "owner/probe", "probe-sha")]
+ [InlineData("true", false, ActionRunStage.Main, "owner/probe", "probe-sha")]
+ [InlineData("true", false, ActionRunStage.Pre, "owner/probe", "probe-sha")]
+ [InlineData("true", false, ActionRunStage.Post, "owner/probe", "probe-sha")]
+ [InlineData("true", true, ActionRunStage.Main, "", "")]
+ [InlineData("false", true, ActionRunStage.Main, "owner/probe", "probe-sha")]
+ [InlineData(null, true, ActionRunStage.Main, "owner/probe", "probe-sha")]
+ [InlineData("false", false, ActionRunStage.Main, "owner/probe", "probe-sha")]
+ [InlineData(null, false, ActionRunStage.Main, "owner/probe", "probe-sha")]
+ [Trait("Level", "L0")]
+ [Trait("Category", "Worker")]
+ public void CreateEmbeddedChild_GitHubContextInheritanceHonorsFeatureFlag(string featureFlag, bool isBackground, ActionRunStage stage, string repository, string actionRef)
+ {
+ using (TestHostContext hc = CreateTestContext())
+ {
+ var jobRequest = new Pipelines.AgentJobRequestMessage(new TaskOrchestrationPlanReference(), new TimelineReference(), Guid.NewGuid(), "job", "job", null, null, null, new Dictionary(), new List(), new Pipelines.JobResources(), new DictionaryContextData(), new Pipelines.WorkspaceOptions(), new List(), null, null, null, null, null);
+ if (featureFlag != null)
+ {
+ jobRequest.Variables[Constants.Runner.Features.FixEmbeddedGitHubContext] = new VariableValue(featureFlag);
+ }
+ jobRequest.ContextData["github"] = new DictionaryContextData();
+ hc.SetSingleton(new Mock().Object);
+ hc.EnqueueInstance(new Mock().Object);
+ hc.EnqueueInstance(new Mock().Object);
+
+ var jobContext = new Runner.Worker.ExecutionContext();
+ jobContext.Initialize(hc);
+ jobContext.InitializeJob(jobRequest, CancellationToken.None);
+ jobContext.SetGitHubContext("action_repository", "actions/checkout");
+ jobContext.SetGitHubContext("action_ref", "v6");
+
+ var composite = jobContext.CreateChild(Guid.NewGuid(), "probe", "probe", null, "probe", stage, isBackground: isBackground);
+ // Background actions and nested composites have a GitHub context separate from the root.
+ composite.ExpressionValues["github"] = ((GitHubContext)composite.ExpressionValues["github"]).ShallowCopy();
+ composite.SetGitHubContext("action_repository", repository);
+ composite.SetGitHubContext("action_ref", actionRef);
+ composite.SetGitHubContext("action_path", "/actions/probe");
+
+ var child = composite.CreateEmbeddedChild("probe", "first", Guid.NewGuid(), stage);
+ var sibling = composite.CreateEmbeddedChild("probe", "second", Guid.NewGuid(), stage);
+
+ if (featureFlag != "true")
+ {
+ Assert.Same(jobContext.ExpressionValues["github"], child.ExpressionValues["github"]);
+ Assert.Same(jobContext.ExpressionValues["github"], sibling.ExpressionValues["github"]);
+ Assert.Equal("actions/checkout", child.GetGitHubContext("action_repository"));
+ Assert.Equal("v6", child.GetGitHubContext("action_ref"));
+ Assert.Equal(repository, composite.GetGitHubContext("action_repository"));
+ Assert.Equal(actionRef, composite.GetGitHubContext("action_ref"));
+ return;
+ }
+
+ Assert.Equal(repository, child.GetGitHubContext("action_repository"));
+ Assert.Equal(actionRef, child.GetGitHubContext("action_ref"));
+ Assert.Equal("/actions/probe", child.GetGitHubContext("action_path"));
+ Assert.NotSame(composite.ExpressionValues["github"], child.ExpressionValues["github"]);
+ Assert.NotSame(child.ExpressionValues["github"], sibling.ExpressionValues["github"]);
+ Assert.Same(jobContext, child.Root);
+ Assert.Same(composite.Global, child.Global);
+ Assert.Equal(composite.Id, child.Id);
+ Assert.True(child.IsEmbedded);
+ Assert.Equal(stage, child.Stage);
+
+ child.SetGitHubContext("action_repository", "owner/nested");
+ child.SetGitHubContext("action_ref", "nested-sha");
+ child.SetGitHubContext("action_path", "/actions/nested");
+ var nested = child.CreateEmbeddedChild("probe.first", "nested", Guid.NewGuid(), stage);
+
+ Assert.Equal("owner/nested", nested.GetGitHubContext("action_repository"));
+ Assert.Equal("nested-sha", nested.GetGitHubContext("action_ref"));
+ Assert.Equal("/actions/nested", nested.GetGitHubContext("action_path"));
+ Assert.NotSame(child.ExpressionValues["github"], nested.ExpressionValues["github"]);
+ nested.SetGitHubContext("action_repository", "owner/deeper");
+ Assert.Equal("owner/nested", child.GetGitHubContext("action_repository"));
+
+ foreach (var context in new[] { composite, sibling })
+ {
+ Assert.Equal(repository, context.GetGitHubContext("action_repository"));
+ Assert.Equal(actionRef, context.GetGitHubContext("action_ref"));
+ Assert.Equal("/actions/probe", context.GetGitHubContext("action_path"));
+ }
+ Assert.Equal("actions/checkout", jobContext.GetGitHubContext("action_repository"));
+ Assert.Equal("v6", jobContext.GetGitHubContext("action_ref"));
+ }
+ }
+
[Fact]
[Trait("Level", "L0")]
[Trait("Category", "Worker")]
diff --git a/src/dev.sh b/src/dev.sh
index 5fd2b549255..e4e8d10d628 100755
--- a/src/dev.sh
+++ b/src/dev.sh
@@ -17,7 +17,7 @@ LAYOUT_DIR="$SCRIPT_DIR/../_layout"
DOWNLOAD_DIR="$SCRIPT_DIR/../_downloads/netcore2x"
PACKAGE_DIR="$SCRIPT_DIR/../_package"
DOTNETSDK_ROOT="$SCRIPT_DIR/../_dotnetsdk"
-DOTNETSDK_VERSION="8.0.425"
+DOTNETSDK_VERSION="8.0.427"
DOTNETSDK_INSTALLDIR="$DOTNETSDK_ROOT/$DOTNETSDK_VERSION"
RUNNER_VERSION=$(cat runnerversion)
diff --git a/src/global.json b/src/global.json
index 5821cb3638a..63e95af852b 100644
--- a/src/global.json
+++ b/src/global.json
@@ -1,5 +1,5 @@
{
"sdk": {
- "version": "8.0.425"
+ "version": "8.0.427"
}
}