Refactor Docker command options to use escaped options and add tests for quoting environment variables in scripts

This commit is contained in:
Salman Chishti - SalmanMKC
2025-09-22 23:28:07 +01:00
parent 2b472844d3
commit ece418e8c4
4 changed files with 183 additions and 7 deletions

View File

@@ -5,6 +5,7 @@ using System.Threading;
using System.Threading.Tasks;
using GitHub.Runner.Worker.Container;
using GitHub.Runner.Common;
using GitHub.Runner.Worker.Container;
using GitHub.Runner.Sdk;
using System.Linq;
using GitHub.Runner.Worker.Container.ContainerHooks;
@@ -220,7 +221,7 @@ namespace GitHub.Runner.Worker.Handlers
// [OPTIONS]
dockerCommandArgs.Add($"-i");
dockerCommandArgs.Add($"--workdir {workingDirectory}");
dockerCommandArgs.Add(DockerUtil.CreateEscapedOption("--workdir", workingDirectory));
foreach (var env in environment)
{
// e.g. -e MY_SECRET maps the value into the exec'ed process without exposing