From 73805dd8df20a09fa257111b92387450d8d5e53d Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:17:10 -0500 Subject: [PATCH 001/188] link: actions/runner#... Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1751-runner-job-hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/1751-runner-job-hooks.md b/docs/adrs/1751-runner-job-hooks.md index 8e81f50e780..c9c739dad31 100644 --- a/docs/adrs/1751-runner-job-hooks.md +++ b/docs/adrs/1751-runner-job-hooks.md @@ -2,7 +2,7 @@ ## Context -This ADR details the design changes for supporting custom configurable hooks for on various runner events. This has been a long requested user feature [here](https://github.com/actions/runner/issues/1543), [here](https://github.com/actions/runner/issues/699) and [here](https://github.com/actions/runner/issues/1116) for users to have more information on runner observability, and for the ability to run cleanup and teardown jobs. +This ADR details the design changes for supporting custom configurable hooks for on various runner events. This has been a long requested user feature ([actions/runner#699](https://github.com/actions/runner/issues/699) [actions/runner#1116](https://github.com/actions/runner/issues/1116), and [actions/runner#1543](https://github.com/actions/runner/issues/1543)) for users to have more information on runner observability, and for the ability to run cleanup and teardown jobs. This feature is mainly intended for self hosted runner administrators. From fe556c55deb5e07bea737a10b5c14bd98a100d95 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:17:31 -0500 Subject: [PATCH 002/188] link: joelparkerhenderson/architecture-decision-record Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/README.md b/docs/adrs/README.md index a5274b04797..3334190e26c 100644 --- a/docs/adrs/README.md +++ b/docs/adrs/README.md @@ -16,4 +16,4 @@ This folder includes ADRs for the actions runner. ADRs are proposed in the form --- -- More information about ADRs can be found [here](https://github.com/joelparkerhenderson/architecture_decision_record). +- More information about ADRs can be found in [joelparkerhenderson/architecture-decision-record](https://github.com/joelparkerhenderson/architecture_decision_record). From d4928939b7ea777a3cd5413b7a19028ea500e96d Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:18:24 -0500 Subject: [PATCH 003/188] link: dotnet load SSL CA certificates on each OS Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/checks/sslcert.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/checks/sslcert.md b/docs/checks/sslcert.md index 2ab09b722d2..d1edc4deb3a 100644 --- a/docs/checks/sslcert.md +++ b/docs/checks/sslcert.md @@ -24,9 +24,7 @@ Depends on how your SSL server certificate gets configured, you might need to do ### Trust CA certificate for the Runner -The actions runner is a dotnet core application which will follow how dotnet load SSL CA certificates on each OS. - -You can get full details documentation at [here](https://docs.microsoft.com/en-us/dotnet/standard/security/cross-platform-cryptography#x509store) +The actions runner is a dotnet core application which will follow how [dotnet load SSL CA certificates on each OS](https://docs.microsoft.com/en-us/dotnet/standard/security/cross-platform-cryptography#x509store). In short: - Windows: Load from Windows certificate store. From 4e982fe6e361d6d9ef06dec18993f5999546003f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:18:58 -0500 Subject: [PATCH 004/188] link: automate your use of self-hosted runners Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- scripts/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/README.md b/scripts/README.md index 9735150510b..405d693c31f 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -1,4 +1,3 @@ # Sample scripts for self-hosted runners -Here are some examples to work from if you'd like to automate your use of self-hosted runners. -See the docs [here](../docs/automate.md). +Here are some examples to work from if you'd like to [automate your use of self-hosted runners](../docs/automate.md). From b9dd20078dc3e020b852133c13586c49e54869b2 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:35:54 -0500 Subject: [PATCH 005/188] Add space between `//` and comment Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Configuration/ConfigurationManager.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Runner.Listener/Configuration/ConfigurationManager.cs b/src/Runner.Listener/Configuration/ConfigurationManager.cs index 2c18d8d60f6..3c0ff5052e7 100644 --- a/src/Runner.Listener/Configuration/ConfigurationManager.cs +++ b/src/Runner.Listener/Configuration/ConfigurationManager.cs @@ -493,7 +493,7 @@ public void DeleteLocalRunnerConfig() { bool isConfigured = _store.IsConfigured(); bool hasCredentials = _store.HasCredentials(); - //delete credential config files + // delete credential config files var currentAction = "Removing .credentials"; if (hasCredentials) { @@ -507,7 +507,7 @@ public void DeleteLocalRunnerConfig() _term.WriteLine("Does not exist. Skipping " + currentAction); } - //delete settings config file + // delete settings config file currentAction = "Removing .runner"; if (isConfigured) { @@ -528,7 +528,7 @@ public async Task UnconfigureAsync(CommandSettings command) try { - //stop, uninstall service and remove service config file + // stop, uninstall service and remove service config file if (_store.IsServiceConfigured()) { currentAction = "Removing service"; @@ -545,7 +545,7 @@ public async Task UnconfigureAsync(CommandSettings command) #endif } - //delete agent from the server + // delete agent from the server currentAction = "Removing runner from the server"; bool isConfigured = _store.IsConfigured(); bool hasCredentials = _store.HasCredentials(); From 85b1bfe239550bff618c4a43247025cb6e71a4ff Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:55:11 -0500 Subject: [PATCH 006/188] spelling: a string to the method Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs b/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs index e098bfd7562..9089b7d5d6b 100644 --- a/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs +++ b/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs @@ -266,7 +266,7 @@ public async Task GetTokenAsync( { // It may seem strange to pass the string value of TotalSeconds into this method, but testing // showed that ETW is persnickety when you register a method in an EventSource that doesn't - // use strings or integers as its parameters. It is easier to simply give the method a string + // use strings or integers as its parameters. It is easier to simply give a string to the method // than figure out to get ETW to reliably accept a double or TimeSpan. VssHttpEventSource.Log.AuthorizationDelayed(getTokenTime.TotalSeconds.ToString()); } From 2564ff026d1938fa4f40f275bfdd79d2c8fa0879 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:02:35 -0500 Subject: [PATCH 007/188] spelling: a Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- scripts/remove-svc.sh | 2 +- src/Runner.Listener/JobDispatcher.cs | 2 +- src/Runner.Listener/Runner.cs | 2 +- src/Runner.Worker/ActionManager.cs | 2 +- src/Sdk/Common/Common/Authentication/VssCredentials.cs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/remove-svc.sh b/scripts/remove-svc.sh index 7fae4ca976e..ba9583239b0 100755 --- a/scripts/remove-svc.sh +++ b/scripts/remove-svc.sh @@ -51,7 +51,7 @@ runner_plat=linux echo echo "Generating a removal token..." -# if the scope has a slash, it's an repo runner +# if the scope has a slash, it's a repo runner base_api_url="https://api.github.com/orgs" if [[ "$runner_scope" == *\/* ]]; then base_api_url="https://api.github.com/repos" diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index bbc09593c92..28220258e28 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -261,7 +261,7 @@ private async Task EnsureDispatchFinished(WorkerDispatcher jobDispatch, bool can // if the runner received a new job request while a previous job request is still running, this typically indicates two situations // 1. a runner bug caused a server and runner mismatch on the state of the job request, e.g. the runner didn't renew the jobrequest // properly but thinks it still owns the job reqest, however the server has already abandoned the jobrequest. - // 2. a server bug or design change that allowed the server to send more than one job request to an given runner that hasn't finished + // 2. a server bug or design change that allowed the server to send more than one job request to a given runner that hasn't finished //. a previous job request. var runnerServer = HostContext.GetService(); TaskAgentJobRequest request = null; diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index 8262d31f12d..fc7199d6d00 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -518,7 +518,7 @@ private async Task RunAsync(RunnerSettings settings, bool runOnce = false) autoUpdateInProgress = false; if (await selfUpdateTask) { - Trace.Info("Auto update task finished at backend, an runner update is ready to apply exit the current runner instance."); + Trace.Info("Auto update task finished at backend, a runner update is ready to apply exit the current runner instance."); Trace.Info("Stop message queue looping."); messageQueueLoopTokenSource.Cancel(); try diff --git a/src/Runner.Worker/ActionManager.cs b/src/Runner.Worker/ActionManager.cs index e38ea4d28cd..17363577ca2 100644 --- a/src/Runner.Worker/ActionManager.cs +++ b/src/Runner.Worker/ActionManager.cs @@ -700,7 +700,7 @@ private async Task BuildActionContainerAsync(IExecutionContext executionContext, catch (Exception ex) when (!executionContext.CancellationToken.IsCancellationRequested) // Do not retry if the run is cancelled. { // UnresolvableActionDownloadInfoException is a 422 client error, don't retry - // NonRetryableActionDownloadInfoException is an non-retryable exception from Actions + // NonRetryableActionDownloadInfoException is a non-retryable exception from Actions // Some possible cases are: // * Repo is rate limited // * Repo or tag doesn't exist, or isn't public diff --git a/src/Sdk/Common/Common/Authentication/VssCredentials.cs b/src/Sdk/Common/Common/Authentication/VssCredentials.cs index c29c5fa3119..6e642a3c2be 100644 --- a/src/Sdk/Common/Common/Authentication/VssCredentials.cs +++ b/src/Sdk/Common/Common/Authentication/VssCredentials.cs @@ -291,7 +291,7 @@ public bool TryGetTokenProvider( /// Determines if the web response is an authentication redirect for issued token providers. /// /// The web response - /// True if this is an token authentication redirect, false otherwise + /// True if this is a token authentication redirect, false otherwise internal bool IsAuthenticationChallenge(IHttpResponse webResponse) { if (webResponse == null) From bf76b92d78a7085d2c998d11fc8f4c8713c3764b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:55:13 -0500 Subject: [PATCH 008/188] spelling: able to Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Service/Windows/RunnerService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Service/Windows/RunnerService.cs b/src/Runner.Service/Windows/RunnerService.cs index ca2652f624e..58d66989e96 100644 --- a/src/Runner.Service/Windows/RunnerService.cs +++ b/src/Runner.Service/Windows/RunnerService.cs @@ -246,7 +246,7 @@ private RunnerUpdateResult HandleRunnerUpdate() FileInfo[] updateLogs = dirInfo.GetFiles("SelfUpdate-*-*.log.*") ?? new FileInfo[0]; if (updateLogs.Length == 0) { - // totally wrong, we are not even get a update log. + // totally wrong, we are not even able to get a update log. return RunnerUpdateResult.Failed; } else From ba6090231acd75cce1b5054453472675e308b996 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:57:44 -0500 Subject: [PATCH 009/188] spelling: accidentally Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1891-container-hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/1891-container-hooks.md b/docs/adrs/1891-container-hooks.md index 5c905e40588..8b8e73efdd5 100644 --- a/docs/adrs/1891-container-hooks.md +++ b/docs/adrs/1891-container-hooks.md @@ -46,7 +46,7 @@ All text written to stdout or stderr should appear in the job or step logs. With 1. Wrapping the json in some unique tag and processing it like we do commands 2. Writing to a file -For 1, users typically view logging information as a safe action, so we worry someone accidentialy logging unsantized information and causing unexpected or un-secure behavior. We eventually plan to move off of stdout/stderr style commands in favor of a runner cli. +For 1, users typically view logging information as a safe action, so we worry someone accidentally logging unsantized information and causing unexpected or un-secure behavior. We eventually plan to move off of stdout/stderr style commands in favor of a runner cli. Investing in this area doesn't make a lot of sense at this time. While writing to a file to communicate isn't the most ideal pattern, its an existing pattern in the runner and serves us well, so lets reuse it. From 63571e8645f2685a2ea1cc67ca44c1a5654cf5af Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:57:50 -0500 Subject: [PATCH 010/188] spelling: account Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../L0/Listener/Configuration/NativeWindowsServiceHelperL0.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Test/L0/Listener/Configuration/NativeWindowsServiceHelperL0.cs b/src/Test/L0/Listener/Configuration/NativeWindowsServiceHelperL0.cs index 8623a7872d0..83a440cc33d 100644 --- a/src/Test/L0/Listener/Configuration/NativeWindowsServiceHelperL0.cs +++ b/src/Test/L0/Listener/Configuration/NativeWindowsServiceHelperL0.cs @@ -30,7 +30,7 @@ public void EnsureGetDefaultServiceAccountShouldReturnNetworkServiceAccount() trace.Info("Trying to get the Default Service Account when a BuildRelease Agent is being configured"); var defaultServiceAccount = windowsServiceHelper.GetDefaultServiceAccount(); - Assert.True(defaultServiceAccount.ToString().Equals(@"NT AUTHORITY\NETWORK SERVICE"), "If agent is getting configured as build-release agent, default service accout should be 'NT AUTHORITY\\NETWORK SERVICE'"); + Assert.True(defaultServiceAccount.ToString().Equals(@"NT AUTHORITY\NETWORK SERVICE"), "If agent is getting configured as build-release agent, default service account should be 'NT AUTHORITY\\NETWORK SERVICE'"); } } @@ -48,7 +48,7 @@ public void EnsureGetDefaultAdminServiceAccountShouldReturnLocalSystemAccount() trace.Info("Trying to get the Default Service Account when a DeploymentAgent is being configured"); var defaultServiceAccount = windowsServiceHelper.GetDefaultAdminServiceAccount(); - Assert.True(defaultServiceAccount.ToString().Equals(@"NT AUTHORITY\SYSTEM"), "If agent is getting configured as deployment agent, default service accout should be 'NT AUTHORITY\\SYSTEM'"); + Assert.True(defaultServiceAccount.ToString().Equals(@"NT AUTHORITY\SYSTEM"), "If agent is getting configured as deployment agent, default service account should be 'NT AUTHORITY\\SYSTEM'"); } } #pragma warning restore CA1416 From 905bd8355a87ddcffad59024e8f270f4179394b4 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:58:10 -0500 Subject: [PATCH 011/188] spelling: act Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/Listener/JobDispatcherL0.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Test/L0/Listener/JobDispatcherL0.cs b/src/Test/L0/Listener/JobDispatcherL0.cs index 3b26233a456..1f0d66d6da7 100644 --- a/src/Test/L0/Listener/JobDispatcherL0.cs +++ b/src/Test/L0/Listener/JobDispatcherL0.cs @@ -89,7 +89,7 @@ public async void DispatchesJobRequest(string billingOwnerId) _runnerServer.Setup(x => x.FinishAgentRequestAsync(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())).Returns(Task.FromResult(new TaskAgentJobRequest())); - //Actt + //Act jobDispatcher.Run(message); //Assert From 4b083075d0b9385d8c1ae710a23ec4b418220866 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:58:21 -0500 Subject: [PATCH 012/188] spelling: administrator Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1751-runner-job-hooks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/adrs/1751-runner-job-hooks.md b/docs/adrs/1751-runner-job-hooks.md index c9c739dad31..75483ad99c8 100644 --- a/docs/adrs/1751-runner-job-hooks.md +++ b/docs/adrs/1751-runner-job-hooks.md @@ -7,8 +7,8 @@ This ADR details the design changes for supporting custom configurable hooks for This feature is mainly intended for self hosted runner administrators. **What we hope to solve with this feature** -1. A runner admininstrator is able to add custom scripts to cleanup their runner environment at the start or end of a job -2. A runner admininstrator is able to add custom scripts to help setup their runner environment at the beginning of a job, for reasons like [caching](https://github.com/actions/runner/issues/1543#issuecomment-1050346279) +1. A runner administrator is able to add custom scripts to cleanup their runner environment at the start or end of a job +2. A runner administrator is able to add custom scripts to help setup their runner environment at the beginning of a job, for reasons like [caching](https://github.com/actions/runner/issues/1543#issuecomment-1050346279) 3. A runner administrator is able to grab custom telemetry of jobs running on their self hosted runner **What we don't think this will solve** From be6f94627f3f0e153bd7d007e6fc70c0d66e77f5 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:01:54 -0500 Subject: [PATCH 013/188] spelling: all Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Common/RunnerServer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Common/RunnerServer.cs b/src/Runner.Common/RunnerServer.cs index b2e4e498afb..7c7d3de2137 100644 --- a/src/Runner.Common/RunnerServer.cs +++ b/src/Runner.Common/RunnerServer.cs @@ -233,7 +233,7 @@ public Task> GetAgentsAsync(int agentPoolId, string agentName = public Task> GetAgentsAsync(string agentName) { - return GetAgentsAsync(0, agentName); // search in all all agentPools + return GetAgentsAsync(0, agentName); // search in all agentPools } public Task ReplaceAgentAsync(int agentPoolId, TaskAgent agent) From 00f3cb0afd515aec88ab5847447d4da87f9a8ea3 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:58:30 -0500 Subject: [PATCH 014/188] spelling: already Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs b/src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs index 10c25904b3d..eb7ed9ad9f7 100644 --- a/src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs +++ b/src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs @@ -269,7 +269,7 @@ private static byte[] GetSignature(JWTHeader header, JWTPayload payload, VssSign return GetSignature(header, payload, alg, credentials); } - //if we alread have the alg, we assume that the creds have been validated already, + //if we already have the alg, we assume that the creds have been validated already, //to save the expense of validating twice in the create function... private static byte[] GetSignature(JWTHeader header, JWTPayload payload, JWTAlgorithm alg, VssSigningCredentials signingCredentials) { From c3edbef8b9f491e849a4824f202c71fcf57e17cf Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:58:37 -0500 Subject: [PATCH 015/188] spelling: always Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/WrappedException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/WrappedException.cs b/src/Sdk/WebApi/WebApi/WrappedException.cs index a202b0ea26b..93e37523ebe 100644 --- a/src/Sdk/WebApi/WebApi/WrappedException.cs +++ b/src/Sdk/WebApi/WebApi/WrappedException.cs @@ -341,7 +341,7 @@ private ConstructorInfo GetMatchingConstructor(params Type[] parameterTypes) private static Type LoadType(String typeName) { // For rest api version < 3.0, the server transmits the fulllAssemblyQualifiedName of exception at time that version was initially released, - // which means normal loading will fail due to version mismatch, as the version will alwyas be <= 14.0.0.0. + // which means normal loading will fail due to version mismatch, as the version will always be <= 14.0.0.0. // Example: typeName=GitHub.Core.WebApi.ProjectDoesNotExistWithNameException, GitHub.Core.WebApi, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a // For rest api version >= 3.0 (dev15), it just sends an assembly qualified type name without Version and PublicKeyToken, so it is version agnostic. From f328deaccb6b267255d8013f73da41e1d6ea4e0b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 07:58:57 -0500 Subject: [PATCH 016/188] spelling: an Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/0279-hashFiles-expression-function.md | 2 +- src/Misc/layoutbin/update.cmd.template | 4 ++-- src/Runner.Common/Constants.cs | 2 +- src/Runner.Listener/SelfUpdater.cs | 2 +- src/Runner.Service/Windows/RunnerService.cs | 2 +- src/Runner.Worker/Handlers/Handler.cs | 2 +- src/Sdk/Common/Common/Utility/UriUtility.cs | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/adrs/0279-hashFiles-expression-function.md b/docs/adrs/0279-hashFiles-expression-function.md index 1de07a82747..177d6d90e0c 100644 --- a/docs/adrs/0279-hashFiles-expression-function.md +++ b/docs/adrs/0279-hashFiles-expression-function.md @@ -5,7 +5,7 @@ **Status**: Accepted ## Context -First party action `actions/cache` needs a input which is an explicit `key` used for restoring and saving the cache. For packages caching, the most common `key` might be the hash result of contents from all `package-lock.json` under `node_modules` folder. +First party action `actions/cache` needs an input which is an explicit `key` used for restoring and saving the cache. For packages caching, the most common `key` might be the hash result of contents from all `package-lock.json` under `node_modules` folder. There are serval different ways to get the hash `key` input for `actions/cache` action. diff --git a/src/Misc/layoutbin/update.cmd.template b/src/Misc/layoutbin/update.cmd.template index 66267a7277e..495c647a4e7 100644 --- a/src/Misc/layoutbin/update.cmd.template +++ b/src/Misc/layoutbin/update.cmd.template @@ -83,7 +83,7 @@ if ERRORLEVEL 1 ( rem check externals folder dir "%rootfolder%" /AL 2>&1 | findstr "externals" >> "%logfile%" 2>&1 if ERRORLEVEL 1 ( - rem return code 1 means it can't find a externals folder that is a junction folder + rem return code 1 means it can't find an externals folder that is a junction folder rem so we need to move the current externals folder to externals.2.99.0 folder. echo [%date% %time%] move "%rootfolder%\externals" "%rootfolder%\externals.%existrunnerversion%" >> "%logfile%" 2>&1 move "%rootfolder%\externals" "%rootfolder%\externals.%existrunnerversion%" >> "%logfile%" 2>&1 @@ -92,7 +92,7 @@ if ERRORLEVEL 1 ( goto fail ) ) else ( - rem otherwise it find a externals folder that is a junction folder + rem otherwise it find an externals folder that is a junction folder rem we just need to delete the junction point. echo [%date% %time%] Delete existing junction externals folder >> "%logfile%" 2>&1 rmdir "%rootfolder%\externals" >> "%logfile%" 2>&1 diff --git a/src/Runner.Common/Constants.cs b/src/Runner.Common/Constants.cs index 045e906637e..3f3cbf3be80 100644 --- a/src/Runner.Common/Constants.cs +++ b/src/Runner.Common/Constants.cs @@ -199,7 +199,7 @@ public static class NodeMigration public static readonly string ResultsUploadFailure = "RESULTS_UPLOAD_FAILURE"; public static readonly string UnsupportedCommandMessage = "The `{0}` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/"; public static readonly string UnsupportedCommandMessageDisabled = "The `{0}` command is disabled. Please upgrade to using Environment Files or opt into unsecure command execution by setting the `ACTIONS_ALLOW_UNSECURE_COMMANDS` environment variable to `true`. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/"; - public static readonly string UnsupportedStopCommandTokenDisabled = "You cannot use a endToken that is an empty string, the string 'pause-logging', or another workflow command. For more information see: https://docs.github.com/actions/learn-github-actions/workflow-commands-for-github-actions#example-stopping-and-starting-workflow-commands or opt into insecure command execution by setting the `ACTIONS_ALLOW_UNSECURE_STOPCOMMAND_TOKENS` environment variable to `true`."; + public static readonly string UnsupportedStopCommandTokenDisabled = "You cannot use an endToken that is an empty string, the string 'pause-logging', or another workflow command. For more information see: https://docs.github.com/actions/learn-github-actions/workflow-commands-for-github-actions#example-stopping-and-starting-workflow-commands or opt into insecure command execution by setting the `ACTIONS_ALLOW_UNSECURE_STOPCOMMAND_TOKENS` environment variable to `true`."; public static readonly string UnsupportedSummarySize = "$GITHUB_STEP_SUMMARY upload aborted, supports content up to a size of {0}k, got {1}k. For more information see: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-markdown-summary"; public static readonly string SummaryUploadError = "$GITHUB_STEP_SUMMARY upload aborted, an error occurred when uploading the summary. For more information see: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-markdown-summary"; } diff --git a/src/Runner.Listener/SelfUpdater.cs b/src/Runner.Listener/SelfUpdater.cs index 6ebeebd8270..66f171c7f83 100644 --- a/src/Runner.Listener/SelfUpdater.cs +++ b/src/Runner.Listener/SelfUpdater.cs @@ -631,7 +631,7 @@ private async Task UpdateRunnerUpdateStateAsync(string currentState) } catch (VssResourceNotFoundException) { - // ignore VssResourceNotFoundException, this exception means the runner is configured against a old server that doesn't support report runner update detail. + // ignore VssResourceNotFoundException, this exception means the runner is configured against an old server that doesn't support report runner update detail. Trace.Info($"Catch VssResourceNotFoundException during report update state, ignore this error for backcompat."); } catch (Exception ex) diff --git a/src/Runner.Service/Windows/RunnerService.cs b/src/Runner.Service/Windows/RunnerService.cs index 58d66989e96..a5c901cbef8 100644 --- a/src/Runner.Service/Windows/RunnerService.cs +++ b/src/Runner.Service/Windows/RunnerService.cs @@ -246,7 +246,7 @@ private RunnerUpdateResult HandleRunnerUpdate() FileInfo[] updateLogs = dirInfo.GetFiles("SelfUpdate-*-*.log.*") ?? new FileInfo[0]; if (updateLogs.Length == 0) { - // totally wrong, we are not even able to get a update log. + // totally wrong, we are not even able to get an update log. return RunnerUpdateResult.Failed; } else diff --git a/src/Runner.Worker/Handlers/Handler.cs b/src/Runner.Worker/Handlers/Handler.cs index 5d77a051768..1ad30037949 100644 --- a/src/Runner.Worker/Handlers/Handler.cs +++ b/src/Runner.Worker/Handlers/Handler.cs @@ -28,7 +28,7 @@ public interface IHandler : IRunnerService public abstract class Handler : RunnerService { #if OS_WINDOWS - // In windows OS the maximum supported size of a environment variable value is 32k. + // In windows OS the maximum supported size of an environment variable value is 32k. // You can set environment variable greater then 32K, but that variable will not be able to read in node.exe. private const int _environmentVariableMaximumSize = 32766; #endif diff --git a/src/Sdk/Common/Common/Utility/UriUtility.cs b/src/Sdk/Common/Common/Utility/UriUtility.cs index c80cb592c09..cdabd246383 100644 --- a/src/Sdk/Common/Common/Utility/UriUtility.cs +++ b/src/Sdk/Common/Common/Utility/UriUtility.cs @@ -416,7 +416,7 @@ public static string GetDavUncFromHttpPath(string httppath) } /// - /// Given a input path that might correspond to a UNC path known to the Windows Client WebDav Redirector, + /// Given an input path that might correspond to a UNC path known to the Windows Client WebDav Redirector, /// returns the converted UNC path to an HTTP (or HTTPS) url. /// /// From 95d56bab4eec707ece1e6a8c2ad6c1dbcd1f1473 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:57:56 -0500 Subject: [PATCH 017/188] spelling: anchors Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../Pipelines/ObjectTemplating/YamlObjectReader.cs | 6 +++--- src/Sdk/WorkflowParser/Conversion/YamlObjectReader.cs | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/YamlObjectReader.cs b/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/YamlObjectReader.cs index 431cceac003..0cf8ac726a7 100644 --- a/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/YamlObjectReader.cs +++ b/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/YamlObjectReader.cs @@ -221,7 +221,7 @@ private ParsingEvent EvaluateCurrent() { if (m_current is Scalar scalar) { - // Verify not using achors + // Verify not using anchors if (scalar.Anchor != null) { throw new InvalidOperationException($"Anchors are not currently supported. Remove the anchor '{scalar.Anchor}'"); @@ -229,7 +229,7 @@ private ParsingEvent EvaluateCurrent() } else if (m_current is MappingStart mappingStart) { - // Verify not using achors + // Verify not using anchors if (mappingStart.Anchor != null) { throw new InvalidOperationException($"Anchors are not currently supported. Remove the anchor '{mappingStart.Anchor}'"); @@ -237,7 +237,7 @@ private ParsingEvent EvaluateCurrent() } else if (m_current is SequenceStart sequenceStart) { - // Verify not using achors + // Verify not using anchors if (sequenceStart.Anchor != null) { throw new InvalidOperationException($"Anchors are not currently supported. Remove the anchor '{sequenceStart.Anchor}'"); diff --git a/src/Sdk/WorkflowParser/Conversion/YamlObjectReader.cs b/src/Sdk/WorkflowParser/Conversion/YamlObjectReader.cs index 970514e2046..8c8ce73106f 100644 --- a/src/Sdk/WorkflowParser/Conversion/YamlObjectReader.cs +++ b/src/Sdk/WorkflowParser/Conversion/YamlObjectReader.cs @@ -231,7 +231,7 @@ private ParsingEvent EvaluateCurrent_Legacy() { if (m_current is Scalar scalar) { - // Verify not using achors + // Verify not using anchors if (scalar.Anchor != null) { throw new InvalidOperationException($"Anchors are not currently supported. Remove the anchor '{scalar.Anchor}'"); @@ -239,7 +239,7 @@ private ParsingEvent EvaluateCurrent_Legacy() } else if (m_current is MappingStart mappingStart) { - // Verify not using achors + // Verify not using anchors if (mappingStart.Anchor != null) { throw new InvalidOperationException($"Anchors are not currently supported. Remove the anchor '{mappingStart.Anchor}'"); @@ -247,7 +247,7 @@ private ParsingEvent EvaluateCurrent_Legacy() } else if (m_current is SequenceStart sequenceStart) { - // Verify not using achors + // Verify not using anchors if (sequenceStart.Anchor != null) { throw new InvalidOperationException($"Anchors are not currently supported. Remove the anchor '{sequenceStart.Anchor}'"); From a6ec286c22493eb28c6d5df18aa58192ffe57084 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:32:08 -0500 Subject: [PATCH 018/188] spelling: arg-string Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/Handlers/StepHost.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Worker/Handlers/StepHost.cs b/src/Runner.Worker/Handlers/StepHost.cs index 211009658e4..fa79de884d1 100644 --- a/src/Runner.Worker/Handlers/StepHost.cs +++ b/src/Runner.Worker/Handlers/StepHost.cs @@ -243,7 +243,7 @@ await containerHookManager.RunScriptStepAsync(context, // [ARG...] dockerCommandArgs.Add(arguments); - string dockerCommandArgstring = string.Join(" ", dockerCommandArgs); + string dockerCommandArgString = string.Join(" ", dockerCommandArgs); TranslateToContainerPath(environment); using (var processInvoker = HostContext.CreateService()) @@ -260,7 +260,7 @@ await containerHookManager.RunScriptStepAsync(context, #endif return await processInvoker.ExecuteAsync(workingDirectory: HostContext.GetDirectory(WellKnownDirectory.Work), fileName: dockerClientPath, - arguments: dockerCommandArgstring, + arguments: dockerCommandArgString, environment: environment, requireExitCodeZero: requireExitCodeZero, outputEncoding: outputEncoding, From 13d10a76f2281fd76c76fd9c5c12e1ee770f7f58 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:41:42 -0500 Subject: [PATCH 019/188] spelling: available Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/Expressions/HashFilesFunction.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Worker/Expressions/HashFilesFunction.cs b/src/Runner.Worker/Expressions/HashFilesFunction.cs index ddd318c3c4a..515b09dcb60 100644 --- a/src/Runner.Worker/Expressions/HashFilesFunction.cs +++ b/src/Runner.Worker/Expressions/HashFilesFunction.cs @@ -56,7 +56,7 @@ protected sealed override Object EvaluateCore( } else { - throw new ArgumentOutOfRangeException($"Invalid glob option {parameterString}, avaliable option: '--follow-symbolic-links'."); + throw new ArgumentOutOfRangeException($"Invalid glob option {parameterString}, available option: '--follow-symbolic-links'."); } } } @@ -189,7 +189,7 @@ protected sealed override Object EvaluateCore( } else { - throw new ArgumentOutOfRangeException($"Invalid glob option {parameterString}, avaliable option: '--follow-symbolic-links'."); + throw new ArgumentOutOfRangeException($"Invalid glob option {parameterString}, available option: '--follow-symbolic-links'."); } } } From 0cda522aaba7ca370df6ebe4ad2178b32a87dddb Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:20:00 -0500 Subject: [PATCH 020/188] spelling: be Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Runner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index fc7199d6d00..cd3b84d8de0 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -293,7 +293,7 @@ public async Task ExecuteCommand(CommandSettings command) // We need try our best to make the startup type accurate // The problem is coming from runner autoupgrade, which result an old version service host binary but a newer version runner binary // At that time the servicehost won't pass --startuptype to Runner.Listener while the runner is actually running as service. - // We will guess the startup type only when the runner is configured as service and the guess will based on whether STDOUT/STDERR/STDIN been redirect or not + // We will guess the startup type only when the runner is configured as service and the guess will be based on whether STDOUT/STDERR/STDIN been redirect or not Trace.Info($"Try determine runner startup type base on console redirects."); startType = (Console.IsErrorRedirected && Console.IsInputRedirected && Console.IsOutputRedirected) ? StartupType.Service : StartupType.Manual; } From 4187655b5b427bf4dde676ebd76cd11aa7d082ee Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:42:04 -0500 Subject: [PATCH 021/188] spelling: believe Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1751-runner-job-hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/1751-runner-job-hooks.md b/docs/adrs/1751-runner-job-hooks.md index 75483ad99c8..c6984a375e2 100644 --- a/docs/adrs/1751-runner-job-hooks.md +++ b/docs/adrs/1751-runner-job-hooks.md @@ -14,7 +14,7 @@ This feature is mainly intended for self hosted runner administrators. **What we don't think this will solve** - Policy features that require certain steps run at the beginning or end of all jobs - This would be better solved to in a central place in settings, rather then decentralized on each runner. - - The Proposed `Notification Hooks for Runners` is limited to self hosted runners, we don't beileve Policy features should be + - The Proposed `Notification Hooks for Runners` is limited to self hosted runners, we don't believe Policy features should be - Reuse scenarios between jobs are covered by [composite actions](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action) and [resuable workflows](https://docs.github.com/en/actions/using-workflows/reusing-workflows) - Security applications, security should be handled on the policy side on the server, not decentralized on each runner From 6653767786beeb6bddf822e04ace0e7d79078a61 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:42:21 -0500 Subject: [PATCH 022/188] spelling: belonging Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../WebApi/WebApi/Contracts/Profile/AttributesQueryContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/Contracts/Profile/AttributesQueryContext.cs b/src/Sdk/WebApi/WebApi/Contracts/Profile/AttributesQueryContext.cs index 94db2400a20..a6bb07e33d5 100644 --- a/src/Sdk/WebApi/WebApi/Contracts/Profile/AttributesQueryContext.cs +++ b/src/Sdk/WebApi/WebApi/Contracts/Profile/AttributesQueryContext.cs @@ -117,7 +117,7 @@ public object Clone() /// Used to specify the scope of a set of attributes. /// /// - /// A profile attribute is either a core attribute or an attribute beloging to some application container. + /// A profile attribute is either a core attribute or an attribute belonging to some application container. /// A core attribute belongs to scope AttributesScope.Core. /// An attribute stored under some application container belongs to scope AttributesScope.Application. /// An attribute always belongs to scope AttributesScope.Core | AttributesScope.Application. From 2641d2b4805a4601630bbf934b3c43bfedb3fe82 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:42:52 -0500 Subject: [PATCH 023/188] spelling: boundary Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/VssException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/VssException.cs b/src/Sdk/Common/Common/VssException.cs index 5f8fb8c2554..8cc96913c70 100644 --- a/src/Sdk/Common/Common/VssException.cs +++ b/src/Sdk/Common/Common/VssException.cs @@ -15,7 +15,7 @@ namespace GitHub.Services.Common /// /// /// All Exceptions in the VSS space -- any exception that flows across - /// a REST API boudary -- should derive from VssServiceException. This is likely + /// a REST API boundary -- should derive from VssServiceException. This is likely /// almost ALL new exceptions. Legacy TFS exceptions that do not flow through rest /// derive from TeamFoundationServerException or TeamFoundationServiceException /// From 1d96a4a2c90b6809b984a078c88bc6df5c4a64a9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:43:16 -0500 Subject: [PATCH 024/188] spelling: buffered Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Common/JobServerQueue.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Common/JobServerQueue.cs b/src/Runner.Common/JobServerQueue.cs index 74c12bea28b..be888465b4b 100644 --- a/src/Runner.Common/JobServerQueue.cs +++ b/src/Runner.Common/JobServerQueue.cs @@ -56,7 +56,7 @@ public sealed class JobServerQueue : RunnerService, IJobServerQueue // indicate how many timelines we have, we will process _timelineUpdateQueue base on the order of timeline in this list private readonly List _allTimelines = new(); - // bufferd timeline records that fail to update + // buffered timeline records that fail to update private readonly Dictionary> _bufferedRetryRecords = new(); // Task for each queue's dequeue process From c1bc48c480a7ace3fda6174ce8c6fc63deb25b73 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:57:25 -0500 Subject: [PATCH 025/188] spelling: by design the data scheme is excluded from this list and the safe list Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/UriUtility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/UriUtility.cs b/src/Sdk/Common/Common/Utility/UriUtility.cs index cdabd246383..59258f2436d 100644 --- a/src/Sdk/Common/Common/Utility/UriUtility.cs +++ b/src/Sdk/Common/Common/Utility/UriUtility.cs @@ -33,7 +33,7 @@ public static class UriUtility /// inform the user that it is unsafe and prevent navigation. /// /// - /// Note: the data scheme is not in this list nor is it in the safe list either, this is by design. + /// Note: by design the data scheme is excluded from this list and the safe list. /// See http://msdn.microsoft.com/en-us/library/ie/cc848897(v=vs.85).aspx for a reference of the data protocol. /// See http://www.gnucitizen.org/blog/bugs-in-the-browser-firefoxs-data-url-scheme-vulnerability/ for attacks on the data protocol. /// From a8bd5fcb65c5a2b5448f150f099b34d0f93e2d0f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:43:46 -0500 Subject: [PATCH 026/188] spelling: cache Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs b/src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs index 4ae35563445..074a849d327 100644 --- a/src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs +++ b/src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs @@ -233,7 +233,7 @@ private static void EnsureCacheLoaded() } catch (Exception) { - // It looks like something is wrong witht he cahce, lets just hide this + // It looks like something is wrong witht he cache, lets just hide this // exception and work without it. s_cacheUnavailable = true; } From f81c966578a7de5adeb96fff1bcef3f224a0e70e Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:44:42 -0500 Subject: [PATCH 027/188] spelling: call Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTExpressions2/Expressions2/ExpressionConstants.cs | 2 +- src/Sdk/Expressions/ExpressionConstants.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/DTExpressions2/Expressions2/ExpressionConstants.cs b/src/Sdk/DTExpressions2/Expressions2/ExpressionConstants.cs index 89ae954e378..4560723aeaa 100644 --- a/src/Sdk/DTExpressions2/Expressions2/ExpressionConstants.cs +++ b/src/Sdk/DTExpressions2/Expressions2/ExpressionConstants.cs @@ -42,7 +42,7 @@ private static void AddFunction(String name, Int32 minParameters, Int32 maxPa internal const Char StartParameter = '('; // function call internal const Char EndGroup = ')'; // logical grouping internal const Char EndIndex = ']'; - internal const Char EndParameter = ')'; // function calll + internal const Char EndParameter = ')'; // function call internal const Char Separator = ','; internal const Char Dereference = '.'; internal const Char Wildcard = '*'; diff --git a/src/Sdk/Expressions/ExpressionConstants.cs b/src/Sdk/Expressions/ExpressionConstants.cs index ef544395f21..b43b9be4d55 100644 --- a/src/Sdk/Expressions/ExpressionConstants.cs +++ b/src/Sdk/Expressions/ExpressionConstants.cs @@ -44,7 +44,7 @@ private static void AddFunction(String name, Int32 minParameters, Int32 maxPa public static readonly Char StartParameter = '('; // function call internal const Char EndGroup = ')'; // logical grouping internal const Char EndIndex = ']'; - public static readonly Char EndParameter = ')'; // function calll + public static readonly Char EndParameter = ')'; // function call internal const Char Separator = ','; internal const Char Dereference = '.'; internal const Char Wildcard = '*'; From 9fedc1cf113fedd40fb3a6d2c16d6b727a86fc71 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:44:51 -0500 Subject: [PATCH 028/188] spelling: cancel Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/JobDispatcher.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index 28220258e28..3643b0528ce 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -778,7 +778,7 @@ private async Task RenewJobRequestAsync(IRunServer runServer, Guid planId, Guid } catch (OperationCanceledException) when (token.IsCancellationRequested) { - // OperationCanceledException may caused by http timeout or _lockRenewalTokenSource.Cance(); + // OperationCanceledException may caused by http timeout or _lockRenewalTokenSource.Cancel(); // Stop renew only on cancellation token fired. Trace.Info($"job renew has been cancelled, stop renew job {jobId}."); return; @@ -894,7 +894,7 @@ private async Task RenewJobRequestAsync(IRunnerServer runnerServer, int poolId, } catch (OperationCanceledException) when (token.IsCancellationRequested) { - // OperationCanceledException may caused by http timeout or _lockRenewalTokenSource.Cance(); + // OperationCanceledException may caused by http timeout or _lockRenewalTokenSource.Cancel(); // Stop renew only on cancellation token fired. Trace.Info($"job renew has been cancelled, stop renew job request {requestId}."); return; From 799aa7db7db7fc8de4c2bd56b607ffb1716aaf8e Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:45:08 -0500 Subject: [PATCH 029/188] spelling: cancellation Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/JobDispatcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index 3643b0528ce..c61e58fb0c3 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -144,7 +144,7 @@ public bool Cancel(JobCancelMessage jobCancelMessage) WorkerDispatcher workerDispatcher; if (!_jobInfos.TryGetValue(jobCancelMessage.JobId, out workerDispatcher)) { - Trace.Verbose($"Job request {jobCancelMessage.JobId} is not a current running job, ignore cancllation request."); + Trace.Verbose($"Job request {jobCancelMessage.JobId} is not a current running job, ignore cancellation request."); return false; } else From 01a333e1411d1548f8d95c5b4e910103ddb8d342 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:20:50 -0500 Subject: [PATCH 030/188] spelling: cannot Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Misc/dotnet-install.sh | 2 +- src/Misc/layoutbin/installdependencies.sh | 8 ++++---- src/Misc/layoutroot/config.sh | 4 ++-- src/Runner.Plugins/Artifact/PublishArtifact.cs | 2 +- src/Runner.Sdk/Util/IOUtil.cs | 2 +- src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs | 4 ++-- src/dev.sh | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Misc/dotnet-install.sh b/src/Misc/dotnet-install.sh index 924bdc2a80a..f6eacea1f05 100755 --- a/src/Misc/dotnet-install.sh +++ b/src/Misc/dotnet-install.sh @@ -618,7 +618,7 @@ validate_remote_local_file_sizes() fi else - say "Either downloaded or local package size can not be measured. One of them may be corrupted." + say "Either downloaded or local package size cannot be measured. One of them may be corrupted." fi } diff --git a/src/Misc/layoutbin/installdependencies.sh b/src/Misc/layoutbin/installdependencies.sh index e979d1e0fe4..61e4b02551a 100755 --- a/src/Misc/layoutbin/installdependencies.sh +++ b/src/Misc/layoutbin/installdependencies.sh @@ -139,7 +139,7 @@ then exit 1 fi else - echo "Can not find 'dnf'" + echo "Cannot find 'dnf'" print_errormessage exit 1 fi @@ -155,7 +155,7 @@ then exit 1 fi else - echo "Can not find 'yum'" + echo "Cannot find 'yum'" print_errormessage exit 1 fi @@ -179,7 +179,7 @@ then exit 1 fi else - echo "Can not find 'zypper'" + echo "Cannot find 'zypper'" print_errormessage exit 1 fi @@ -210,7 +210,7 @@ then exit 1 fi else - echo "Can not find 'yum'" + echo "Cannot find 'yum'" print_rhel6errormessage exit 1 fi diff --git a/src/Misc/layoutroot/config.sh b/src/Misc/layoutroot/config.sh index 14cc6bab0c3..54b07868c3d 100755 --- a/src/Misc/layoutroot/config.sh +++ b/src/Misc/layoutroot/config.sh @@ -14,7 +14,7 @@ then command -v ldd > /dev/null if [ $? -ne 0 ] then - echo "Can not find 'ldd'. Please install 'ldd' and try again." + echo "Cannot find 'ldd'. Please install 'ldd' and try again." exit 1 fi @@ -44,7 +44,7 @@ then if ! [ -x "$(command -v ldconfig)" ]; then LDCONFIG_COMMAND="/sbin/ldconfig" if ! [ -x "$LDCONFIG_COMMAND" ]; then - echo "Can not find 'ldconfig' in PATH and '/sbin/ldconfig' doesn't exists either. Please install 'ldconfig' and try again." + echo "Cannot find 'ldconfig' in PATH and '/sbin/ldconfig' doesn't exists either. Please install 'ldconfig' and try again." exit 1 fi else diff --git a/src/Runner.Plugins/Artifact/PublishArtifact.cs b/src/Runner.Plugins/Artifact/PublishArtifact.cs index 56408ea6544..553f3958f90 100644 --- a/src/Runner.Plugins/Artifact/PublishArtifact.cs +++ b/src/Runner.Plugins/Artifact/PublishArtifact.cs @@ -35,7 +35,7 @@ public async Task RunAsync( if (String.IsNullOrWhiteSpace(artifactName)) { - throw new ArgumentException($"Artifact name can not be empty string"); + throw new ArgumentException($"Artifact name cannot be empty string"); } if (Path.GetInvalidFileNameChars().Any(x => artifactName.Contains(x))) diff --git a/src/Runner.Sdk/Util/IOUtil.cs b/src/Runner.Sdk/Util/IOUtil.cs index e0b5b3394f7..f381d6a5268 100644 --- a/src/Runner.Sdk/Util/IOUtil.cs +++ b/src/Runner.Sdk/Util/IOUtil.cs @@ -326,7 +326,7 @@ public static string ResolvePath(String rootPath, String relativePath) } else if (Path.IsPathRooted(relativePath)) { - throw new InvalidOperationException($"{relativePath} can not be a rooted path."); + throw new InvalidOperationException($"{relativePath} cannot be a rooted path."); } else { diff --git a/src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs b/src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs index d3529b9102b..617d7b850f6 100644 --- a/src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs +++ b/src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs @@ -38,13 +38,13 @@ public interface IVssClientStorageReader T ReadEntry(string path); /// - /// Reads one entry from the storage. If the entry does not exist or can not be converted to type T, the default value provided will be returned. + /// Reads one entry from the storage. If the entry does not exist or cannot be converted to type T, the default value provided will be returned. /// When T is not a simple type, and there is extra logic to determine the default value, the pattern: ReadEntry<T>(path) && GetDefault(); is /// preferred, so that method to retrieve the default is not evaluated unless the entry does not exist. /// /// The type to return. /// This is the path key for the data to retrieve. - /// The value to return if the key does not exist or the value can not be converted to type T + /// The value to return if the key does not exist or the value cannot be converted to type T /// T ReadEntry(string path, T defaultValue); diff --git a/src/dev.sh b/src/dev.sh index 798cec0f26a..d1131b47655 100755 --- a/src/dev.sh +++ b/src/dev.sh @@ -243,7 +243,7 @@ if [[ "$CURRENT_PLATFORM" == 'windows' ]]; then msbuild_location="$vs_location""\MSBuild\Current\Bin\msbuild.exe" if [[ ! -e "${msbuild_location}" ]]; then - failed "Can not find msbuild location, failing build" + failed "Cannot find msbuild location, failing build" fi fi From 4cefe401b078cc9f8ecc2c391f42747d8ed7bc78 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:21:09 -0500 Subject: [PATCH 031/188] spelling: case-insensitive Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/0276-problem-matchers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/0276-problem-matchers.md b/docs/adrs/0276-problem-matchers.md index 5d7a034d179..e7320ee94fe 100644 --- a/docs/adrs/0276-problem-matchers.md +++ b/docs/adrs/0276-problem-matchers.md @@ -201,7 +201,7 @@ Coalesce empty with \"error\". For any other values, omit logging an issue and d #### Default severity level -Problem matchers are unable to interpret severity strings other than `warning` and `error`. The `severity` match group expects `warning` or `error` (case insensitive). +Problem matchers are unable to interpret severity strings other than `warning` and `error`. The `severity` match group expects `warning` or `error` (case-insensitive). However some tools indicate error/warning in different ways. For example `flake8` uses codes like `E100`, `W200`, and `F300` (error, warning, fatal, respectively). From 77bb4e6c9532de4ad4272c1711e221be5baf8f53 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:21:17 -0500 Subject: [PATCH 032/188] spelling: case-sensitive Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs | 2 +- src/Sdk/Common/Common/Utility/UriUtility.cs | 2 +- src/Sdk/Common/Common/Utility/VssStringComparer.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs b/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs index 50a28169700..ec1525bc3f4 100644 --- a/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs +++ b/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs @@ -138,7 +138,7 @@ public static IVssClientStorage GetVssLocalFileStorage(string fullPath, char pat } #if DEBUG - Debug.Assert(fullPath.Equals(storage.m_filePath), string.Format("The same storage file is being referenced with different casing. This will cause issues when running in cross patform environments where the file system may be case sensitive. {0} != {1}", storage.m_filePath, normalizedFullPath)); + Debug.Assert(fullPath.Equals(storage.m_filePath), string.Format("The same storage file is being referenced with different casing. This will cause issues when running in cross patform environments where the file system may be case-sensitive. {0} != {1}", storage.m_filePath, normalizedFullPath)); #endif return storage; } diff --git a/src/Sdk/Common/Common/Utility/UriUtility.cs b/src/Sdk/Common/Common/Utility/UriUtility.cs index 59258f2436d..a73fcf340c2 100644 --- a/src/Sdk/Common/Common/Utility/UriUtility.cs +++ b/src/Sdk/Common/Common/Utility/UriUtility.cs @@ -89,7 +89,7 @@ public int GetHashCode(string obj) } /// - /// string comparer for uri, is not case sensitive and does not care about trailing '/' + /// string comparer for uri, is not case-sensitive and does not care about trailing '/' /// public static IEqualityComparer AbsoluteUriStringComparer = new _AbsoluteUriStringComparer(); diff --git a/src/Sdk/Common/Common/Utility/VssStringComparer.cs b/src/Sdk/Common/Common/Utility/VssStringComparer.cs index 7d7935a8c2b..802718510a4 100644 --- a/src/Sdk/Common/Common/Utility/VssStringComparer.cs +++ b/src/Sdk/Common/Common/Utility/VssStringComparer.cs @@ -218,7 +218,7 @@ private StringComparer MatchingStringComparer // Converters comparer public static VssStringComparer VSSServerPath { get { return s_ordinalIgnoreCase; } } - // Item rename in VSS is case sensitive. + // Item rename in VSS is case-sensitive. public static VssStringComparer VSSItemName { get { return s_ordinal; } } // Web Access Comparers public static VssStringComparer HtmlElementName { get { return s_ordinalIgnoreCase; } } From 22dec932ad3ce524bfaa2bb63797e1ab9d2a13b0 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:45:26 -0500 Subject: [PATCH 033/188] spelling: coalesce Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Common/HostContext.cs | 2 +- src/Sdk/Common/Common/TaskCancellationExtensions.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Common/HostContext.cs b/src/Runner.Common/HostContext.cs index ffb08684a53..ca012a99999 100644 --- a/src/Runner.Common/HostContext.cs +++ b/src/Runner.Common/HostContext.cs @@ -407,7 +407,7 @@ public string GetDirectory(WellKnownDirectory directory) break; case WellKnownDirectory.Tools: - // TODO: Coallesce to just check RUNNER_TOOL_CACHE when images stabilize + // TODO: Coalesce to just check RUNNER_TOOL_CACHE when images stabilize path = Environment.GetEnvironmentVariable("RUNNER_TOOL_CACHE") ?? Environment.GetEnvironmentVariable("RUNNER_TOOLSDIRECTORY") ?? Environment.GetEnvironmentVariable("AGENT_TOOLSDIRECTORY") ?? Environment.GetEnvironmentVariable(Constants.Variables.Agent.ToolsDirectory); if (string.IsNullOrEmpty(path)) diff --git a/src/Sdk/Common/Common/TaskCancellationExtensions.cs b/src/Sdk/Common/Common/TaskCancellationExtensions.cs index 9b9c0767fbd..72593d91060 100644 --- a/src/Sdk/Common/Common/TaskCancellationExtensions.cs +++ b/src/Sdk/Common/Common/TaskCancellationExtensions.cs @@ -67,7 +67,7 @@ public static async Task EnforceCancellation( } // However, we'd ideally like to throw the cancellation exception from the original task if we can. - // Thus, we'll give that task a few seconds to coallesce (e.g. write to a log) before we give up on it. + // Thus, we'll give that task a few seconds to coalesce (e.g. write to a log) before we give up on it. int seconds = 3; var lastChanceTcs = new TaskCompletionSource(RUN_CONTINUATIONS_ASYNCHRONOUSLY); using (var lastChanceTimer = new CancellationTokenSource(TimeSpan.FromSeconds(seconds))) From 8eb7c32c890d1d9aad3f1d15a9eecf429e494003 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:46:24 -0500 Subject: [PATCH 034/188] spelling: comparer Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/VssStringComparer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/VssStringComparer.cs b/src/Sdk/Common/Common/Utility/VssStringComparer.cs index 802718510a4..57e2b9799f3 100644 --- a/src/Sdk/Common/Common/Utility/VssStringComparer.cs +++ b/src/Sdk/Common/Common/Utility/VssStringComparer.cs @@ -229,7 +229,7 @@ private StringComparer MatchingStringComparer public static VssStringComparer StringFieldConditionOrdinal { get { return s_ordinal; } } // Service Endpoint Comparer - public static VssStringComparer ServiceEndpointTypeCompararer { get { return s_ordinalIgnoreCase; } } + public static VssStringComparer ServiceEndpointTypeComparer { get { return s_ordinalIgnoreCase; } } private class DataSourceIgnoreProtocolComparer : VssStringComparer { From 07d2251acd736dc3f1e69c84f5c6fe7f77d4aee9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:47:03 -0500 Subject: [PATCH 035/188] spelling: comparison Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTExpressions2/Expressions2/EvaluationResult.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/DTExpressions2/Expressions2/EvaluationResult.cs b/src/Sdk/DTExpressions2/Expressions2/EvaluationResult.cs index 354a76d8e37..5ac1a61b43f 100644 --- a/src/Sdk/DTExpressions2/Expressions2/EvaluationResult.cs +++ b/src/Sdk/DTExpressions2/Expressions2/EvaluationResult.cs @@ -177,7 +177,7 @@ public Boolean TryGetCollectionInterface(out Object collection) /// /// Useful for working with values that are not the direct evaluation result of a parameter. - /// This allows ExpressionNode authors to leverage the coercion and comparision functions + /// This allows ExpressionNode authors to leverage the coercion and comparison functions /// for any values. /// /// Also note, the value will be canonicalized (for example numeric types converted to double) and any From 30a1580d5fe0450260fe9c9900aa8a3b4035d02d Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:47:17 -0500 Subject: [PATCH 036/188] spelling: compatible Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/DictionaryExtensions.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Sdk/Common/Common/Utility/DictionaryExtensions.cs b/src/Sdk/Common/Common/Utility/DictionaryExtensions.cs index 1dd010c6a22..6518c5a3c44 100644 --- a/src/Sdk/Common/Common/Utility/DictionaryExtensions.cs +++ b/src/Sdk/Common/Common/Utility/DictionaryExtensions.cs @@ -96,7 +96,7 @@ public static V AddOrUpdate(this IDictionary dictionary, /// /// Returns the value in an IReadonlyDictionary with values of type /// casted as values of requested type, or the defualt if the key is not found or - /// if the value was found but not compatabile with the requested type. + /// if the value was found but not compatible with the requested type. /// /// The key type /// The requested type of the stored value @@ -113,7 +113,7 @@ public static V AddOrUpdate(this IDictionary dictionary, /// /// Returns the value in an IDictionary with values of type /// casted as values of requested type, or the defualt if the key is not found or - /// if the value was found but not compatabile with the requested type. + /// if the value was found but not compatible with the requested type. /// /// The key type /// The requested type of the stored value @@ -130,7 +130,7 @@ public static V AddOrUpdate(this IDictionary dictionary, /// /// Returns the value in a Dictionary with values of type /// casted as values of requested type, or the defualt if the key is not found or - /// if the value was found but not compatabile with the requested type. + /// if the value was found but not compatible with the requested type. /// /// /// This overload is necessary to prevent Ambiguous Match issues, as Dictionary implements both From 5af7bff13f78c6fcd3dbbbee85d5557ac4904c4c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:54:24 -0500 Subject: [PATCH 037/188] spelling: configuration Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/Worker/ExecutionContextL0.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Test/L0/Worker/ExecutionContextL0.cs b/src/Test/L0/Worker/ExecutionContextL0.cs index 2f28f797fb5..9a2f7a990a4 100644 --- a/src/Test/L0/Worker/ExecutionContextL0.cs +++ b/src/Test/L0/Worker/ExecutionContextL0.cs @@ -905,7 +905,7 @@ private TestHostContext CreateTestContext([CallerMemberName] String testName = " { var hc = new TestHostContext(this, testName); - // Arrange: Setup the configation store. + // Arrange: Setup the configuration store. var configurationStore = new Mock(); configurationStore.Setup(x => x.GetSettings()).Returns(new RunnerSettings()); hc.SetSingleton(configurationStore.Object); From f9f654ddcf5e9831df8af7835a2d26e8804d031d Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:55:57 -0500 Subject: [PATCH 038/188] spelling: constructing Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/SecretUtility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/SecretUtility.cs b/src/Sdk/Common/Common/Utility/SecretUtility.cs index 20713ad60e3..ff153235be2 100644 --- a/src/Sdk/Common/Common/Utility/SecretUtility.cs +++ b/src/Sdk/Common/Common/Utility/SecretUtility.cs @@ -209,7 +209,7 @@ private static string ScrubSecret(string message, string token, string mask, boo catch (Exception /*exception*/) { // With an exception here the message may still contain an unmasked password. - // We also do not want to interupt the current thread with this exception, because it may be constucting a message + // We also do not want to interupt the current thread with this exception, because it may be constructing a message // for a different exception. Trace this exception and continue on using a generic exception message. //TeamFoundationTracingService.TraceExceptionRaw(99231, s_area, s_layer, exception); } From 2e3a64d20c683d55a8d2178af77a19f007ef76a9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:56:20 -0500 Subject: [PATCH 039/188] spelling: constructor Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/WrappedException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/WrappedException.cs b/src/Sdk/WebApi/WebApi/WrappedException.cs index 93e37523ebe..fb41d987282 100644 --- a/src/Sdk/WebApi/WebApi/WrappedException.cs +++ b/src/Sdk/WebApi/WebApi/WrappedException.cs @@ -320,7 +320,7 @@ private Exception UnWrap(Exception innerException) // to make code changes to exceptions that we don't own. Debug.Assert(!(exception is VssException) || exception.Message == Message, "The unwrapped exception message does not match the original exception message.", - "Type: {0}{1}Expected: {2}{1}Actual: {3}{1}{1}This can happen if the exception has a contructor that manipulates the input string. You can work around this by creating a constructor that takes in a WrappedException which sets the message verbatim and optionally the inner exception.", + "Type: {0}{1}Expected: {2}{1}Actual: {3}{1}{1}This can happen if the exception has a constructor that manipulates the input string. You can work around this by creating a constructor that takes in a WrappedException which sets the message verbatim and optionally the inner exception.", exception.GetType(), Environment.NewLine, Message, From 4237d002065cae80ad66e8145e356970bc4833bc Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:56:05 -0500 Subject: [PATCH 040/188] spelling: containing Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WorkflowParser/Conversion/MatrixBuilder.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/WorkflowParser/Conversion/MatrixBuilder.cs b/src/Sdk/WorkflowParser/Conversion/MatrixBuilder.cs index 285757caeda..7d5ea5a4388 100644 --- a/src/Sdk/WorkflowParser/Conversion/MatrixBuilder.cs +++ b/src/Sdk/WorkflowParser/Conversion/MatrixBuilder.cs @@ -42,7 +42,7 @@ internal void AddVector( } /// - /// Adds the sequence containg all exclude mappings. + /// Adds the sequence containing all exclude mappings. /// internal void Exclude(SequenceToken exclude) { @@ -50,7 +50,7 @@ internal void Exclude(SequenceToken exclude) } /// - /// Adds the sequence containg all include mappings. + /// Adds the sequence containing all include mappings. /// internal void Include(SequenceToken include) { From 98d83bd47979f2454833fe09a2ddaf9dae222946 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:47:31 -0500 Subject: [PATCH 041/188] spelling: context Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/Worker/OutputManagerL0.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Test/L0/Worker/OutputManagerL0.cs b/src/Test/L0/Worker/OutputManagerL0.cs index 7005547b56e..cb4b2ca29dd 100644 --- a/src/Test/L0/Worker/OutputManagerL0.cs +++ b/src/Test/L0/Worker/OutputManagerL0.cs @@ -1098,18 +1098,18 @@ private void Process(string line) _outputManager.OnDataReceived(null, new ProcessDataReceivedEventArgs(line)); } - private async Task CreateRepository(TestHostContext hostConetxt, string path, string url) + private async Task CreateRepository(TestHostContext hostContext, string path, string url) { Directory.CreateDirectory(path); var gitPath = WhichUtil.Which("git", true); var environment = new Dictionary(); - using (var processInvoker = new ProcessInvoker(hostConetxt.GetTrace())) + using (var processInvoker = new ProcessInvoker(hostContext.GetTrace())) { await processInvoker.ExecuteAsync(path, gitPath, "init", environment, CancellationToken.None); } - using (var processInvoker = new ProcessInvoker(hostConetxt.GetTrace())) + using (var processInvoker = new ProcessInvoker(hostContext.GetTrace())) { await processInvoker.ExecuteAsync(path, gitPath, $"remote add origin {url}", environment, CancellationToken.None); } From 2bceb0ea37cd47ea65c2dee27ead868ec46aec02 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:56:29 -0500 Subject: [PATCH 042/188] spelling: convention Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/JobDispatcher.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index c61e58fb0c3..89b94c913ab 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -1025,7 +1025,7 @@ private async Task TryUploadUnfinishedLogs(Pipelines.AgentJobRequestMessage mess var logNameParts = logName.Split('_', StringSplitOptions.RemoveEmptyEntries); if (logNameParts.Length != 3) { - Trace.Warning($"log file '{log}' doesn't follow naming convension 'GUID_GUID_INT'."); + Trace.Warning($"log file '{log}' doesn't follow naming convention 'GUID_GUID_INT'."); continue; } var logPageSeperator = logName.IndexOf('_'); @@ -1040,13 +1040,13 @@ private async Task TryUploadUnfinishedLogs(Pipelines.AgentJobRequestMessage mess if (!Guid.TryParse(logNameParts[1], out logRecordId)) { - Trace.Warning($"log file '{log}' doesn't follow naming convension 'GUID_GUID_INT'."); + Trace.Warning($"log file '{log}' doesn't follow naming convention 'GUID_GUID_INT'."); continue; } if (!int.TryParse(logNameParts[2], out pageNumber)) { - Trace.Warning($"log file '{log}' doesn't follow naming convension 'GUID_GUID_INT'."); + Trace.Warning($"log file '{log}' doesn't follow naming convention 'GUID_GUID_INT'."); continue; } From 4323c83d65b0d4cbc463ae4ec900e35c166fa784 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:56:58 -0500 Subject: [PATCH 043/188] spelling: converter Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs b/src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs index eb7ed9ad9f7..f90f66d3637 100644 --- a/src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs +++ b/src/Sdk/WebApi/WebApi/Jwt/JsonWebToken.cs @@ -656,7 +656,7 @@ internal string Scopes private JsonWebToken _actorToken; } - //this coverter converts back and forth from the JWT encoded string + //this converter converts back and forth from the JWT encoded string //and this full type internal class JsonWebTokenConverter : VssSecureJsonConverter { From 35fcb07e0476bf84b002b65d36c3a4120e92d8fb Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:57:13 -0500 Subject: [PATCH 044/188] spelling: credential Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs index 84122a49434..cce2f66e5b8 100644 --- a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs +++ b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs @@ -36,20 +36,20 @@ public VssOAuthTokenProvider( /// The resource server which issued the authentication challenge /// The authorization server token endpoint /// The authorization grant to use for token requests - /// The client credentials to use for token requests + /// The client credentials to use for token requests /// Additional parameters to include with token requests protected VssOAuthTokenProvider( IssuedTokenCredential credential, Uri serverUrl, Uri authorizationUrl, VssOAuthGrant grant, - VssOAuthClientCredential clientCrential, + VssOAuthClientCredential clientCredential, VssOAuthTokenParameters tokenParameters) : base(credential, serverUrl, authorizationUrl) { m_grant = grant; m_tokenParameters = tokenParameters; - m_clientCredential = clientCrential; + m_clientCredential = clientCredential; } /// From fb710df00b2f5742b1691e8f3481f61c24377ff9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:15:04 -0500 Subject: [PATCH 045/188] spelling: deconfigure Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Runner.cs | 2 +- src/Test/L0/Listener/Configuration/ConfigurationManagerL0.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index cd3b84d8de0..476a5613ba5 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -1101,7 +1101,7 @@ private void PrintUsage(CommandSettings command) --replace Replace any existing runner with the same name (default false) --pat GitHub personal access token with repo scope. Used for checking network connectivity when executing `.{separator}run.{ext} --check` --disableupdate Disable self-hosted runner automatic update to the latest released version` - --ephemeral Configure the runner to only take one job and then let the service un-configure the runner after the job finishes (default false)"); + --ephemeral Configure the runner to only take one job and then let the service deconfigure the runner after the job finishes (default false)"); #if OS_WINDOWS _term.WriteLine($@" --runasservice Run the runner as a service"); diff --git a/src/Test/L0/Listener/Configuration/ConfigurationManagerL0.cs b/src/Test/L0/Listener/Configuration/ConfigurationManagerL0.cs index 3c698fdda12..b025c622227 100644 --- a/src/Test/L0/Listener/Configuration/ConfigurationManagerL0.cs +++ b/src/Test/L0/Listener/Configuration/ConfigurationManagerL0.cs @@ -375,7 +375,7 @@ public async Task ConfigureRunnerServiceFailsOnUnconfiguredRunners() trace.Info("Constructed"); _store.Setup(x => x.IsConfigured()).Returns(false); - trace.Info("Ensuring service generation mode fails when on un-configured runners"); + trace.Info("Ensuring service generation mode fails when on deconfigured runners"); var ex = await Assert.ThrowsAsync(() => configManager.ConfigureAsync(command)); Assert.Contains("requires that the runner is already configured", ex.Message); @@ -407,7 +407,7 @@ public async Task ConfigureRunnerServiceCreatesService() _store.Setup(x => x.IsConfigured()).Returns(true); - trace.Info("Ensuring service generation mode fails when on un-configured runners"); + trace.Info("Ensuring service generation mode fails when on deconfigured runners"); await configManager.ConfigureAsync(command); _serviceControlManager.Verify(x => x.GenerateScripts(It.IsAny()), Times.Once); From f13b65ee1ad642aaf6cb80790c46ad9edc06d924 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:41:10 -0500 Subject: [PATCH 046/188] spelling: deconfigures Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Runner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index 476a5613ba5..9bf81f2ff1e 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -1079,7 +1079,7 @@ private void PrintUsage(CommandSettings command) _term.WriteLine($@" Commands: .{separator}config.{ext} Configures the runner - .{separator}config.{ext} remove Unconfigures the runner + .{separator}config.{ext} remove Deconfigures the runner .{separator}run.{ext} Runs the runner interactively. Does not require any options. Options: From bc85aa8ea2956df69d8cafb150aef17fd85ab1be Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:57:39 -0500 Subject: [PATCH 047/188] spelling: default Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/DictionaryExtensions.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Sdk/Common/Common/Utility/DictionaryExtensions.cs b/src/Sdk/Common/Common/Utility/DictionaryExtensions.cs index 6518c5a3c44..aa60bb192c5 100644 --- a/src/Sdk/Common/Common/Utility/DictionaryExtensions.cs +++ b/src/Sdk/Common/Common/Utility/DictionaryExtensions.cs @@ -95,7 +95,7 @@ public static V AddOrUpdate(this IDictionary dictionary, /// /// Returns the value in an IReadonlyDictionary with values of type - /// casted as values of requested type, or the defualt if the key is not found or + /// casted as values of requested type, or the default if the key is not found or /// if the value was found but not compatible with the requested type. /// /// The key type @@ -112,7 +112,7 @@ public static V AddOrUpdate(this IDictionary dictionary, /// /// Returns the value in an IDictionary with values of type - /// casted as values of requested type, or the defualt if the key is not found or + /// casted as values of requested type, or the default if the key is not found or /// if the value was found but not compatible with the requested type. /// /// The key type @@ -129,7 +129,7 @@ public static V AddOrUpdate(this IDictionary dictionary, /// /// Returns the value in a Dictionary with values of type - /// casted as values of requested type, or the defualt if the key is not found or + /// casted as values of requested type, or the default if the key is not found or /// if the value was found but not compatible with the requested type. /// /// From 033949bd7c539401c96da8ceddcb068f267c4777 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:57:33 -0500 Subject: [PATCH 048/188] spelling: definition Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Location/Interfaces.cs | 8 ++++---- src/Sdk/WebApi/WebApi/ResourceLocationIds.cs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/Location/Interfaces.cs b/src/Sdk/WebApi/WebApi/Location/Interfaces.cs index 7abbe24c131..b9e5845a050 100644 --- a/src/Sdk/WebApi/WebApi/Location/Interfaces.cs +++ b/src/Sdk/WebApi/WebApi/Location/Interfaces.cs @@ -227,7 +227,7 @@ IEnumerable FindServiceDefinitions( String serviceType); /// - /// Returns the location for the ServiceDefintion associated with the ServiceType + /// Returns the location for the ServiceDefinition associated with the ServiceType /// and ServiceIdentifier that should be used based on the current connection. /// If a ServiceDefinition with the ServiceType and ServiceIdentifier does not /// exist then null will be returned. If a ServiceDefinition with the ServiceType @@ -256,7 +256,7 @@ String LocationForCurrentConnection( Guid serviceIdentifier); /// - /// Returns the location for the ServiceDefintion that should be used based on + /// Returns the location for the ServiceDefinition that should be used based on /// the current connection. This method will never return null or empty. If it /// succeeds it will return a targetable location for the provided /// ServiceDefinition. @@ -469,7 +469,7 @@ Task> FindServiceDefinitionsAsync( CancellationToken cancellationToken = default(CancellationToken)); /// - /// Returns the location for the ServiceDefintion associated with the ServiceType + /// Returns the location for the ServiceDefinition associated with the ServiceType /// and ServiceIdentifier that should be used based on the current connection. /// If a ServiceDefinition with the ServiceType and ServiceIdentifier does not /// exist then null will be returned. If a ServiceDefinition with the ServiceType @@ -499,7 +499,7 @@ Task LocationForCurrentConnectionAsync( CancellationToken cancellationToken = default(CancellationToken)); /// - /// Returns the location for the ServiceDefintion that should be used based on + /// Returns the location for the ServiceDefinition that should be used based on /// the current connection. This method will never return null or empty. If it /// succeeds it will return a targetable location for the provided /// ServiceDefinition. diff --git a/src/Sdk/WebApi/WebApi/ResourceLocationIds.cs b/src/Sdk/WebApi/WebApi/ResourceLocationIds.cs index 74146067189..675a5fdc5bc 100644 --- a/src/Sdk/WebApi/WebApi/ResourceLocationIds.cs +++ b/src/Sdk/WebApi/WebApi/ResourceLocationIds.cs @@ -36,7 +36,7 @@ public static class LocationResourceIds public static readonly Guid ResourceAreas = new Guid("E81700F7-3BE2-46DE-8624-2EB35882FCAA"); // Used for updating the SPS locations in account migrations. - public const string SpsServiceDefintionResource = "SpsServiceDefinition"; + public const string SpsServiceDefinitionResource = "SpsServiceDefinition"; public static readonly Guid SpsServiceDefinition = new Guid("{DF5F298A-4E06-4815-A13E-6CE90A37EFA4}"); } From a4c39cb3f196666674334b8cb0a64fc4917d1996 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:38:40 -0500 Subject: [PATCH 049/188] spelling: dependencies Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/WrappedException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/WrappedException.cs b/src/Sdk/WebApi/WebApi/WrappedException.cs index fb41d987282..c5198942815 100644 --- a/src/Sdk/WebApi/WebApi/WrappedException.cs +++ b/src/Sdk/WebApi/WebApi/WrappedException.cs @@ -477,7 +477,7 @@ private static void UpdateExceptionAttributeMappingCache() IEnumerable types; try { - // calling GetTypes has side effect of loading direct dependancies of the assembly. + // calling GetTypes has side effect of loading direct dependencies of the assembly. types = assembly.GetTypes(); } catch (ReflectionTypeLoadException ex) From bb1a7386da8c267810c3b2be5047bc1a984ac938 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:57:50 -0500 Subject: [PATCH 050/188] spelling: dependent Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/WrappedException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/WrappedException.cs b/src/Sdk/WebApi/WebApi/WrappedException.cs index c5198942815..c228d4dde23 100644 --- a/src/Sdk/WebApi/WebApi/WrappedException.cs +++ b/src/Sdk/WebApi/WebApi/WrappedException.cs @@ -482,7 +482,7 @@ private static void UpdateExceptionAttributeMappingCache() } catch (ReflectionTypeLoadException ex) { - // if dependant assembly fails to load, we should still be able to get all the exceptions, since it would be unlikely, + // if dependent assembly fails to load, we should still be able to get all the exceptions, since it would be unlikely, // that an exception is referencing a type from the assembly that failed to load. types = ex.Types.Where(t => t != null); } From edd2f0632c09f0478cf4e2aac7c0aeb7c787ee40 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:58:02 -0500 Subject: [PATCH 051/188] spelling: dependents Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../Configuration/NativeWindowsServiceHelper.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs index 173e0bbe6cb..0080d079415 100644 --- a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs +++ b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs @@ -1178,7 +1178,7 @@ public enum ServiceRights QueryConfig = 0x1, ChangeConfig = 0x2, QueryStatus = 0x4, - EnumerateDependants = 0x8, + EnumerateDependents = 0x8, Start = 0x10, Stop = 0x20, PauseContinue = 0x40, @@ -1187,7 +1187,7 @@ public enum ServiceRights Delete = 0x00010000, StandardRightsRequired = 0xF0000, AllAccess = - (StandardRightsRequired | QueryConfig | ChangeConfig | QueryStatus | EnumerateDependants | Start | Stop + (StandardRightsRequired | QueryConfig | ChangeConfig | QueryStatus | EnumerateDependents | Start | Stop | PauseContinue | Interrogate | UserDefinedControl) } From bb3858bbb4b20c37f47a102e96699ee664fb510a Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:58:42 -0500 Subject: [PATCH 052/188] spelling: deserialization Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Contracts/PropertiesCollection.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/Contracts/PropertiesCollection.cs b/src/Sdk/WebApi/WebApi/Contracts/PropertiesCollection.cs index 03e868ac5b8..68391b6ad93 100644 --- a/src/Sdk/WebApi/WebApi/Contracts/PropertiesCollection.cs +++ b/src/Sdk/WebApi/WebApi/Contracts/PropertiesCollection.cs @@ -15,7 +15,7 @@ namespace GitHub.Services.WebApi //the server side TeamFoundationPropertiesService stores five types in their native format //: Byte[], Int32, Double, DateType and String. //JSON.NET deals correctly with Double, DateType and String, but can't discern the proper - //type of Byte[] and Int32 on deserization if deserializing into Object. Byte[] gets serialized as a + //type of Byte[] and Int32 on deserialization if deserializing into Object. Byte[] gets serialized as a //Base64 encoded string, and stays that way. All integers get serialized as Int64, and stay that way //on deserialization. Adding ItemTypeNameHandling=TypeNameHandling.All fixed Byte[] but not Int32, it turns //out that they only primitive type that gets the name is byte[]... From fb741706a0a039ab4c009d06c4693b8749d0a464 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:59:57 -0500 Subject: [PATCH 053/188] spelling: determine the result of the runner update based on the log file Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Misc/layoutbin/update.cmd.template | 2 +- src/Misc/layoutbin/update.sh.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Misc/layoutbin/update.cmd.template b/src/Misc/layoutbin/update.cmd.template index 495c647a4e7..daeef250d84 100644 --- a/src/Misc/layoutbin/update.cmd.template +++ b/src/Misc/layoutbin/update.cmd.template @@ -124,7 +124,7 @@ type nul > update.finished echo [%date% %time%] update.finished file creation succeed >> "%logfile%" 2>&1 rem rename the update log file with %logfile%.succeed/.failed/succeedneedrestart -rem runner service host can base on the log file name determin the result of the runner update +rem runner service host can determine the result of the runner update based on the log file echo [%date% %time%] Rename "%logfile%" to be "%logfile%.succeed" >> "%logfile%" 2>&1 move "%logfile%" "%logfile%.succeed" >nul diff --git a/src/Misc/layoutbin/update.sh.template b/src/Misc/layoutbin/update.sh.template index 82ada18b917..bc386eb9d39 100755 --- a/src/Misc/layoutbin/update.sh.template +++ b/src/Misc/layoutbin/update.sh.template @@ -208,7 +208,7 @@ touch update.finished date "+[%F %T-%4N] update.finished file creation succeed" >> "$logfile" # rename the update log file with %logfile%.succeed/.failed/succeedneedrestart -# runner service host can base on the log file name determin the result of the runner update +# runner service host can determine the result of the runner update based on the log file date "+[%F %T-%4N] Rename $logfile to be $logfile.succeed" >> "$logfile" 2>&1 mv -fv "$logfile" "$logfile.succeed" >> "$logfile" 2>&1 From c859afb55c8337e5f5a1ac85945becc1b1d42102 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:58:56 -0500 Subject: [PATCH 054/188] spelling: determined Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/EnumerableExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/EnumerableExtensions.cs b/src/Sdk/Common/Common/Utility/EnumerableExtensions.cs index 470317c6cab..e65976f7b74 100644 --- a/src/Sdk/Common/Common/Utility/EnumerableExtensions.cs +++ b/src/Sdk/Common/Common/Utility/EnumerableExtensions.cs @@ -88,7 +88,7 @@ public static PartitionResults Partition(this IEnumerable source, Predi } /// - /// Partitions items from a source IEnumerable into N+1 lists, where the first N lists are determened + /// Partitions items from a source IEnumerable into N+1 lists, where the first N lists are determined /// by the sequential check of the provided predicates, with the N+1 list containing those items /// which matched none of the provided predicates. /// From 7047ff3521e3ec6ab3b5f1e0926b8a4592921ff2 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:00:04 -0500 Subject: [PATCH 055/188] spelling: determines Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs b/src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs index 4483b141f53..d6cbafeba2a 100644 --- a/src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs +++ b/src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs @@ -10,7 +10,7 @@ namespace GitHub.Services.Common public static class TypeExtensionMethods { /// - /// Determins if a value is assignable to the requested type. It goes + /// Determines if a value is assignable to the requested type. It goes /// the extra step beyond IsAssignableFrom in that it also checks for /// IConvertible and attempts to convert the value. /// From bd04b968a21fc38a9e6a8484658f2ea8e21e03a8 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:00:16 -0500 Subject: [PATCH 056/188] spelling: diagnostic Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/Worker/JobExtensionL0.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Test/L0/Worker/JobExtensionL0.cs b/src/Test/L0/Worker/JobExtensionL0.cs index 60814998ef3..83859b5e0bf 100644 --- a/src/Test/L0/Worker/JobExtensionL0.cs +++ b/src/Test/L0/Worker/JobExtensionL0.cs @@ -258,7 +258,7 @@ public async Task JobExtensionBuildFailsWithoutContainerIfRequired() [Fact] [Trait("Level", "L0")] [Trait("Category", "Worker")] - public async Task UploadDiganosticLogIfEnvironmentVariableSet() + public async Task UploadDiagnosticLogIfEnvironmentVariableSet() { using (TestHostContext hc = CreateTestContext()) { From 4ebb14b3cb226767a905d0607a46577598a061bb Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:00:22 -0500 Subject: [PATCH 057/188] spelling: directory Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/ContainerOperationProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/ContainerOperationProvider.cs b/src/Runner.Worker/ContainerOperationProvider.cs index c5cccb77ef0..90bf8a10d9c 100644 --- a/src/Runner.Worker/ContainerOperationProvider.cs +++ b/src/Runner.Worker/ContainerOperationProvider.cs @@ -538,7 +538,7 @@ private async Task AssertCompatibleOS(IExecutionContext executionContext) { // Check whether we are inside a container. // Our container feature requires to map working directory from host to the container. - // If we are already inside a container, we will not able to find out the real working direcotry path on the host. + // If we are already inside a container, we will not able to find out the real working directory path on the host. #if OS_WINDOWS #pragma warning disable CA1416 // service CExecSvc is Container Execution Agent. From d861212859c53a6efe141eab19555f467ee18276 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:00:31 -0500 Subject: [PATCH 058/188] spelling: distinguish Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTPipelines/Pipelines/ExpressionValue.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/DTPipelines/Pipelines/ExpressionValue.cs b/src/Sdk/DTPipelines/Pipelines/ExpressionValue.cs index 47f9e6f7e2b..352da455050 100644 --- a/src/Sdk/DTPipelines/Pipelines/ExpressionValue.cs +++ b/src/Sdk/DTPipelines/Pipelines/ExpressionValue.cs @@ -62,7 +62,7 @@ public static ExpressionValue FromLiteral(T literal) } /// - /// When T is String, we cannot distiguish between literals and expressions solely by type. + /// When T is String, we cannot distinguish between literals and expressions solely by type. /// Use this function when parsing and you want to err on the side of expressions. /// public static ExpressionValue FromToken(String token) From 346d4c6347da1b7550b5a0eca5215c0a8898cdf4 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:00:39 -0500 Subject: [PATCH 059/188] spelling: distributions Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/Handlers/StepHost.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/Handlers/StepHost.cs b/src/Runner.Worker/Handlers/StepHost.cs index fa79de884d1..31aa4647d5a 100644 --- a/src/Runner.Worker/Handlers/StepHost.cs +++ b/src/Runner.Worker/Handlers/StepHost.cs @@ -161,7 +161,7 @@ public async Task DetermineNodeRuntimeVersion(IExecutionContext executio // Best effort to determine a compatible node runtime // There may be more variation in which libraries are linked than just musl/glibc, - // so determine based on known distribtutions instead + // so determine based on known distributions instead var osReleaseIdCmd = "sh -c \"cat /etc/*release | grep ^ID\""; var dockerManager = HostContext.GetService(); From e77afcc02e1c17d0a4138569d6982784da39daa5 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:52:35 -0500 Subject: [PATCH 060/188] spelling: does not exist Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs index 0080d079415..de6804d080b 100644 --- a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs +++ b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs @@ -192,7 +192,7 @@ public void DeleteLocalGroup(string groupName) { case ReturnCode.NERR_GroupNotFound: case ReturnCode.ERROR_NO_SUCH_ALIAS: - Trace.Info(StringUtil.Format("Group {0} not exists.", groupName)); + Trace.Info(StringUtil.Format("Group {0} does not exist.", groupName)); break; case ReturnCode.ERROR_ACCESS_DENIED: From 63b38c5fbb2e66bb73ccc0c776f297abb2c55c5c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:01:03 -0500 Subject: [PATCH 061/188] spelling: empty Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Plugins/Artifact/FileContainerServer.cs | 10 +++++----- src/Test/L0/Util/StringUtilL0.cs | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Runner.Plugins/Artifact/FileContainerServer.cs b/src/Runner.Plugins/Artifact/FileContainerServer.cs index d924ae59b45..856383c1248 100644 --- a/src/Runner.Plugins/Artifact/FileContainerServer.cs +++ b/src/Runner.Plugins/Artifact/FileContainerServer.cs @@ -103,9 +103,9 @@ public async Task DownloadFromContainerAsync( } // container items will include both folders, files and even file with zero size - // Create all required empty folders and emptry files, gather a list of files that we need to download from server. + // Create all required empty folders and empty files, gather a list of files that we need to download from server. int foldersCreated = 0; - int emptryFilesCreated = 0; + int emptyFilesCreated = 0; List downloadFiles = new(); foreach (var item in containerItems.OrderBy(x => x.Path)) { @@ -134,7 +134,7 @@ public async Task DownloadFromContainerAsync( using (new FileStream(localPath, FileMode.Create)) { } - emptryFilesCreated++; + emptyFilesCreated++; } else { @@ -153,9 +153,9 @@ public async Task DownloadFromContainerAsync( context.Output($"{foldersCreated} folders created."); } - if (emptryFilesCreated > 0) + if (emptyFilesCreated > 0) { - context.Output($"{emptryFilesCreated} empty files created."); + context.Output($"{emptyFilesCreated} empty files created."); } if (downloadFiles.Count == 0) diff --git a/src/Test/L0/Util/StringUtilL0.cs b/src/Test/L0/Util/StringUtilL0.cs index f6eed8ccf47..ebac1183dc1 100644 --- a/src/Test/L0/Util/StringUtilL0.cs +++ b/src/Test/L0/Util/StringUtilL0.cs @@ -102,7 +102,7 @@ public void FormatUsesInvariantCulture() [Fact] [Trait("Level", "L0")] [Trait("Category", "Common")] - public void ConvertNullOrEmptryStringToBool() + public void ConvertNullOrEmptyStringToBool() { using (TestHostContext hc = new(this)) { @@ -123,7 +123,7 @@ public void ConvertNullOrEmptryStringToBool() [Fact] [Trait("Level", "L0")] [Trait("Category", "Common")] - public void ConvertNullOrEmptryStringToDefaultBool() + public void ConvertNullOrEmptyStringToDefaultBool() { using (TestHostContext hc = new(this)) { From ff3bded19c8a2735e3a8cdaaf400c14cf73f087c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:21:44 -0500 Subject: [PATCH 062/188] spelling: end Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Runner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index 9bf81f2ff1e..2807dc45b7e 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -819,7 +819,7 @@ await configUpdater.UpdateRunnerConfigAsync( catch (Exception ex) when (runOnce) { // ignore exception during delete session for ephemeral runner since the runner might already be deleted from the server side - // and the delete session call will ends up with 401. + // and the delete session call will end up with 401. Trace.Info($"Ignore any exception during DeleteSession for an ephemeral runner. {ex}"); } } From f97eb6f9e86b3962b58aa8767d6a9d6025938a84 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:21:31 -0500 Subject: [PATCH 063/188] spelling: ends Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/WrappedException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/WrappedException.cs b/src/Sdk/WebApi/WebApi/WrappedException.cs index c228d4dde23..88b8023e0d0 100644 --- a/src/Sdk/WebApi/WebApi/WrappedException.cs +++ b/src/Sdk/WebApi/WebApi/WrappedException.cs @@ -408,7 +408,7 @@ private static Assembly ResolveAssembly(AssemblyName asmName) // DEVNOTE: Do not tack-on the version information, instead let the // assembly load without it so that it may resolve to the appropriate. // Otherwise, translation down the stack may fail due to version mismatch - // and that end's up creating un-necessary retries on certain user defined exceptions. + // and that ends up creating un-necessary retries on certain user defined exceptions. // newName.Version = Assembly.GetExecutingAssembly().GetName().Version; newName.SetPublicKeyToken(asmName.GetPublicKeyToken()); From abf04c59ce4619b15d1aedf72b62082c79309c12 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:01:23 -0500 Subject: [PATCH 064/188] spelling: enumerable Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/PartitioningResults.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/Common/Common/Utility/PartitioningResults.cs b/src/Sdk/Common/Common/Utility/PartitioningResults.cs index 4b0b82e73e7..c2bdd09afe4 100644 --- a/src/Sdk/Common/Common/Utility/PartitioningResults.cs +++ b/src/Sdk/Common/Common/Utility/PartitioningResults.cs @@ -3,7 +3,7 @@ namespace GitHub.Services.Common { /// - /// Contains results from two-way variant of EnuemrableExtensions.Partition() + /// Contains results from two-way variant of EnumerableExtensions.Partition() /// /// The type of the elements in the contained lists. public sealed class PartitionResults @@ -14,7 +14,7 @@ public sealed class PartitionResults } /// - /// Contains results from multi-partitioning variant of EnuemrableExtensions.Partition() + /// Contains results from multi-partitioning variant of EnumerableExtensions.Partition() /// /// The type of the elements in the contained lists. public sealed class MultiPartitionResults From cea0d14e4069f5c44c6fa272ad4a80ba4f7b707c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:01:21 -0500 Subject: [PATCH 065/188] spelling: env Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/ActionRunner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/ActionRunner.cs b/src/Runner.Worker/ActionRunner.cs index da967468a33..a232c6c0a20 100644 --- a/src/Runner.Worker/ActionRunner.cs +++ b/src/Runner.Worker/ActionRunner.cs @@ -245,7 +245,7 @@ Action.Reference is Pipelines.RepositoryPathReference repoAction && #else var envContext = ExecutionContext.ExpressionValues["env"] as CaseSensitiveDictionaryContextData; #endif - // Apply environment from env context, env context contains job level env and action's evn block + // Apply environment from env context, env context contains job level env and action's env block foreach (var env in envContext) { environment[env.Key] = env.Value.ToString(); From 2d4ded75a76ae5484c2684bfd26dd7a7f801ccfe Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:21:55 -0500 Subject: [PATCH 066/188] spelling: equal Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/0549-composite-run-steps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/0549-composite-run-steps.md b/docs/adrs/0549-composite-run-steps.md index 2f6ff35661d..c93e0eb27ff 100644 --- a/docs/adrs/0549-composite-run-steps.md +++ b/docs/adrs/0549-composite-run-steps.md @@ -314,7 +314,7 @@ runs: **We will not support "timeout-minutes" in a composite action for now. This functionality will be focused on in a future ADR.** -A composite action in its entirety is a job. You can set both timeout-minutes for the whole composite action or its steps as long as the sum of the `timeout-minutes` for each composite action step that has the attribute `timeout-minutes` is less than or equals to `timeout-minutes` for the composite action. There is no default timeout-minutes for each composite action step. +A composite action in its entirety is a job. You can set both timeout-minutes for the whole composite action or its steps as long as the sum of the `timeout-minutes` for each composite action step that has the attribute `timeout-minutes` is less than or equal to `timeout-minutes` for the composite action. There is no default timeout-minutes for each composite action step. If the time taken for any of the steps in combination or individually exceeds the whole composite action `timeout-minutes` attribute, the whole job will fail (1). If an individual step exceeds its own `timeout-minutes` attribute but the total time that has been used including this step is below the overall composite action `timeout-minutes`, the individual step will fail but the rest of the steps will run based on their own `timeout-minutes` attribute (they will still abide by condition (1) though). From ae6e8c9f4cba4f5633bf07cfc642e7e741af0a76 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:22:02 -0500 Subject: [PATCH 067/188] spelling: equals Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/ArgumentUtility.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/Common/Common/Utility/ArgumentUtility.cs b/src/Sdk/Common/Common/Utility/ArgumentUtility.cs index 55500639355..7f062ddd666 100644 --- a/src/Sdk/Common/Common/Utility/ArgumentUtility.cs +++ b/src/Sdk/Common/Common/Utility/ArgumentUtility.cs @@ -1151,7 +1151,7 @@ public static void CheckStringForInvalidCharacters(string[] stringArrayVar, stri } /// - /// Throws an exception if the provided value equals to infinity. + /// Throws an exception if the provided value equals infinity. /// /// value to check /// the variable or parameter name to display @@ -1161,7 +1161,7 @@ public static void CheckValueEqualsToInfinity(float value, string valueName) } /// - /// Throws an exception if the provided value equals to infinity. + /// Throws an exception if the provided value equals infinity. /// /// value to check /// the variable or parameter name to display From cd911260cabae6202819fe46cd702613871f93ca Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:01:39 -0500 Subject: [PATCH 068/188] spelling: equivalent Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1891-container-hooks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/adrs/1891-container-hooks.md b/docs/adrs/1891-container-hooks.md index 8b8e73efdd5..cc4e78e6833 100644 --- a/docs/adrs/1891-container-hooks.md +++ b/docs/adrs/1891-container-hooks.md @@ -286,9 +286,9 @@ jobContainer: **Optional** An Object containing information about the specified ### Cleanup Job The `cleanup_job` hook is called at the end of a job and expects you to: -- Stop any running service or job containers (or the equiavalent pod) +- Stop any running service or job containers (or the equivalent pod) - Stop the network (if one exists) -- Delete any job or service containers (or the equiavalent pod) +- Delete any job or service containers (or the equivalent pod) - Delete the network (if one exists) - Cleanup anything else that was created for the run From 36c65b5ed2ad11bcca38a3449e6d127a5df23c3b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:01:46 -0500 Subject: [PATCH 069/188] spelling: errors Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/ExecutionContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/ExecutionContext.cs b/src/Runner.Worker/ExecutionContext.cs index 5646d46aa53..752149e7e1f 100644 --- a/src/Runner.Worker/ExecutionContext.cs +++ b/src/Runner.Worker/ExecutionContext.cs @@ -1498,7 +1498,7 @@ internal TemplateTraceWriter(IExecutionContext executionContext) public void Error(string format, params Object[] args) { - /* TraceWriter should be used for logging and not creating erros. */ + /* TraceWriter should be used for logging and not creating errors. */ if (logTemplateErrorsAsDebugMessages()) { _executionContext.Debug(string.Format(CultureInfo.CurrentCulture, format, args)); From 66c5a638be94433598f4f495e6453c1b60435dd8 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:00:17 -0500 Subject: [PATCH 070/188] spelling: etc. Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTPipelines/Pipelines/ActionStep.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/DTPipelines/Pipelines/ActionStep.cs b/src/Sdk/DTPipelines/Pipelines/ActionStep.cs index f4ed5f041b5..7428dadea62 100644 --- a/src/Sdk/DTPipelines/Pipelines/ActionStep.cs +++ b/src/Sdk/DTPipelines/Pipelines/ActionStep.cs @@ -36,7 +36,7 @@ public ActionStepDefinitionReference Reference set; } - // TODO: After TFS and legacy phases/steps/ect are removed, lets replace the DisplayName in the base class with this value and remove this additional prop + // TODO: After TFS and legacy phases/steps/etc. are removed, lets replace the DisplayName in the base class with this value and remove this additional prop [DataMember(EmitDefaultValue = false)] public TemplateToken DisplayNameToken { get; set; } From cc6d21d019173bde2d8990c216776fb6a5ac5c82 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:02:03 -0500 Subject: [PATCH 071/188] spelling: evaluate Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/ActionRunner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/ActionRunner.cs b/src/Runner.Worker/ActionRunner.cs index a232c6c0a20..436ec5fd3df 100644 --- a/src/Runner.Worker/ActionRunner.cs +++ b/src/Runner.Worker/ActionRunner.cs @@ -312,7 +312,7 @@ public bool TryUpdateDisplayName(out bool updated) } catch (Exception ex) { - Trace.Warning("Caught exception while attempting to evaulate/update the step's DisplayName. Exception Details: {0}", ex); + Trace.Warning("Caught exception while attempting to evaluate/update the step's DisplayName. Exception Details: {0}", ex); } // For consistency with other implementations of TryUpdateDisplayName we use !string.IsNullOrEmpty below, From 38eb996cdf4055239cb3af210ee87ba468a9f70c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:01:55 -0500 Subject: [PATCH 072/188] spelling: evaluation Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs | 2 +- src/Sdk/Expressions/Sdk/ExpressionNode.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs b/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs index 28e7b37ecde..36de91ab39b 100644 --- a/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs +++ b/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs @@ -30,7 +30,7 @@ protected internal String Name } /// - /// Indicates whether the evalation result should be stored on the context and used + /// Indicates whether the evaluation result should be stored on the context and used /// when the realized result is traced. /// protected abstract Boolean TraceFullyRealized { get; } diff --git a/src/Sdk/Expressions/Sdk/ExpressionNode.cs b/src/Sdk/Expressions/Sdk/ExpressionNode.cs index 5acbad2451e..35bf88a4a7d 100644 --- a/src/Sdk/Expressions/Sdk/ExpressionNode.cs +++ b/src/Sdk/Expressions/Sdk/ExpressionNode.cs @@ -28,7 +28,7 @@ public String Name } /// - /// Indicates whether the evalation result should be stored on the context and used + /// Indicates whether the evaluation result should be stored on the context and used /// when the expanded result is traced. /// protected abstract Boolean TraceFullyExpanded { get; } From 8e363e4f6a34ff5e41574faeebbbc2505f827158 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:02:12 -0500 Subject: [PATCH 073/188] spelling: exception Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/JobDispatcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index 89b94c913ab..173e36b0629 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -425,7 +425,7 @@ private async Task RunAsync(Pipelines.AgentJobRequestMessage message, string orc using (var processInvoker = HostContext.CreateService()) { // Start the process channel. - // It's OK if StartServer bubbles an execption after the worker process has already started. + // It's OK if StartServer bubbles an exception after the worker process has already started. // The worker will shutdown after 30 seconds if it hasn't received the job message. processChannel.StartServer( // Delegate to start the child process. From 211f8fb9308410d55bae401616334a56e918942d Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:02:19 -0500 Subject: [PATCH 074/188] spelling: exchanges Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/OAuth/VssOAuthConstants.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthConstants.cs b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthConstants.cs index dbff7277607..b38b84c61fe 100644 --- a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthConstants.cs +++ b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthConstants.cs @@ -3,7 +3,7 @@ namespace GitHub.Services.OAuth { /// - /// Provides constants used in token exhanges for OAuth 2.0 + /// Provides constants used in token exchanges for OAuth 2.0 /// public static class VssOAuthConstants { From 2751fce98a797898f3242b198ee23cc96314c749 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:02:28 -0500 Subject: [PATCH 075/188] spelling: explicitly Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/Worker/ActionRunnerL0.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Test/L0/Worker/ActionRunnerL0.cs b/src/Test/L0/Worker/ActionRunnerL0.cs index 8186e25b642..8404ddb2158 100644 --- a/src/Test/L0/Worker/ActionRunnerL0.cs +++ b/src/Test/L0/Worker/ActionRunnerL0.cs @@ -191,7 +191,7 @@ public void EvaluateExpansionOfDisplayNameToken() [Trait("Category", "Worker")] public void IgnoreDisplayNameTokenWhenDisplayNameIsExplicitlySet() { - var explicitDisplayName = "Explcitly Set Name"; + var explicitDisplayName = "Explicitly Set Name"; // Arrange Setup(); From 665dbc080a5119f7d3156bd8e161561a656d071d Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:02:36 -0500 Subject: [PATCH 076/188] spelling: expression Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs | 2 +- src/Sdk/Expressions/Sdk/ExpressionNode.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs b/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs index 36de91ab39b..ffb03a80ec5 100644 --- a/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs +++ b/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs @@ -159,7 +159,7 @@ private void TraceTreeResult( String.Equals(realizedExpression, $"'{traceValue}'", StringComparison.Ordinal)) { // Don't bother tracing the realized expression when the result is a number and the - // realized expresion is a precisely matching string. + // realized expression is a precisely matching string. } else { diff --git a/src/Sdk/Expressions/Sdk/ExpressionNode.cs b/src/Sdk/Expressions/Sdk/ExpressionNode.cs index 35bf88a4a7d..1e60a3bc464 100644 --- a/src/Sdk/Expressions/Sdk/ExpressionNode.cs +++ b/src/Sdk/Expressions/Sdk/ExpressionNode.cs @@ -162,7 +162,7 @@ private void TraceTreeResult( String.Equals(expandedExpression, $"'{traceValue}'", StringComparison.Ordinal)) { // Don't bother tracing the expanded expression when the result is a number and the - // expanded expresion is a precisely matching string. + // expanded expression is a precisely matching string. } else { From 4f570ef99e2a90f932337419324fbe676d777921 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:02:47 -0500 Subject: [PATCH 077/188] spelling: failure Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../Configuration/NativeWindowsServiceHelper.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs index de6804d080b..7639795f537 100644 --- a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs +++ b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs @@ -560,9 +560,9 @@ public void InstallService(string serviceName, string serviceDisplayName, string sfa.lpsaActions = tmpBuf.ToInt64(); // Call the ChangeServiceFailureActions() abstraction of ChangeServiceConfig2() - bool falureActionsResult = ChangeServiceFailureActions(svcHndl, SERVICE_CONFIG_FAILURE_ACTIONS, ref sfa); + bool failureActionsResult = ChangeServiceFailureActions(svcHndl, SERVICE_CONFIG_FAILURE_ACTIONS, ref sfa); //Check the return - if (!falureActionsResult) + if (!failureActionsResult) { int lastErrorCode = (int)GetLastError(); Exception win32exception = new Win32Exception(lastErrorCode); From 858685d71669180d5363c8303c5811f71dae6400 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:56:55 -0500 Subject: [PATCH 078/188] spelling: fall back Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1751-runner-job-hooks.md | 2 +- src/Misc/layoutbin/update.sh.template | 2 +- src/Misc/layoutroot/safe_sleep.sh | 2 +- src/Runner.Common/HostContext.cs | 2 +- src/Runner.Common/JobServer.cs | 2 +- src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs | 2 +- src/Sdk/Expressions/Sdk/ExpressionNode.cs | 4 ++-- src/Sdk/WebApi/WebApi/VssJsonCreationConverter.cs | 2 +- src/Sdk/WebApi/WebApi/WrappedException.cs | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/adrs/1751-runner-job-hooks.md b/docs/adrs/1751-runner-job-hooks.md index c6984a375e2..d0d7c8479eb 100644 --- a/docs/adrs/1751-runner-job-hooks.md +++ b/docs/adrs/1751-runner-job-hooks.md @@ -25,7 +25,7 @@ This feature is mainly intended for self hosted runner administrators. You can set these variables to the **absolute** path of a `.sh` or `.ps1` file. -We will execute `pwsh` (fallback to `powershell`) or `bash` (fallback to `sh`) as appropriate. +We will execute `pwsh` (fall back to `powershell`) or `bash` (fall back to `sh`) as appropriate. - `.sh` files will execute with the args `-e {pathtofile}` - `.ps1` files will execute with the args `-command \". '{pathtofile}'\"` diff --git a/src/Misc/layoutbin/update.sh.template b/src/Misc/layoutbin/update.sh.template index bc386eb9d39..795db7f3c63 100755 --- a/src/Misc/layoutbin/update.sh.template +++ b/src/Misc/layoutbin/update.sh.template @@ -135,7 +135,7 @@ if [[ "$currentplatform" == 'darwin' && $restartinteractiverunner -eq 0 ]]; the then # inspect the open file handles to find the node process # we can't actually inspect the process using ps because it uses relative paths and doesn't follow symlinks - # Try finding node24 first, then fallback to earlier versions if needed + # Try finding node24 first, then fall back to earlier versions if needed nodever="node24" path=$(lsof -a -g "$procgroup" -F n | grep $nodever/bin/node | grep externals | tail -1 | cut -c2-) if [[ $? -ne 0 || -z "$path" ]] # Fallback if RunnerService.js was started with node20 diff --git a/src/Misc/layoutroot/safe_sleep.sh b/src/Misc/layoutroot/safe_sleep.sh index 7b61c584ee9..1d05dca5d8a 100644 --- a/src/Misc/layoutroot/safe_sleep.sh +++ b/src/Misc/layoutroot/safe_sleep.sh @@ -30,7 +30,7 @@ if [ -n "$BASH_VERSION" ]; then fi fi -# fallback to a busy wait +# fall back to a busy wait SECONDS=0 while [[ $SECONDS -lt $1 ]]; do : diff --git a/src/Runner.Common/HostContext.cs b/src/Runner.Common/HostContext.cs index ca012a99999..aa3f1ca668d 100644 --- a/src/Runner.Common/HostContext.cs +++ b/src/Runner.Common/HostContext.cs @@ -321,7 +321,7 @@ public void LoadDefaultUserAgents() var orchestrationId = claims.FirstOrDefault(x => string.Equals(x.Type, "orch_id", StringComparison.OrdinalIgnoreCase))?.Value; if (string.IsNullOrEmpty(orchestrationId)) { - // fallback to orchid for C# actions-service + // fall back to orchid for C# actions-service orchestrationId = claims.FirstOrDefault(x => string.Equals(x.Type, "orchid", StringComparison.OrdinalIgnoreCase))?.Value; } diff --git a/src/Runner.Common/JobServer.cs b/src/Runner.Common/JobServer.cs index eac20a2b983..58842df0c8e 100644 --- a/src/Runner.Common/JobServer.cs +++ b/src/Runner.Common/JobServer.cs @@ -258,7 +258,7 @@ public async Task AppendTimelineRecordFeedAsync(Guid scopeIdentifier, string hub catch (Exception ex) { failedAttemptsToPostBatchedLinesByWebsocket++; - Trace.Info($"Caught exception during append web console line to websocket, let's fallback to sending via non-websocket call (total calls: {totalBatchedLinesAttemptedByWebsocket}, failed calls: {failedAttemptsToPostBatchedLinesByWebsocket}, websocket state: {this._websocketClient?.State})."); + Trace.Info($"Caught exception during append web console line to websocket, let's fall back to sending via non-websocket call (total calls: {totalBatchedLinesAttemptedByWebsocket}, failed calls: {failedAttemptsToPostBatchedLinesByWebsocket}, websocket state: {this._websocketClient?.State})."); Trace.Verbose(ex.ToString()); if (totalBatchedLinesAttemptedByWebsocket > _minWebsocketBatchedLinesCountToConsider) { diff --git a/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs b/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs index ffb03a80ec5..8d578d03400 100644 --- a/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs +++ b/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionNode.cs @@ -14,7 +14,7 @@ public abstract class ExpressionNode : IExpressionNode /// /// The name is used for tracing. Normally the parser will set the name. However if a node - /// is added manually, then the name may not be set and will fallback to the type name. + /// is added manually, then the name may not be set and will fall back to the type name. /// protected internal String Name { diff --git a/src/Sdk/Expressions/Sdk/ExpressionNode.cs b/src/Sdk/Expressions/Sdk/ExpressionNode.cs index 1e60a3bc464..b0c957c1c63 100644 --- a/src/Sdk/Expressions/Sdk/ExpressionNode.cs +++ b/src/Sdk/Expressions/Sdk/ExpressionNode.cs @@ -1,4 +1,4 @@ -#nullable disable // Consider removing in the future to minimize likelihood of NullReferenceException; refer https://learn.microsoft.com/en-us/dotnet/csharp/nullable-references +#nullable disable // Consider removing in the future to minimize likelihood of NullReferenceException; refer https://learn.microsoft.com/en-us/dotnet/csharp/nullable-references using System; @@ -12,7 +12,7 @@ public abstract class ExpressionNode : IExpressionNode /// /// The name is used for tracing. Normally the parser will set the name. However if a node - /// is added manually, then the name may not be set and will fallback to the type name. + /// is added manually, then the name may not be set and will fall back to the type name. /// public String Name { diff --git a/src/Sdk/WebApi/WebApi/VssJsonCreationConverter.cs b/src/Sdk/WebApi/WebApi/VssJsonCreationConverter.cs index 7c50ddbcbc8..7e1b71d1d4d 100644 --- a/src/Sdk/WebApi/WebApi/VssJsonCreationConverter.cs +++ b/src/Sdk/WebApi/WebApi/VssJsonCreationConverter.cs @@ -28,7 +28,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist return target; } - // fallback to default behavior for writes + // fall back to default behavior for writes public override bool CanWrite => false; public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) diff --git a/src/Sdk/WebApi/WebApi/WrappedException.cs b/src/Sdk/WebApi/WebApi/WrappedException.cs index 88b8023e0d0..2d0c9594454 100644 --- a/src/Sdk/WebApi/WebApi/WrappedException.cs +++ b/src/Sdk/WebApi/WebApi/WrappedException.cs @@ -227,7 +227,7 @@ public Exception Unwrap(IDictionary typeMapping) if (exception == null) { - //no standard mapping, fallback to + //no standard mapping, fall back to exception = UnWrap(innerException); } From 984fcfdc0f724afd0a9792e7157037a23174ea8f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:02:57 -0500 Subject: [PATCH 079/188] spelling: full Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/WrappedException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/WrappedException.cs b/src/Sdk/WebApi/WebApi/WrappedException.cs index 2d0c9594454..bb12d208909 100644 --- a/src/Sdk/WebApi/WebApi/WrappedException.cs +++ b/src/Sdk/WebApi/WebApi/WrappedException.cs @@ -340,7 +340,7 @@ private ConstructorInfo GetMatchingConstructor(params Type[] parameterTypes) private static Type LoadType(String typeName) { - // For rest api version < 3.0, the server transmits the fulllAssemblyQualifiedName of exception at time that version was initially released, + // For rest api version < 3.0, the server transmits the fullAssemblyQualifiedName of exception at time that version was initially released, // which means normal loading will fail due to version mismatch, as the version will always be <= 14.0.0.0. // Example: typeName=GitHub.Core.WebApi.ProjectDoesNotExistWithNameException, GitHub.Core.WebApi, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a From d3b50eb7bfef73b643c60a4cfbce238252f61705 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:03:06 -0500 Subject: [PATCH 080/188] spelling: function Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs | 2 +- src/Sdk/Expressions/Sdk/ResultMemory.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs b/src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs index b5524c5b730..e641de2568e 100644 --- a/src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs +++ b/src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs @@ -39,7 +39,7 @@ public class ResultMemory /// For , this value is currently ignored. /// /// - /// For example, consider a funciton jsonParse() which takes a string paramter, + /// For example, consider a function jsonParse() which takes a string paramter, /// and returns a JToken object. The JToken object is newly created and a rough /// measurement should be returned for the amount of bytes it consumes in memory. /// Set the to true, since new object contains no references diff --git a/src/Sdk/Expressions/Sdk/ResultMemory.cs b/src/Sdk/Expressions/Sdk/ResultMemory.cs index 165d59b54b7..b9a27ed9d64 100644 --- a/src/Sdk/Expressions/Sdk/ResultMemory.cs +++ b/src/Sdk/Expressions/Sdk/ResultMemory.cs @@ -37,7 +37,7 @@ public class ResultMemory /// For , this value is currently ignored. /// /// - /// For example, consider a funciton jsonParse() which takes a string paramter, + /// For example, consider a function jsonParse() which takes a string paramter, /// and returns a JToken object. The JToken object is newly created and a rough /// measurement should be returned for the amount of bytes it consumes in memory. /// Set the to true, since new object contains no references From 50e130b123bcae38a3f5d71e3217b6de1e86e96b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:39:47 -0500 Subject: [PATCH 081/188] spelling: further Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs | 8 ++++---- src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs b/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs index bff5eccd64d..12fdf1f8ebb 100644 --- a/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs +++ b/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs @@ -205,7 +205,7 @@ public async Task GetSourceAsync( int exitCode_clean = await gitCommandManager.GitClean(executionContext, targetPath); if (exitCode_clean != 0) { - executionContext.Debug($"'git clean -ffdx' failed with exit code {exitCode_clean}, this normally caused by:\n 1) Path too long\n 2) Permission issue\n 3) File in use\nFor futher investigation, manually run 'git clean -ffdx' on repo root: {targetPath} after each build."); + executionContext.Debug($"'git clean -ffdx' failed with exit code {exitCode_clean}, this normally caused by:\n 1) Path too long\n 2) Permission issue\n 3) File in use\nFor further investigation, manually run 'git clean -ffdx' on repo root: {targetPath} after each build."); softCleanSucceed = false; } @@ -215,7 +215,7 @@ public async Task GetSourceAsync( int exitCode_reset = await gitCommandManager.GitReset(executionContext, targetPath); if (exitCode_reset != 0) { - executionContext.Debug($"'git reset --hard HEAD' failed with exit code {exitCode_reset}\nFor futher investigation, manually run 'git reset --hard HEAD' on repo root: {targetPath} after each build."); + executionContext.Debug($"'git reset --hard HEAD' failed with exit code {exitCode_reset}\nFor further investigation, manually run 'git reset --hard HEAD' on repo root: {targetPath} after each build."); softCleanSucceed = false; } } @@ -228,7 +228,7 @@ public async Task GetSourceAsync( int exitCode_submoduleclean = await gitCommandManager.GitSubmoduleClean(executionContext, targetPath); if (exitCode_submoduleclean != 0) { - executionContext.Debug($"'git submodule foreach git clean -ffdx' failed with exit code {exitCode_submoduleclean}\nFor futher investigation, manually run 'git submodule foreach git clean -ffdx' on repo root: {targetPath} after each build."); + executionContext.Debug($"'git submodule foreach git clean -ffdx' failed with exit code {exitCode_submoduleclean}\nFor further investigation, manually run 'git submodule foreach git clean -ffdx' on repo root: {targetPath} after each build."); softCleanSucceed = false; } } @@ -238,7 +238,7 @@ public async Task GetSourceAsync( int exitCode_submodulereset = await gitCommandManager.GitSubmoduleReset(executionContext, targetPath); if (exitCode_submodulereset != 0) { - executionContext.Debug($"'git submodule foreach git reset --hard HEAD' failed with exit code {exitCode_submodulereset}\nFor futher investigation, manually run 'git submodule foreach git reset --hard HEAD' on repo root: {targetPath} after each build."); + executionContext.Debug($"'git submodule foreach git reset --hard HEAD' failed with exit code {exitCode_submodulereset}\nFor further investigation, manually run 'git submodule foreach git reset --hard HEAD' on repo root: {targetPath} after each build."); softCleanSucceed = false; } } diff --git a/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs b/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs index 1eddc0ba1ce..bf96290e630 100644 --- a/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs +++ b/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs @@ -189,7 +189,7 @@ public async Task GetSourceAsync( int exitCode_clean = await gitCommandManager.GitClean(executionContext, targetPath); if (exitCode_clean != 0) { - executionContext.Debug($"'git clean -ffdx' failed with exit code {exitCode_clean}, this normally caused by:\n 1) Path too long\n 2) Permission issue\n 3) File in use\nFor futher investigation, manually run 'git clean -ffdx' on repo root: {targetPath} after each build."); + executionContext.Debug($"'git clean -ffdx' failed with exit code {exitCode_clean}, this normally caused by:\n 1) Path too long\n 2) Permission issue\n 3) File in use\nFor further investigation, manually run 'git clean -ffdx' on repo root: {targetPath} after each build."); softCleanSucceed = false; } @@ -199,7 +199,7 @@ public async Task GetSourceAsync( int exitCode_reset = await gitCommandManager.GitReset(executionContext, targetPath); if (exitCode_reset != 0) { - executionContext.Debug($"'git reset --hard HEAD' failed with exit code {exitCode_reset}\nFor futher investigation, manually run 'git reset --hard HEAD' on repo root: {targetPath} after each build."); + executionContext.Debug($"'git reset --hard HEAD' failed with exit code {exitCode_reset}\nFor further investigation, manually run 'git reset --hard HEAD' on repo root: {targetPath} after each build."); softCleanSucceed = false; } } @@ -212,7 +212,7 @@ public async Task GetSourceAsync( int exitCode_submoduleclean = await gitCommandManager.GitSubmoduleClean(executionContext, targetPath); if (exitCode_submoduleclean != 0) { - executionContext.Debug($"'git submodule foreach git clean -ffdx' failed with exit code {exitCode_submoduleclean}\nFor futher investigation, manually run 'git submodule foreach git clean -ffdx' on repo root: {targetPath} after each build."); + executionContext.Debug($"'git submodule foreach git clean -ffdx' failed with exit code {exitCode_submoduleclean}\nFor further investigation, manually run 'git submodule foreach git clean -ffdx' on repo root: {targetPath} after each build."); softCleanSucceed = false; } } @@ -222,7 +222,7 @@ public async Task GetSourceAsync( int exitCode_submodulereset = await gitCommandManager.GitSubmoduleReset(executionContext, targetPath); if (exitCode_submodulereset != 0) { - executionContext.Debug($"'git submodule foreach git reset --hard HEAD' failed with exit code {exitCode_submodulereset}\nFor futher investigation, manually run 'git submodule foreach git reset --hard HEAD' on repo root: {targetPath} after each build."); + executionContext.Debug($"'git submodule foreach git reset --hard HEAD' failed with exit code {exitCode_submodulereset}\nFor further investigation, manually run 'git submodule foreach git reset --hard HEAD' on repo root: {targetPath} after each build."); softCleanSucceed = false; } } From 3d3309df95104f47b095e9997e4d6e0950b85a23 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:40:00 -0500 Subject: [PATCH 082/188] spelling: guarantee Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs b/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs index ec1525bc3f4..104112c7981 100644 --- a/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs +++ b/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs @@ -542,7 +542,7 @@ protected void SaveFile(IDictionary originalSettings, IDictionary< { // during testing, creating this backup provided reliability in the event of aborted threads, and // crashed processes. With this, I was not able to simulate a case where corruption happens, but there is no - // 100% gaurantee against corruption. + // 100% guarantee against corruption. string originalContent = JValue.Parse(JsonConvert.SerializeObject(originalSettings)).ToString(Formatting.Indented); SaveFile(m_bckUpFilePath, originalContent); } From 7f78cf3dcf7d378b8f1eb4af83752fd450ce76a9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:43:17 -0500 Subject: [PATCH 083/188] spelling: hierarchically Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs b/src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs index 617d7b850f6..1536f113253 100644 --- a/src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs +++ b/src/Sdk/Common/Common/ClientStorage/IVssClientStorage.cs @@ -65,7 +65,7 @@ public interface IVssClientStorageWriter /// /// Write one entry into the local data storage. /// - /// This is the key for the data to store. Providing a path allows data to be accessed hierarchicaly. + /// This is the key for the data to store. Providing a path allows data to be accessed hierarchically. /// The value to store at the specified path. Setting his to NULL will remove the entry. void WriteEntry(string path, object value); From 4268e9ee75e6670cb8ad5aef942c4c7647702827 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:06:02 -0500 Subject: [PATCH 084/188] spelling: how Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1891-container-hooks.md | 2 +- src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/adrs/1891-container-hooks.md b/docs/adrs/1891-container-hooks.md index cc4e78e6833..2d804fa42de 100644 --- a/docs/adrs/1891-container-hooks.md +++ b/docs/adrs/1891-container-hooks.md @@ -8,7 +8,7 @@ [Job Hooks](https://github.com/actions/runner/blob/main/docs/adrs/1751-runner-job-hooks.md) have given users the ability to customize how their self hosted runners run a job. Users also want the ability to customize how they run containers during the scope of the job, rather then being locked into the docker implementation we have in the runner. They may want to use podman, kubernetes, or even change the docker commands we run. -We should give them that option, and publish examples how how they can create their own hooks. +We should give them that option, and publish examples how they can create their own hooks. # Guiding Principles - **Extensibility** is the focus, we need to make sure we are flexible enough to cover current and future scenarios, even at the cost of making it harder to utilize these hooks diff --git a/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs b/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs index 9089b7d5d6b..407860e2a1c 100644 --- a/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs +++ b/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs @@ -267,7 +267,7 @@ public async Task GetTokenAsync( // It may seem strange to pass the string value of TotalSeconds into this method, but testing // showed that ETW is persnickety when you register a method in an EventSource that doesn't // use strings or integers as its parameters. It is easier to simply give a string to the method - // than figure out to get ETW to reliably accept a double or TimeSpan. + // than figure out how to get ETW to reliably accept a double or TimeSpan. VssHttpEventSource.Log.AuthorizationDelayed(getTokenTime.TotalSeconds.ToString()); } } From 8124b31be82e92395c92b6d8647f0a67a5ea60b8 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:51:20 -0500 Subject: [PATCH 085/188] spelling: identifier Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Location/Interfaces.cs | 4 ++-- src/Sdk/WebApi/WebApi/Location/LocationService.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/Location/Interfaces.cs b/src/Sdk/WebApi/WebApi/Location/Interfaces.cs index b9e5845a050..50c6bc8488d 100644 --- a/src/Sdk/WebApi/WebApi/Location/Interfaces.cs +++ b/src/Sdk/WebApi/WebApi/Location/Interfaces.cs @@ -386,7 +386,7 @@ AccessMapping GetAccessMapping( /// /// Get the API resource locations -- a collection of versioned URL paths that - /// are keyed by a location identitifer + /// are keyed by a location identifier /// /// ApiResourceLocationCollection GetResourceLocations(); @@ -582,7 +582,7 @@ Task GetAccessMappingAsync( /// /// Get the API resource locations -- a collection of versioned URL paths that - /// are keyed by a location identitifer + /// are keyed by a location identifier /// /// Task GetResourceLocationsAsync(CancellationToken cancellationToken = default(CancellationToken)); diff --git a/src/Sdk/WebApi/WebApi/Location/LocationService.cs b/src/Sdk/WebApi/WebApi/Location/LocationService.cs index 09a6b96766f..400333fed28 100644 --- a/src/Sdk/WebApi/WebApi/Location/LocationService.cs +++ b/src/Sdk/WebApi/WebApi/Location/LocationService.cs @@ -248,9 +248,9 @@ protected virtual ILocationDataProvider LocalDataProvider private class ProviderCache { - public Boolean TryGetValue(Guid locationAreaIdentfier, out ILocationDataProvider provider) + public Boolean TryGetValue(Guid locationAreaIdentifier, out ILocationDataProvider provider) { - return m_guidCache.TryGetValue(locationAreaIdentfier, out provider); + return m_guidCache.TryGetValue(locationAreaIdentifier, out provider); } public Boolean TryGetValue(String locationUrl, out ILocationDataProvider provider) From 93d77add395f1fa2edeafb63f189487faea845de Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:51:47 -0500 Subject: [PATCH 086/188] spelling: identities Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/VssCommonConstants.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/VssCommonConstants.cs b/src/Sdk/Common/Common/VssCommonConstants.cs index 596ef6503ed..c4fd6b9c2be 100644 --- a/src/Sdk/Common/Common/VssCommonConstants.cs +++ b/src/Sdk/Common/Common/VssCommonConstants.cs @@ -113,7 +113,7 @@ static IdentityConstants() /// /// The DB layer only supports byte, even though the data layer contracts suggests a /// 32-bit integer. Note: changing this constant implies that every new identity object - /// that is created, going forward will have this resource version set. Existing identites + /// that is created, going forward will have this resource version set. Existing identities /// will need to be updated to the current resource version level manually. /// /// This is created for rolling out of a feature based on identity not service host. From c317075d928bc137a9af2825e4155432d50f4f6b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:46:40 -0500 Subject: [PATCH 087/188] spelling: image Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTPipelines/Pipelines/JobContainer.cs | 2 +- src/Sdk/WorkflowParser/JobContainer.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/DTPipelines/Pipelines/JobContainer.cs b/src/Sdk/DTPipelines/Pipelines/JobContainer.cs index 901c4fed17d..2dc1d80fffe 100644 --- a/src/Sdk/DTPipelines/Pipelines/JobContainer.cs +++ b/src/Sdk/DTPipelines/Pipelines/JobContainer.cs @@ -58,7 +58,7 @@ public IList Ports } /// - /// Gets or sets the credentials used for pulling the container iamge. + /// Gets or sets the credentials used for pulling the container image. /// public ContainerRegistryCredentials Credentials { diff --git a/src/Sdk/WorkflowParser/JobContainer.cs b/src/Sdk/WorkflowParser/JobContainer.cs index dfa173c1030..6f03a8433c4 100644 --- a/src/Sdk/WorkflowParser/JobContainer.cs +++ b/src/Sdk/WorkflowParser/JobContainer.cs @@ -54,7 +54,7 @@ public IList Ports } /// - /// Gets or sets the credentials used for pulling the container iamge. + /// Gets or sets the credentials used for pulling the container image. /// public ContainerRegistryCredentials Credentials { From 746263b21f2efcccf80679b3b667a7f6dba11913 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:52:10 -0500 Subject: [PATCH 088/188] spelling: implicitly Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/Container/DockerUtil.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Worker/Container/DockerUtil.cs b/src/Runner.Worker/Container/DockerUtil.cs index 8eb922493f9..b0af1134120 100644 --- a/src/Runner.Worker/Container/DockerUtil.cs +++ b/src/Runner.Worker/Container/DockerUtil.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; @@ -53,7 +53,7 @@ public static string ParsePathFromConfigEnv(IList configEnvLines) public static string ParseRegistryHostnameFromImageName(string name) { var nameSplit = name.Split('/'); - // Single slash is implictly from Dockerhub, unless first part has .tld or :port + // Single slash is implicitly from Dockerhub, unless first part has .tld or :port if (nameSplit.Length == 2 && (nameSplit[0].Contains(":") || nameSplit[0].Contains("."))) { return nameSplit[0]; From 3a8a8f06b646abb27edc1d4a8a0723944ce09e36 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:52:59 -0500 Subject: [PATCH 089/188] spelling: in order Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/HttpClients/FileContainerHttpClient.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/HttpClients/FileContainerHttpClient.cs b/src/Sdk/WebApi/WebApi/HttpClients/FileContainerHttpClient.cs index e6c8e4efea4..ee0eede0e15 100644 --- a/src/Sdk/WebApi/WebApi/HttpClients/FileContainerHttpClient.cs +++ b/src/Sdk/WebApi/WebApi/HttpClients/FileContainerHttpClient.cs @@ -290,7 +290,7 @@ public async Task UploadFileAsync( FileUploadTrace(itemPath, $"Attempt '{attempt}' for uploading chunk '{currentChunk}' of file '{itemPath}'."); - // inorder for the upload to be retryable, we need the content to be re-readable + // in order for the upload to be retryable, we need the content to be re-readable // to ensure this we copy the chunk into a byte array and send that // chunk size ensures we can convert the length to an int int bytesToCopy = (int)currentStream.Length; From 84ede1bf81c1da0032d4a9972d4905a7cd8320d0 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:33:13 -0500 Subject: [PATCH 090/188] spelling: incoming result is worse or equal, so use it Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Common/Util/TaskResultUtil.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Common/Util/TaskResultUtil.cs b/src/Runner.Common/Util/TaskResultUtil.cs index e82bb2896b9..d20f4b74b94 100644 --- a/src/Runner.Common/Util/TaskResultUtil.cs +++ b/src/Runner.Common/Util/TaskResultUtil.cs @@ -50,7 +50,7 @@ public static TaskResult MergeTaskResults(TaskResult? currentResult, TaskResult return currentResult.Value; } - // comming result is bad than current result + // incoming result is worse or equal, so use it if (comingResult >= currentResult) { return comingResult; From 5cd6b0c81ee4ca052de7a08433a4c76fffeda459 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:53:50 -0500 Subject: [PATCH 091/188] spelling: individual Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/Worker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/Worker.cs b/src/Runner.Worker/Worker.cs index 4784c169314..dd3465d7c29 100644 --- a/src/Runner.Worker/Worker.cs +++ b/src/Runner.Worker/Worker.cs @@ -152,7 +152,7 @@ private void InitializeSecretMasker(Pipelines.AgentJobRequestMessage message) var value = variable.Value.Value?.Trim() ?? string.Empty; // Add the entire value, even if it contains CR or LF. During expression tracing, - // invidual trace info may contain line breaks. + // individual trace info may contain line breaks. HostContext.SecretMasker.AddValue(value); // Also add each individual line. Typically individual lines are processed from STDOUT of child processes. From f3afa38fea15c7fab478002beeb44e2cda2e709e Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:52:45 -0500 Subject: [PATCH 092/188] spelling: inherited Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../ObjectTemplating/Schema/MappingDefinition.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/DTObjectTemplating/ObjectTemplating/Schema/MappingDefinition.cs b/src/Sdk/DTObjectTemplating/ObjectTemplating/Schema/MappingDefinition.cs index 2d63c4008cd..5d0ac00751c 100644 --- a/src/Sdk/DTObjectTemplating/ObjectTemplating/Schema/MappingDefinition.cs +++ b/src/Sdk/DTObjectTemplating/ObjectTemplating/Schema/MappingDefinition.cs @@ -110,7 +110,7 @@ internal override void Validate( if (inherited.ReaderContext.Length > 0) { - throw new NotSupportedException($"Property '{TemplateConstants.Context}' is not supported on inhertied definitions"); + throw new NotSupportedException($"Property '{TemplateConstants.Context}' is not supported on inherited definitions"); } if (inherited.DefinitionType != DefinitionType.Mapping) From a5df192baa2cf09ffbe054b3cefd5d6aef48d777 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:53:42 -0500 Subject: [PATCH 093/188] spelling: initialization Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTWebApi/WebApi/TaskAgentMessage.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/DTWebApi/WebApi/TaskAgentMessage.cs b/src/Sdk/DTWebApi/WebApi/TaskAgentMessage.cs index b23ebddc8fa..9428e00f1dd 100644 --- a/src/Sdk/DTWebApi/WebApi/TaskAgentMessage.cs +++ b/src/Sdk/DTWebApi/WebApi/TaskAgentMessage.cs @@ -37,7 +37,7 @@ public String MessageType } /// - /// Gets or sets the intialization vector used to encrypt this message. + /// Gets or sets the initialization vector used to encrypt this message. /// [DataMember(EmitDefaultValue = false)] public Byte[] IV From ea0c1b261cf0b935cb7a3b69ced4e43318602f86 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:53:10 -0500 Subject: [PATCH 094/188] spelling: input Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/Worker/ExecutionContextL0.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Test/L0/Worker/ExecutionContextL0.cs b/src/Test/L0/Worker/ExecutionContextL0.cs index 9a2f7a990a4..357cdc9aa5e 100644 --- a/src/Test/L0/Worker/ExecutionContextL0.cs +++ b/src/Test/L0/Worker/ExecutionContextL0.cs @@ -952,7 +952,7 @@ public void GetExpressionValues_ContainerStepHost() ec.Initialize(hc); var inputGithubContext = new GitHubContext(); - var inputeRunnerContext = new RunnerContext(); + var inputRunnerContext = new RunnerContext(); // string context data inputGithubContext["action_path"] = new StringContextData("/home/username/Projects/work/runner/_layout/_work/_actions/owner/composite/main"); @@ -965,8 +965,8 @@ public void GetExpressionValues_ContainerStepHost() inputGithubContext["run_id"] = new StringContextData("2033211332"); inputGithubContext["workflow"] = new StringContextData("Name of Workflow"); inputGithubContext["workspace"] = new StringContextData("/home/username/Projects/work/runner/_layout/_work/step-order/step-order"); - inputeRunnerContext["temp"] = new StringContextData("/home/username/Projects/work/runner/_layout/_work/_temp"); - inputeRunnerContext["tool_cache"] = new StringContextData("/home/username/Projects/work/runner/_layout/_work/_tool"); + inputRunnerContext["temp"] = new StringContextData("/home/username/Projects/work/runner/_layout/_work/_temp"); + inputRunnerContext["tool_cache"] = new StringContextData("/home/username/Projects/work/runner/_layout/_work/_tool"); // dictionary context data var githubEvent = new DictionaryContextData(); @@ -979,7 +979,7 @@ public void GetExpressionValues_ContainerStepHost() inputGithubContext["event"] = githubEvent; ec.ExpressionValues["github"] = inputGithubContext; - ec.ExpressionValues["runner"] = inputeRunnerContext; + ec.ExpressionValues["runner"] = inputRunnerContext; var ecExpect = new Runner.Worker.ExecutionContext(); ecExpect.Initialize(hc); From 76b106638f5c7e5e4c4dfabd9b5b3e06f9897ec9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:12:05 -0500 Subject: [PATCH 095/188] spelling: insecure Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1891-container-hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/1891-container-hooks.md b/docs/adrs/1891-container-hooks.md index 2d804fa42de..d9e393219fa 100644 --- a/docs/adrs/1891-container-hooks.md +++ b/docs/adrs/1891-container-hooks.md @@ -46,7 +46,7 @@ All text written to stdout or stderr should appear in the job or step logs. With 1. Wrapping the json in some unique tag and processing it like we do commands 2. Writing to a file -For 1, users typically view logging information as a safe action, so we worry someone accidentally logging unsantized information and causing unexpected or un-secure behavior. We eventually plan to move off of stdout/stderr style commands in favor of a runner cli. +For 1, users typically view logging information as a safe action, so we worry someone accidentally logging unsantized information and causing unexpected or insecure behavior. We eventually plan to move off of stdout/stderr style commands in favor of a runner cli. Investing in this area doesn't make a lot of sense at this time. While writing to a file to communicate isn't the most ideal pattern, its an existing pattern in the runner and serves us well, so lets reuse it. From b23807a97e48203d27c49386f53991029ca76944 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:52:27 -0500 Subject: [PATCH 096/188] spelling: insensitive Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs b/src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs index 1e56f9fc632..15980f7b835 100644 --- a/src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs +++ b/src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs @@ -47,7 +47,7 @@ public static String ReplaceRouteValues( int paramStart = -1, paramLength = 0; bool insideParam = false; HashSet unusedValues = new HashSet(routeValues.Keys, StringComparer.OrdinalIgnoreCase); - Dictionary caseIncensitiveRouteValues = new Dictionary(routeValues, StringComparer.OrdinalIgnoreCase); + Dictionary caseInsensitiveRouteValues = new Dictionary(routeValues, StringComparer.OrdinalIgnoreCase); for (int i = 0; i < routeTemplate.Length; i++) { @@ -71,7 +71,7 @@ public static String ReplaceRouteValues( } Object paramValue; - if (caseIncensitiveRouteValues.TryGetValue(paramName, out paramValue)) + if (caseInsensitiveRouteValues.TryGetValue(paramName, out paramValue)) { if (paramValue != null) { @@ -148,7 +148,7 @@ public static String ReplaceRouteValues( foreach (String paramName in unusedValues) { Object paramValue; - if (caseIncensitiveRouteValues.TryGetValue(paramName, out paramValue) && paramValue != null) + if (caseInsensitiveRouteValues.TryGetValue(paramName, out paramValue) && paramValue != null) { sbResult.Append(isFirst ? '?' : '&'); isFirst = false; From e01284c322efd19af7d3cee9d1edc6d9f8e52579 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:03:41 -0500 Subject: [PATCH 097/188] spelling: internals visible to Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Contracts/Identity/Identity.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/Contracts/Identity/Identity.cs b/src/Sdk/WebApi/WebApi/Contracts/Identity/Identity.cs index eb9b896ada8..9f8ac734278 100644 --- a/src/Sdk/WebApi/WebApi/Contracts/Identity/Identity.cs +++ b/src/Sdk/WebApi/WebApi/Contracts/Identity/Identity.cs @@ -14,7 +14,7 @@ namespace GitHub.Services.Identity { //The only PATCH-able property on this class is CustomDisplayName, however there are more read/write properties - //because they get set by various providers in the Framework dll, in general Framework should not have internalsvisibleto to this dll + //because they get set by various providers in the Framework dll, in general Framework should not have internals visible to to this dll //CONSIDER: Should providers be in GitHub.Services.Identity instead? [DataContract] public sealed class Identity : IdentityBase, ISecuredObject From 82332921917332a7682e7cd88c9a5cea3d12f15e Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:53:35 -0500 Subject: [PATCH 098/188] spelling: interrupt Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/SecretUtility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/SecretUtility.cs b/src/Sdk/Common/Common/Utility/SecretUtility.cs index ff153235be2..f510edba9f2 100644 --- a/src/Sdk/Common/Common/Utility/SecretUtility.cs +++ b/src/Sdk/Common/Common/Utility/SecretUtility.cs @@ -209,7 +209,7 @@ private static string ScrubSecret(string message, string token, string mask, boo catch (Exception /*exception*/) { // With an exception here the message may still contain an unmasked password. - // We also do not want to interupt the current thread with this exception, because it may be constructing a message + // We also do not want to interrupt the current thread with this exception, because it may be constructing a message // for a different exception. Trace this exception and continue on using a generic exception message. //TeamFoundationTracingService.TraceExceptionRaw(99231, s_area, s_layer, exception); } From 27df474e4ea6cc43d4943285e92191359e1a1bcf Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:57:11 -0500 Subject: [PATCH 099/188] spelling: javascript Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1144-composite-actions.md | 2 +- .../Expressions2/EvaluationResult.cs | 22 +++++++++---------- .../Expressions2/Sdk/ExpressionUtility.cs | 4 ++-- src/Sdk/Expressions/EvaluationResult.cs | 22 +++++++++---------- src/Sdk/Expressions/Sdk/ExpressionUtility.cs | 4 ++-- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/adrs/1144-composite-actions.md b/docs/adrs/1144-composite-actions.md index 2e1c30461ab..791be6ddc21 100644 --- a/docs/adrs/1144-composite-actions.md +++ b/docs/adrs/1144-composite-actions.md @@ -8,7 +8,7 @@ We released [composite run steps](https://github.com/actions/runner/pull/554) la We want to support the `uses` steps from workflows in composite actions, including: - Container actions - - Javascript actions + - JavaScript actions - Other Composite actions (up to a limit of course!) - The pre and post steps these actions can generate diff --git a/src/Sdk/DTExpressions2/Expressions2/EvaluationResult.cs b/src/Sdk/DTExpressions2/Expressions2/EvaluationResult.cs index 5ac1a61b43f..b6318e240ae 100644 --- a/src/Sdk/DTExpressions2/Expressions2/EvaluationResult.cs +++ b/src/Sdk/DTExpressions2/Expressions2/EvaluationResult.cs @@ -75,7 +75,7 @@ public Boolean IsFalsy public Boolean IsTruthy => !IsFalsy; /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractEqual(EvaluationResult right) @@ -84,7 +84,7 @@ public Boolean AbstractEqual(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractGreaterThan(EvaluationResult right) @@ -93,7 +93,7 @@ public Boolean AbstractGreaterThan(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractGreaterThanOrEqual(EvaluationResult right) @@ -102,7 +102,7 @@ public Boolean AbstractGreaterThanOrEqual(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractLessThan(EvaluationResult right) @@ -111,7 +111,7 @@ public Boolean AbstractLessThan(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractLessThanOrEqual(EvaluationResult right) @@ -120,7 +120,7 @@ public Boolean AbstractLessThanOrEqual(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractNotEqual(EvaluationResult right) @@ -221,7 +221,7 @@ private void TraceVerbose( } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// private static Boolean AbstractEqual( @@ -272,7 +272,7 @@ private static Boolean AbstractEqual( } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// private static Boolean AbstractGreaterThan( @@ -314,7 +314,7 @@ private static Boolean AbstractGreaterThan( } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// private static Boolean AbstractLessThan( @@ -355,7 +355,7 @@ private static Boolean AbstractLessThan( return false; } - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except objects are not coerced to primitives. private static void CoerceTypes( ref Object canonicalLeftValue, @@ -397,7 +397,7 @@ private static void CoerceTypes( } /// - /// For primitives, follows the Javascript rules (the Number function in Javascript). Otherwise NaN. + /// For primitives, follows the JavaScript rules (the Number function in JavaScript). Otherwise NaN. /// private static Double ConvertToNumber(Object canonicalValue) { diff --git a/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionUtility.cs b/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionUtility.cs index f4a3d68d5e2..627a64e8d0f 100644 --- a/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionUtility.cs +++ b/src/Sdk/DTExpressions2/Expressions2/Sdk/ExpressionUtility.cs @@ -187,8 +187,8 @@ internal static Boolean IsPrimitive(ValueKind kind) } /// - /// The rules here attempt to follow Javascript rules for coercing a string into a number - /// for comparison. That is, the Number() function in Javascript. + /// The rules here attempt to follow JavaScript rules for coercing a string into a number + /// for comparison. That is, the Number() function in JavaScript. /// internal static Double ParseNumber(String str) { diff --git a/src/Sdk/Expressions/EvaluationResult.cs b/src/Sdk/Expressions/EvaluationResult.cs index 9c17f2c6c15..59d52eaedf2 100644 --- a/src/Sdk/Expressions/EvaluationResult.cs +++ b/src/Sdk/Expressions/EvaluationResult.cs @@ -76,7 +76,7 @@ public Boolean IsFalsy public Boolean IsTruthy => !IsFalsy; /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractEqual(EvaluationResult right) @@ -85,7 +85,7 @@ public Boolean AbstractEqual(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractGreaterThan(EvaluationResult right) @@ -94,7 +94,7 @@ public Boolean AbstractGreaterThan(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractGreaterThanOrEqual(EvaluationResult right) @@ -103,7 +103,7 @@ public Boolean AbstractGreaterThanOrEqual(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractLessThan(EvaluationResult right) @@ -112,7 +112,7 @@ public Boolean AbstractLessThan(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractLessThanOrEqual(EvaluationResult right) @@ -121,7 +121,7 @@ public Boolean AbstractLessThanOrEqual(EvaluationResult right) } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// public Boolean AbstractNotEqual(EvaluationResult right) @@ -227,7 +227,7 @@ private void TraceVerbose( } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// private static Boolean AbstractEqual( @@ -278,7 +278,7 @@ private static Boolean AbstractEqual( } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// private static Boolean AbstractGreaterThan( @@ -320,7 +320,7 @@ private static Boolean AbstractGreaterThan( } /// - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except string comparison is OrdinalIgnoreCase, and objects are not coerced to primitives. /// private static Boolean AbstractLessThan( @@ -361,7 +361,7 @@ private static Boolean AbstractLessThan( return false; } - /// Similar to the Javascript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. + /// Similar to the JavaScript abstract equality comparison algorithm http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. /// Except objects are not coerced to primitives. private static void CoerceTypes( ref Object canonicalLeftValue, @@ -403,7 +403,7 @@ private static void CoerceTypes( } /// - /// For primitives, follows the Javascript rules (the Number function in Javascript). Otherwise NaN. + /// For primitives, follows the JavaScript rules (the Number function in JavaScript). Otherwise NaN. /// private static Double ConvertToNumber(Object canonicalValue) { diff --git a/src/Sdk/Expressions/Sdk/ExpressionUtility.cs b/src/Sdk/Expressions/Sdk/ExpressionUtility.cs index 84faa9afb84..c13ea1d4f93 100644 --- a/src/Sdk/Expressions/Sdk/ExpressionUtility.cs +++ b/src/Sdk/Expressions/Sdk/ExpressionUtility.cs @@ -217,8 +217,8 @@ internal static Boolean IsPrimitive(ValueKind kind) } /// - /// The rules here attempt to follow Javascript rules for coercing a string into a number - /// for comparison. That is, the Number() function in Javascript. + /// The rules here attempt to follow JavaScript rules for coercing a string into a number + /// for comparison. That is, the Number() function in JavaScript. /// internal static Double ParseNumber(String str) { From 1c0b9ccba784e00f231635ef017c725505a042c7 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:10:06 -0500 Subject: [PATCH 100/188] spelling: job request Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/JobDispatcher.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index 173e36b0629..fa0eb070b27 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -259,8 +259,8 @@ private async Task EnsureDispatchFinished(WorkerDispatcher jobDispatch, bool can // based on the current design, server will only send one job for a given runner at a time. // if the runner received a new job request while a previous job request is still running, this typically indicates two situations - // 1. a runner bug caused a server and runner mismatch on the state of the job request, e.g. the runner didn't renew the jobrequest - // properly but thinks it still owns the job reqest, however the server has already abandoned the jobrequest. + // 1. a runner bug caused a server and runner mismatch on the state of the job request, e.g. the runner didn't renew the job request + // properly but thinks it still owns the job request, however the server has already abandoned the job request. // 2. a server bug or design change that allowed the server to send more than one job request to a given runner that hasn't finished //. a previous job request. var runnerServer = HostContext.GetService(); From e16c12e8094779c806ef226d795a6264f8bb436c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:54:16 -0500 Subject: [PATCH 101/188] spelling: junction Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Misc/layoutbin/update.cmd.template | 4 ++-- src/Misc/layoutbin/update.sh.template | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Misc/layoutbin/update.cmd.template b/src/Misc/layoutbin/update.cmd.template index daeef250d84..8fc1efc5dc3 100644 --- a/src/Misc/layoutbin/update.cmd.template +++ b/src/Misc/layoutbin/update.cmd.template @@ -50,9 +50,9 @@ rem ./bin.2.100.0 rem ./externals.2.100.0 rem ./bin.2.99.0 rem ./externals.2.99.0 -rem by using the juction folder we can avoid file in use problem. +rem by using the junction folder we can avoid file in use problem. -rem if the bin/externals junction point already exist, we just need to delete the juction point then re-create to point to new bin/externals folder. +rem if the bin/externals junction point already exist, we just need to delete the junction point then re-create to point to new bin/externals folder. rem if the bin/externals still are real folders, we need to rename the existing folder to bin.version format then create junction point to new bin/externals folder. rem check bin folder diff --git a/src/Misc/layoutbin/update.sh.template b/src/Misc/layoutbin/update.sh.template index 795db7f3c63..d2f2f40d5ce 100755 --- a/src/Misc/layoutbin/update.sh.template +++ b/src/Misc/layoutbin/update.sh.template @@ -45,9 +45,9 @@ date "+[%F %T-%4N] Sleep 1 more second to make sure process exited" >> "$logfile # ./externals.2.100.0 # ./bin.2.99.0 # ./externals.2.99.0 -# by using the juction folder we can avoid file in use problem. +# by using the junction folder we can avoid file in use problem. -# if the bin/externals junction point already exist, we just need to delete the juction point then re-create to point to new bin/externals folder. +# if the bin/externals junction point already exist, we just need to delete the junction point then re-create to point to new bin/externals folder. # if the bin/externals still are real folders, we need to rename the existing folder to bin.version format then create junction point to new bin/externals folder. # check bin folder From f5200ab454829a2183b2a9dcb9cee96a62908773 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:56:11 -0500 Subject: [PATCH 102/188] spelling: know Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/Handlers/ScriptHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/Handlers/ScriptHandler.cs b/src/Runner.Worker/Handlers/ScriptHandler.cs index b898f051ded..f32c8026fdc 100644 --- a/src/Runner.Worker/Handlers/ScriptHandler.cs +++ b/src/Runner.Worker/Handlers/ScriptHandler.cs @@ -247,7 +247,7 @@ public async Task RunAsync(ActionRunStage stage) string scriptFilePath, resolvedScriptPath; if (IsActionStep) { - // We do not not the full path until we know what shell is being used, so that we can determine the file extension + // We do not know the full path until we know what shell is being used, so that we can determine the file extension scriptFilePath = Path.Combine(tempDirectory, $"{Guid.NewGuid()}{ScriptHandlerHelpers.GetScriptFileExtension(shellCommand)}"); resolvedScriptPath = StepHost.ResolvePathForStepHost(ExecutionContext, scriptFilePath).Replace("\"", "\\\""); } From 9bbce09b8e400f7c24ab09a63e0c1ce075597a2f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:05:24 -0500 Subject: [PATCH 103/188] spelling: locked until Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/JobDispatcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index fa0eb070b27..c00dd3de529 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -801,7 +801,7 @@ private async Task RenewJobRequestAsync(IRunServer runServer, Guid planId, Guid } else { - // retry till reach lockeduntil + 5 mins extra buffer. + // retry till reach locked until + 5 mins extra buffer. remainingTime = request.LockedUntil.Value + TimeSpan.FromMinutes(5) - DateTime.UtcNow; } From adee599bbdf61af0fbca0da1a26af529edf7f706 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:51:53 -0500 Subject: [PATCH 104/188] spelling: lowercase Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/ArrayUtility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/ArrayUtility.cs b/src/Sdk/Common/Common/Utility/ArrayUtility.cs index 39745d273b3..0b4c5805dc4 100644 --- a/src/Sdk/Common/Common/Utility/ArrayUtility.cs +++ b/src/Sdk/Common/Common/Utility/ArrayUtility.cs @@ -117,7 +117,7 @@ public unsafe static bool Equals(byte[] a1, byte[] a2, int length) //**************************************************************************************** /// - /// Convert the byte array to a lower case hex string. + /// Convert the byte array to a lowercase hex string. /// /// byte array to be converted. /// hex string converted from byte array. From 9d906a1abb5351576102900f7a5d2b79b9a75e6a Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:05:06 -0500 Subject: [PATCH 105/188] spelling: lt Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs index cce2f66e5b8..efceaa15162 100644 --- a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs +++ b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs @@ -134,7 +134,7 @@ public async Task ValidateCredentialAsync(CancellationToken cancellation /// /// If applicable, the previous token which is now considered invalid /// A token used for signalling cancellation - /// A Task&lgt;IssuedToken> for tracking the progress of the token request + /// A Task<IssuedToken> for tracking the progress of the token request protected override async Task OnGetTokenAsync( IssuedToken failedToken, CancellationToken cancellationToken) From a4580543e6a4137900ab40b0195de6f70a1fa35b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 25 Jan 2026 00:34:05 -0500 Subject: [PATCH 106/188] spelling: macos Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- scripts/create-latest-svc.sh | 2 +- src/Runner.Listener/Configuration/ConfigurationManager.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/create-latest-svc.sh b/scripts/create-latest-svc.sh index 74b5a278dc3..0646381abf1 100755 --- a/scripts/create-latest-svc.sh +++ b/scripts/create-latest-svc.sh @@ -110,7 +110,7 @@ fi sudo -u ${svc_user} mkdir runner # TODO: validate not in a container -# TODO: validate systemd or osx svc installer +# TODO: validate systemd or macOS svc installer #-------------------------------------- # Get a config token diff --git a/src/Runner.Listener/Configuration/ConfigurationManager.cs b/src/Runner.Listener/Configuration/ConfigurationManager.cs index 3c0ff5052e7..f1cb6ebd18d 100644 --- a/src/Runner.Listener/Configuration/ConfigurationManager.cs +++ b/src/Runner.Listener/Configuration/ConfigurationManager.cs @@ -540,7 +540,7 @@ public async Task UnconfigureAsync(CommandSettings command) _term.WriteLine(); _term.WriteSuccessMessage("Runner service removed"); #else - // unconfig systemd or osx service first + // unconfig systemd or macOS service first throw new Exception("Uninstall service first"); #endif } From 3505b7e6d536b2be5c9f55de405fb70ce27992cd Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:07:32 -0500 Subject: [PATCH 107/188] spelling: media type Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/VssHttpClientBase.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs b/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs index d5a9c8b11f7..4f1e9ad3092 100644 --- a/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs +++ b/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs @@ -488,7 +488,7 @@ protected async Task SendAsync( /// Id of the location to use /// Values to use to replace parameters in the location's route template /// Version to send in the request or null to use the VSS latest API version - /// The mediatype to set in request header. + /// The media type to set in request header. /// HttpRequestMessage protected Task CreateRequestMessageAsync( HttpMethod method, @@ -512,7 +512,7 @@ protected Task CreateRequestMessageAsync( /// Id of the location to use /// Values to use to replace parameters in the location's route template /// Version to send in the request or null to use the VSS latest API version - /// The mediatype to set in request header. + /// The media type to set in request header. /// HttpRequestMessage protected virtual async Task CreateRequestMessageAsync( HttpMethod method, @@ -544,7 +544,7 @@ protected virtual async Task CreateRequestMessageAsync( /// API resource location /// Values to use to replace parameters in the location's route template /// Version to send in the request or null to use the VSS latest API version - /// The mediatype to set in request header. + /// The media type to set in request header. /// HttpRequestMessage protected HttpRequestMessage CreateRequestMessage( HttpMethod method, @@ -566,7 +566,7 @@ protected HttpRequestMessage CreateRequestMessage( /// API resource location /// Values to use to replace parameters in the location's route template /// Version to send in the request or null to use the VSS latest API version - /// The mediatype to set in request header. + /// The media type to set in request header. /// HttpRequestMessage protected HttpRequestMessage CreateRequestMessage( HttpMethod method, From 4a979dcf3566849079964d0db6057ab7ace741a0 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:55:00 -0500 Subject: [PATCH 108/188] spelling: message Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/Listener/MessageListenerL0.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Test/L0/Listener/MessageListenerL0.cs b/src/Test/L0/Listener/MessageListenerL0.cs index 80792539be9..e39349ead78 100644 --- a/src/Test/L0/Listener/MessageListenerL0.cs +++ b/src/Test/L0/Listener/MessageListenerL0.cs @@ -254,13 +254,13 @@ public async Task GetNextMessageWithBrokerMigration() CreateSessionResult result = await listener.CreateSessionAsync(tokenSource.Token); Assert.Equal(CreateSessionResult.Success, result); - var brokerMigrationMesage = new BrokerMigrationMessage(new Uri("https://actions.broker.com")); + var brokerMigrationMessage = new BrokerMigrationMessage(new Uri("https://actions.broker.com")); var arMessages = new TaskAgentMessage[] { new TaskAgentMessage { - Body = JsonUtility.ToString(brokerMigrationMesage), + Body = JsonUtility.ToString(brokerMigrationMessage), MessageType = BrokerMigrationMessage.MessageType }, }; @@ -328,7 +328,7 @@ public async Task GetNextMessageWithBrokerMigration() .Verify(x => x.LoadCredentials(true), Times.Exactly(brokerMessages.Length)); _brokerServer - .Verify(x => x.UpdateConnectionIfNeeded(brokerMigrationMesage.BrokerBaseUrl, It.IsAny()), Times.Exactly(brokerMessages.Length)); + .Verify(x => x.UpdateConnectionIfNeeded(brokerMigrationMessage.BrokerBaseUrl, It.IsAny()), Times.Exactly(brokerMessages.Length)); _brokerServer .Verify(x => x.ForceRefreshConnection(It.IsAny()), Times.Never); @@ -526,13 +526,13 @@ public async Task GetNextMessageWithBrokerMigration_AuthMigrationFallback() CreateSessionResult result = await listener.CreateSessionAsync(tokenSource.Token); Assert.Equal(CreateSessionResult.Success, result); - var brokerMigrationMesage = new BrokerMigrationMessage(new Uri("https://actions.broker.com")); + var brokerMigrationMessage = new BrokerMigrationMessage(new Uri("https://actions.broker.com")); var arMessages = new TaskAgentMessage[] { new TaskAgentMessage { - Body = JsonUtility.ToString(brokerMigrationMesage), + Body = JsonUtility.ToString(brokerMigrationMessage), MessageType = BrokerMigrationMessage.MessageType }, }; @@ -607,7 +607,7 @@ public async Task GetNextMessageWithBrokerMigration_AuthMigrationFallback() .Verify(x => x.LoadCredentials(true), Times.Exactly(brokerMessages.Length + 1)); _brokerServer - .Verify(x => x.UpdateConnectionIfNeeded(brokerMigrationMesage.BrokerBaseUrl, It.IsAny()), Times.Exactly(brokerMessages.Length + 1)); + .Verify(x => x.UpdateConnectionIfNeeded(brokerMigrationMessage.BrokerBaseUrl, It.IsAny()), Times.Exactly(brokerMessages.Length + 1)); _brokerServer .Verify(x => x.ForceRefreshConnection(It.IsAny()), Times.Once()); @@ -650,13 +650,13 @@ public async Task GetNextMessageWithBrokerMigration_EnableAuthMigration() CreateSessionResult result = await listener.CreateSessionAsync(tokenSource.Token); Assert.Equal(CreateSessionResult.Success, result); - var brokerMigrationMesage = new BrokerMigrationMessage(new Uri("https://actions.broker.com")); + var brokerMigrationMessage = new BrokerMigrationMessage(new Uri("https://actions.broker.com")); var arMessages = new TaskAgentMessage[] { new TaskAgentMessage { - Body = JsonUtility.ToString(brokerMigrationMesage), + Body = JsonUtility.ToString(brokerMigrationMessage), MessageType = BrokerMigrationMessage.MessageType }, }; @@ -729,7 +729,7 @@ public async Task GetNextMessageWithBrokerMigration_EnableAuthMigration() .Verify(x => x.LoadCredentials(true), Times.Exactly(brokerMessages.Length)); _brokerServer - .Verify(x => x.UpdateConnectionIfNeeded(brokerMigrationMesage.BrokerBaseUrl, It.IsAny()), Times.Exactly(brokerMessages.Length)); + .Verify(x => x.UpdateConnectionIfNeeded(brokerMigrationMessage.BrokerBaseUrl, It.IsAny()), Times.Exactly(brokerMessages.Length)); _brokerServer .Verify(x => x.ForceRefreshConnection(It.IsAny()), Times.Once()); From c7de9579f1d58a4d0c7e0c7e92d88f0a6ffa4077 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:08:10 -0500 Subject: [PATCH 109/188] spelling: navigable Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/UriUtility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/UriUtility.cs b/src/Sdk/Common/Common/Utility/UriUtility.cs index a73fcf340c2..4ade8166a57 100644 --- a/src/Sdk/Common/Common/Utility/UriUtility.cs +++ b/src/Sdk/Common/Common/Utility/UriUtility.cs @@ -48,7 +48,7 @@ public static class UriUtility /// /// /// "x-mvwit" is here as it is used and saved to work item history rich HTML changes. It is used to reference other work - /// items in the list. If we remove it from this list, it will not be a navigatable link in e.g. Web Access. + /// items in the list. If we remove it from this list, it will not be a navigable link in e.g. Web Access. /// private static readonly ICollection SafeUriSchemeList = new HashSet(new string[] { "http", "https", "ftp", "gopher", "mailto", "news", "telnet", "wais", From cc213991c607c4399074d4abcd07899560515055 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:57:53 -0500 Subject: [PATCH 110/188] spelling: necessarily Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs b/src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs index d6cbafeba2a..40dad401478 100644 --- a/src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs +++ b/src/Sdk/Common/Common/Utility/TypeExtensionMethods.cs @@ -220,7 +220,7 @@ public static void SetMemberValue(this Type type, string name, object obj, objec /// /// Portable compliant way to get a constructor with specified arguments. This will return a constructor that is public or private as long as the arguments match. NULL will be returned if there is no match. - /// Note that it will pick the first one it finds that matches, which is not necesarily the best match. + /// Note that it will pick the first one it finds that matches, which is not necessarily the best match. /// /// The Type that has the constructor /// The type of the arguments for the constructor. @@ -232,7 +232,7 @@ public static ConstructorInfo GetFirstMatchingConstructor(this Type type, params /// /// Portable compliant way to get a constructor with specified arguments from a prefiltered list. This will return a constructor that is public or private as long as the arguments match. NULL will be returned if there is no match. - /// Note that it will pick the first one it finds that matches, which is not necesarily the best match. + /// Note that it will pick the first one it finds that matches, which is not necessarily the best match. /// /// Prefiltered list of constructors /// The type of the arguments for the constructor. From 0fd148cb7a726a0473db6d6ec1ffdfe0ebe5b9c4 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 20:57:36 -0500 Subject: [PATCH 111/188] spelling: necessary Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs b/src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs index 4abf5b0e0bf..cc0dbc6a574 100644 --- a/src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs +++ b/src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs @@ -45,7 +45,7 @@ public class VssJsonMediaTypeFormatter : JsonMediaTypeFormatter /// /// /// - /// This should typically be false. A true value will cause the wrapping to be skipped which is neccesary when creating ObjectContent from arrays on client to prepare a request + /// This should typically be false. A true value will cause the wrapping to be skipped which is necessary when creating ObjectContent from arrays on client to prepare a request public VssJsonMediaTypeFormatter(bool bypassSafeArrayWrapping = false) : this(bypassSafeArrayWrapping, false, false) { @@ -59,7 +59,7 @@ public VssJsonMediaTypeFormatter(bool bypassSafeArrayWrapping, bool enumsAsNumbe /// /// /// - /// This should typically be false. A true value will cause the wrapping to be skipped which is neccesary when creating ObjectContent from arrays on client to prepare a request + /// This should typically be false. A true value will cause the wrapping to be skipped which is necessary when creating ObjectContent from arrays on client to prepare a request public VssJsonMediaTypeFormatter(HttpRequestMessage request, bool bypassSafeArrayWrapping = false) { Request = request; From 6ec0c235bd2487efcea1bd844f81377187d6a976 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:52:25 -0500 Subject: [PATCH 112/188] spelling: neither-nor Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Contracts/Graph/Constants.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/Contracts/Graph/Constants.cs b/src/Sdk/WebApi/WebApi/Contracts/Graph/Constants.cs index 45f20ecbd0d..3f835cf2d01 100644 --- a/src/Sdk/WebApi/WebApi/Contracts/Graph/Constants.cs +++ b/src/Sdk/WebApi/WebApi/Contracts/Graph/Constants.cs @@ -66,12 +66,12 @@ public static class SubjectType public const string AadUser = "aad"; [GenerateConstant] public const string MsaUser = "msa"; - public const string UnknownUser = "unusr"; // user with unknown type (not add nor msa) + public const string UnknownUser = "unusr"; // user with unknown type (neither add nor msa) [GenerateConstant] public const string AadGroup = "aadgp"; [GenerateConstant] public const string VstsGroup = "vssgp"; - public const string UnknownGroup = "ungrp"; // group with unknown type (not add nor vsts) + public const string UnknownGroup = "ungrp"; // group with unknown type (neither add nor vsts) [GenerateConstant] public const string BindPendingUser = "bnd"; public const string WindowsIdentity = "win"; From 4028021fe8882e6d839cda179243a7e41ddf925d Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:00:47 -0500 Subject: [PATCH 113/188] spelling: nonexistent Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../L0/Listener/Configuration/ConfigurationManagerL0.cs | 4 ++-- src/Test/L0/Listener/SelfUpdaterL0.cs | 2 +- src/Test/L0/Listener/SelfUpdaterV2L0.cs | 2 +- src/Test/L0/Worker/ActionManagerL0.cs | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Test/L0/Listener/Configuration/ConfigurationManagerL0.cs b/src/Test/L0/Listener/Configuration/ConfigurationManagerL0.cs index b025c622227..5dd78615948 100644 --- a/src/Test/L0/Listener/Configuration/ConfigurationManagerL0.cs +++ b/src/Test/L0/Listener/Configuration/ConfigurationManagerL0.cs @@ -332,7 +332,7 @@ public async Task ConfigureErrorOnMissingRunnerGroup() "configure", "--url", _expectedServerUrl, "--name", _expectedAgentName, - "--runnergroup", "notexists", + "--runnergroup", "nonexistent", "--work", _expectedWorkFolder, "--auth", _expectedAuthType, "--token", _expectedToken, @@ -344,7 +344,7 @@ public async Task ConfigureErrorOnMissingRunnerGroup() trace.Info("Ensuring all the required parameters are available in the command line parameter"); var ex = await Assert.ThrowsAsync(() => configManager.ConfigureAsync(command)); - Assert.Contains("notexists", ex.Message); + Assert.Contains("nonexistent", ex.Message); _runnerServer.Verify(x => x.GetAgentPoolsAsync(It.IsAny(), It.Is(p => p == TaskAgentPoolType.Automation)), Times.Exactly(1)); } diff --git a/src/Test/L0/Listener/SelfUpdaterL0.cs b/src/Test/L0/Listener/SelfUpdaterL0.cs index be095ce9093..838ee857810 100644 --- a/src/Test/L0/Listener/SelfUpdaterL0.cs +++ b/src/Test/L0/Listener/SelfUpdaterL0.cs @@ -207,7 +207,7 @@ public async void TestSelfUpdateAsync_DownloadRetry() hc.SetSingleton(new HttpClientHandlerFactory()); _runnerServer.Setup(x => x.GetPackageAsync("agent", BuildConstants.RunnerPackage.PackageName, "2.999.0", true, It.IsAny())) - .Returns(Task.FromResult(new PackageMetadata() { Platform = BuildConstants.RunnerPackage.PackageName, Version = new PackageVersion("2.999.0"), DownloadUrl = $"https://github.com/actions/runner/notexists" })); + .Returns(Task.FromResult(new PackageMetadata() { Platform = BuildConstants.RunnerPackage.PackageName, Version = new PackageVersion("2.999.0"), DownloadUrl = $"https://github.com/actions/runner/nonexistent" })); var p1 = new ProcessInvokerWrapper(); p1.Initialize(hc); diff --git a/src/Test/L0/Listener/SelfUpdaterV2L0.cs b/src/Test/L0/Listener/SelfUpdaterV2L0.cs index 5115a6bbb7f..9343b7f3ca1 100644 --- a/src/Test/L0/Listener/SelfUpdaterV2L0.cs +++ b/src/Test/L0/Listener/SelfUpdaterV2L0.cs @@ -167,7 +167,7 @@ public async void TestSelfUpdateAsync_DownloadRetry() { TargetVersion = "2.999.0", OS = BuildConstants.RunnerPackage.PackageName, - DownloadUrl = "https://github.com/actions/runner/notexists" + DownloadUrl = "https://github.com/actions/runner/nonexistent" }; var ex = await Assert.ThrowsAsync(() => updater.SelfUpdate(message, _jobDispatcher.Object, true, hc.RunnerShutdownToken)); diff --git a/src/Test/L0/Worker/ActionManagerL0.cs b/src/Test/L0/Worker/ActionManagerL0.cs index bc477931226..1683caeb938 100644 --- a/src/Test/L0/Worker/ActionManagerL0.cs +++ b/src/Test/L0/Worker/ActionManagerL0.cs @@ -415,11 +415,11 @@ public async void PrepareActions_AlwaysClearActionsCache() var actionId = Guid.NewGuid(); var actions = new List(); - var watermarkFile = Path.Combine(_hc.GetDirectory(WellKnownDirectory.Actions), "notexist/no", "notexist.completed"); + var watermarkFile = Path.Combine(_hc.GetDirectory(WellKnownDirectory.Actions), "nonexistent/no", "nonexistent.completed"); Directory.CreateDirectory(Path.GetDirectoryName(watermarkFile)); File.WriteAllText(watermarkFile, DateTime.UtcNow.ToString()); - Directory.CreateDirectory(Path.Combine(Path.GetDirectoryName(watermarkFile), "notexist")); - File.Copy(Path.Combine(TestUtil.GetSrcPath(), "Test", TestDataFolderName, "dockerfileaction.yml"), Path.Combine(Path.GetDirectoryName(watermarkFile), "notexist", "action.yml")); + Directory.CreateDirectory(Path.Combine(Path.GetDirectoryName(watermarkFile), "nonexistent")); + File.Copy(Path.Combine(TestUtil.GetSrcPath(), "Test", TestDataFolderName, "dockerfileaction.yml"), Path.Combine(Path.GetDirectoryName(watermarkFile), "nonexistent", "action.yml")); //Act await _actionManager.PrepareActionsAsync(_ec.Object, actions); From 41c3169fa7bf0d69cc036d8b967abdba1402f05b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 25 Jan 2026 00:28:50 -0500 Subject: [PATCH 114/188] spelling: null check Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/Handlers/StepHost.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/Handlers/StepHost.cs b/src/Runner.Worker/Handlers/StepHost.cs index 31aa4647d5a..52076fc0682 100644 --- a/src/Runner.Worker/Handlers/StepHost.cs +++ b/src/Runner.Worker/Handlers/StepHost.cs @@ -118,7 +118,7 @@ public string ResolvePathForStepHost(IExecutionContext executionContext, string ArgUtil.NotNull(Container, nameof(Container)); if (!FeatureManager.IsContainerHooksEnabled(executionContext.Global?.Variables)) { - // TODO: Remove nullcheck with executionContext.Global? by setting up ExecutionContext.Global at GitHub.Runner.Common.Tests.Worker.ExecutionContextL0.GetExpressionValues_ContainerStepHost + // TODO: Remove null check with executionContext.Global? by setting up ExecutionContext.Global at GitHub.Runner.Common.Tests.Worker.ExecutionContextL0.GetExpressionValues_ContainerStepHost ArgUtil.NotNullOrEmpty(Container.ContainerId, nameof(Container.ContainerId)); } From 33e45f028960149fd273003376f1a1b2b70192df Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:02:22 -0500 Subject: [PATCH 115/188] spelling: oauth Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/Listener/Configuration/RunnerCredentialL0.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Test/L0/Listener/Configuration/RunnerCredentialL0.cs b/src/Test/L0/Listener/Configuration/RunnerCredentialL0.cs index a2c5d0c20ba..335e0b82266 100644 --- a/src/Test/L0/Listener/Configuration/RunnerCredentialL0.cs +++ b/src/Test/L0/Listener/Configuration/RunnerCredentialL0.cs @@ -14,7 +14,7 @@ public class TestRunnerCredential : CredentialProvider public TestRunnerCredential() : base("TEST") { } public override VssCredentials GetVssCredentials(IHostContext context, bool allowAuthUrlV2) { - Tracing trace = context.GetTrace("OuthAccessToken"); + Tracing trace = context.GetTrace("OAuthAccessToken"); trace.Info("GetVssCredentials()"); var loginCred = new VssOAuthAccessTokenCredential("sometoken"); @@ -108,4 +108,4 @@ public void UseAuthV2Url() } } } -} \ No newline at end of file +} From ab383b2cb3f6ba2ff9f0d0d4a40baf271d6bb5b9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:01:32 -0500 Subject: [PATCH 116/188] spelling: occurred Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Program.cs b/src/Runner.Listener/Program.cs index 80852d32c4d..ae362cc9801 100644 --- a/src/Runner.Listener/Program.cs +++ b/src/Runner.Listener/Program.cs @@ -141,7 +141,7 @@ private async static Task MainAsync(IHostContext context, string[] args) } catch (AccessDeniedException e) when (e.ErrorCode == 1) { - terminal.WriteError($"An error occured: {e.Message}"); + terminal.WriteError($"An error occurred: {e.Message}"); trace.Error(e); return Constants.Runner.ReturnCode.TerminatedError; } From dff958d6b7bb18132f1448013ec920b6fb37de3e Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 07:56:14 -0500 Subject: [PATCH 117/188] spelling: one Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs | 2 +- src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs b/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs index 12fdf1f8ebb..2c97721a3d8 100644 --- a/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs +++ b/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs @@ -351,7 +351,7 @@ public async Task GetSourceAsync( } // fetch lfs object upfront, this will avoid fetch lfs object during checkout which cause checkout taking forever - // since checkout will fetch lfs object 1 at a time, while git lfs fetch will fetch lfs object in parallel. + // since checkout will fetch lfs object one at a time, while git lfs fetch will fetch lfs object in parallel. if (gitLfsSupport) { int exitCode_lfsFetch = await gitCommandManager.GitLFSFetch(executionContext, targetPath, "origin", sourcesToBuild, string.Join(" ", additionalLfsFetchArgs), cancellationToken); diff --git a/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs b/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs index bf96290e630..c2bc376da59 100644 --- a/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs +++ b/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs @@ -334,7 +334,7 @@ public async Task GetSourceAsync( } // fetch lfs object upfront, this will avoid fetch lfs object during checkout which cause checkout taking forever - // since checkout will fetch lfs object 1 at a time, while git lfs fetch will fetch lfs object in parallel. + // since checkout will fetch lfs object one at a time, while git lfs fetch will fetch lfs object in parallel. if (gitLfsSupport) { int exitCode_lfsFetch = await gitCommandManager.GitLFSFetch(executionContext, targetPath, "origin", sourcesToBuild, string.Join(" ", additionalLfsFetchArgs), cancellationToken); From 54a0212e24be23050c870a88da7f7b949ea693e5 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:57:32 -0500 Subject: [PATCH 118/188] spelling: optimize Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Runner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index 2807dc45b7e..553178fe9db 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -190,7 +190,7 @@ public async Task ExecuteCommand(CommandSettings command) // warmup runner process (JIT/CLR) // In scenarios where the runner is single use (used and then thrown away), the system provisioning the runner can call `Runner.Listener --warmup` before the machine is made available to the pool for use. - // this will optimizes the runner process startup time. + // this will optimize the runner process startup time. if (command.Warmup) { var binDir = HostContext.GetDirectory(WellKnownDirectory.Bin); From 9800793a9ff07d81fec27409b170115bf52d690e Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:01:49 -0500 Subject: [PATCH 119/188] spelling: optionally Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Attributes.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/Attributes.cs b/src/Sdk/WebApi/WebApi/Attributes.cs index c484852ce87..99329f34041 100644 --- a/src/Sdk/WebApi/WebApi/Attributes.cs +++ b/src/Sdk/WebApi/WebApi/Attributes.cs @@ -40,7 +40,7 @@ public ClientIncludeModelAttribute(RestClientLanguages languages) /// /// Marks a class, method or property for internal use only. This attribute ensures the item /// does not show up in public documentation, adds EditorBrowsableState.Never in C# clients - /// to hide the item, and optionaly adds @internal in TypeScript clients which removes the + /// to hide the item, and optionally adds @internal in TypeScript clients which removes the /// item from the TypeScript declare (d.ts) file. This does not exempt this API from the /// formal REST Api review process. Our internal APIs must meet the same standards and /// guidelines as our public APIs. @@ -51,7 +51,7 @@ public sealed class ClientInternalUseOnlyAttribute : Attribute /// /// Marks a class, method or property for internal use only. This attribute ensures the item /// does not show up in public documentation, adds EditorBrowsableState.Never in C# clients - /// to hide the item, and optionaly adds @internal in TypeScript clients which removes the + /// to hide the item, and optionally adds @internal in TypeScript clients which removes the /// item from the TypeScript declare (d.ts) file. This does not exempt this API from the /// formal REST Api review process. Our internal APIs must meet the same standards and /// guidelines as our public APIs. From 207c8a3d59eaec47cfe3b8062a8ace7ab4e2aff3 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:02:05 -0500 Subject: [PATCH 120/188] spelling: otherwise Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs b/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs index 104112c7981..afcf5c4a06e 100644 --- a/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs +++ b/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs @@ -220,7 +220,7 @@ internal static string ClientSettingsDirectory /// GetFolderPath throw) /// /// Folder to retrieve - /// Path if available, null othewise + /// Path if available, null otherwise private static string SafeGetFolderPath(Environment.SpecialFolder specialFolder) { try From 613392a109cd106bcb64aa13d5c72a761db6186b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:57:39 -0500 Subject: [PATCH 121/188] spelling: out-of-date Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/JobRunner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/JobRunner.cs b/src/Runner.Worker/JobRunner.cs index 72ee5a403ad..c177ac6830b 100644 --- a/src/Runner.Worker/JobRunner.cs +++ b/src/Runner.Worker/JobRunner.cs @@ -528,7 +528,7 @@ private async Task WarningOutdatedRunnerAsync(IExecutionContext jobContext, Pipe if (result == TaskResult.Failed && warnOnFailedJob) { - jobContext.Warning($"This job failure may be caused by using an out of date version of GitHub runner on your self-hosted runner. You are currently using GitHub runner version {currentVersion}. Please update to the latest version {serverPackages[0].Version}"); + jobContext.Warning($"This job failure may be caused by using an out-of-date version of GitHub runner on your self-hosted runner. You are currently using GitHub runner version {currentVersion}. Please update to the latest version {serverPackages[0].Version}"); } else if (warnOnOldRunnerVersion) { From 1962211ea3ee1c686368b461174b96674ef953b4 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:02:41 -0500 Subject: [PATCH 122/188] spelling: overridden Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs b/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs index 407860e2a1c..36d26c6592d 100644 --- a/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs +++ b/src/Sdk/Common/Common/Authentication/IssuedTokenProvider.cs @@ -294,7 +294,7 @@ protected virtual Task OnGetTokenAsync( } /// - /// Invoked when the current token is being validated. When overriden in a derived class, + /// Invoked when the current token is being validated. When overridden in a derived class, /// validate and return the validated token. /// /// Is called inside a lock in ValidateToken From a99935e81f3542fbfce97db0076e29b6b8e3c489 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:03:04 -0500 Subject: [PATCH 123/188] spelling: parameter Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs | 2 +- src/Sdk/Expressions/Sdk/ResultMemory.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs b/src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs index e641de2568e..e1195ac2554 100644 --- a/src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs +++ b/src/Sdk/DTExpressions2/Expressions2/Sdk/ResultMemory.cs @@ -39,7 +39,7 @@ public class ResultMemory /// For , this value is currently ignored. /// /// - /// For example, consider a function jsonParse() which takes a string paramter, + /// For example, consider a function jsonParse() which takes a string parameter, /// and returns a JToken object. The JToken object is newly created and a rough /// measurement should be returned for the amount of bytes it consumes in memory. /// Set the to true, since new object contains no references diff --git a/src/Sdk/Expressions/Sdk/ResultMemory.cs b/src/Sdk/Expressions/Sdk/ResultMemory.cs index b9a27ed9d64..443047b7f8a 100644 --- a/src/Sdk/Expressions/Sdk/ResultMemory.cs +++ b/src/Sdk/Expressions/Sdk/ResultMemory.cs @@ -37,7 +37,7 @@ public class ResultMemory /// For , this value is currently ignored. /// /// - /// For example, consider a function jsonParse() which takes a string paramter, + /// For example, consider a function jsonParse() which takes a string parameter, /// and returns a JToken object. The JToken object is newly created and a rough /// measurement should be returned for the amount of bytes it consumes in memory. /// Set the to true, since new object contains no references From b23391a1b24208d950da17567b9a9de796136850 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:02:54 -0500 Subject: [PATCH 124/188] spelling: parameters Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/VssConnection.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/VssConnection.cs b/src/Sdk/WebApi/WebApi/VssConnection.cs index 38bfad8c766..b285585f7b4 100644 --- a/src/Sdk/WebApi/WebApi/VssConnection.cs +++ b/src/Sdk/WebApi/WebApi/VssConnection.cs @@ -120,7 +120,7 @@ public Task ConnectAsync( IVssCredentialPrompts credentialPrompts = Credentials.Federated.Prompt as IVssCredentialPrompts; if (credentialPrompts != null && credentialPrompts.FederatedPrompt != null) { - // IVssCredentialPrompts contains an inner federatedPrompt, then set the paramaters on the inner one + // IVssCredentialPrompts contains an inner federatedPrompt, then set the parameters on the inner one promptToSetParametersOn = credentialPrompts.FederatedPrompt; } else From a72ebcade93b2800901e1bf2db8e778a90bcbc99 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:04:15 -0500 Subject: [PATCH 125/188] spelling: permission Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs index 7639795f537..9bfbb751c1f 100644 --- a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs +++ b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs @@ -846,7 +846,7 @@ public void GrantDirectoryPermissionForAccount(string accountName, IList Trace.Info(StringUtil.Format("Trying to add userName {0} to the group {1}", accountName, groupName)); AddMemberToLocalGroup(accountName, groupName); - // grant permssion for folders + // grant permission for folders foreach(var folder in folders) { if (Directory.Exists(folder)) From bddd9c62bf174bbb990f364e07814aa92c47d63a Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:04:00 -0500 Subject: [PATCH 126/188] spelling: platform Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs b/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs index afcf5c4a06e..29d8853dd10 100644 --- a/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs +++ b/src/Sdk/Common/Common/ClientStorage/VssFileStorage.cs @@ -138,7 +138,7 @@ public static IVssClientStorage GetVssLocalFileStorage(string fullPath, char pat } #if DEBUG - Debug.Assert(fullPath.Equals(storage.m_filePath), string.Format("The same storage file is being referenced with different casing. This will cause issues when running in cross patform environments where the file system may be case-sensitive. {0} != {1}", storage.m_filePath, normalizedFullPath)); + Debug.Assert(fullPath.Equals(storage.m_filePath), string.Format("The same storage file is being referenced with different casing. This will cause issues when running in cross platform environments where the file system may be case-sensitive. {0} != {1}", storage.m_filePath, normalizedFullPath)); #endif return storage; } From bc16607f20e147ada5af1d36bac036b1025ae468 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:04:29 -0500 Subject: [PATCH 127/188] spelling: position Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/StreamParser.cs | 14 +++++++------- .../WebApi/HttpClients/FileContainerHttpClient.cs | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Sdk/Common/Common/Utility/StreamParser.cs b/src/Sdk/Common/Common/Utility/StreamParser.cs index 1f2dd613d9c..1a8027dcdf0 100644 --- a/src/Sdk/Common/Common/Utility/StreamParser.cs +++ b/src/Sdk/Common/Common/Utility/StreamParser.cs @@ -60,7 +60,7 @@ public override bool CanRead { get { - return m_stream.CanRead && m_stream.Position <= this.EndingPostionOnOuterStream; + return m_stream.CanRead && m_stream.Position <= this.EndingPositionOnOuterStream; } } @@ -105,9 +105,9 @@ public override long Position } /// - /// Postion in larger stream where this substream starts + /// Position in larger stream where this substream starts /// - public long StartingPostionOnOuterStream + public long StartingPositionOnOuterStream { get { @@ -116,9 +116,9 @@ public long StartingPostionOnOuterStream } /// - /// Postion in larger stream where this substream ends + /// Position in larger stream where this substream ends /// - public long EndingPostionOnOuterStream + public long EndingPositionOnOuterStream { get { @@ -150,9 +150,9 @@ public override long Seek(long offset, SeekOrigin origin) } else if (origin == SeekOrigin.End && 0 >= offset && offset > -m_length) { - return m_stream.Seek(offset - ((m_stream.Length - 1) - this.EndingPostionOnOuterStream), origin); + return m_stream.Seek(offset - ((m_stream.Length - 1) - this.EndingPositionOnOuterStream), origin); } - else if (origin == SeekOrigin.Current && (offset + m_stream.Position) >= this.StartingPostionOnOuterStream && (offset + m_stream.Position) < this.EndingPostionOnOuterStream) + else if (origin == SeekOrigin.Current && (offset + m_stream.Position) >= this.StartingPositionOnOuterStream && (offset + m_stream.Position) < this.EndingPositionOnOuterStream) { return m_stream.Seek(offset, origin); } diff --git a/src/Sdk/WebApi/WebApi/HttpClients/FileContainerHttpClient.cs b/src/Sdk/WebApi/WebApi/HttpClients/FileContainerHttpClient.cs index ee0eede0e15..c90b19dbec8 100644 --- a/src/Sdk/WebApi/WebApi/HttpClients/FileContainerHttpClient.cs +++ b/src/Sdk/WebApi/WebApi/HttpClients/FileContainerHttpClient.cs @@ -303,8 +303,8 @@ public async Task UploadFileAsync( HttpContent byteArrayContent = new ByteArrayContent(dataToSend, 0, bytesToCopy); byteArrayContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); byteArrayContent.Headers.ContentLength = currentStream.Length; - byteArrayContent.Headers.ContentRange = new System.Net.Http.Headers.ContentRangeHeaderValue(currentStream.StartingPostionOnOuterStream, - currentStream.EndingPostionOnOuterStream, + byteArrayContent.Headers.ContentRange = new System.Net.Http.Headers.ContentRangeHeaderValue(currentStream.StartingPositionOnOuterStream, + currentStream.EndingPositionOnOuterStream, streamParser.Length); FileUploadTrace(itemPath, $"Generate new HttpRequest for uploading file '{itemPath}', chunk '{currentChunk}' of '{totalChunks}'."); From e4daa20e20a4c922e5139f220a6d015e8dedd791 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:09:21 -0500 Subject: [PATCH 128/188] spelling: post job Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/JobExtension.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/JobExtension.cs b/src/Runner.Worker/JobExtension.cs index ea36034ecb0..39051c08e69 100644 --- a/src/Runner.Worker/JobExtension.cs +++ b/src/Runner.Worker/JobExtension.cs @@ -410,7 +410,7 @@ public async Task> InitializeJob(IExecutionContext jobContext, Pipel // Check that that runner is capable of taking a snapshot snapshotOperationProvider.RunSnapshotPreflightChecks(context); - // Add postjob step to write snapshot file + // Add post job step to write snapshot file jobContext.RegisterPostJobStep(new JobExtensionRunner( runAsync: (executionContext, _) => snapshotOperationProvider.CreateSnapshotRequestAsync(executionContext, snapshotRequest), condition: snapshotRequest.Condition, From bf2efe5fc0905a4aae1a49f21c959d65d4516583 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:38:25 -0500 Subject: [PATCH 129/188] spelling: prompt Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Authentication/VssCredentials.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Sdk/Common/Common/Authentication/VssCredentials.cs b/src/Sdk/Common/Common/Authentication/VssCredentials.cs index 6e642a3c2be..d348e303f83 100644 --- a/src/Sdk/Common/Common/Authentication/VssCredentials.cs +++ b/src/Sdk/Common/Common/Authentication/VssCredentials.cs @@ -71,7 +71,7 @@ public VssCredentials(FederatedCredential federatedCredential) /// credential. /// /// The federated credential to use for authentication - /// CredentialPromptType.PromptIfNeeded if interactive prompts are allowed, otherwise CredentialProptType.DoNotPrompt + /// CredentialPromptType.PromptIfNeeded if interactive prompts are allowed, otherwise CredentialPromptType.DoNotPrompt public VssCredentials( FederatedCredential federatedCredential, CredentialPromptType promptType) @@ -84,7 +84,7 @@ public VssCredentials( /// credential. /// /// The federated credential to use for authentication - /// CredentialPromptType.PromptIfNeeded if interactive prompts are allowed; otherwise, CredentialProptType.DoNotPrompt + /// CredentialPromptType.PromptIfNeeded if interactive prompts are allowed; otherwise, CredentialPromptType.DoNotPrompt /// An optional TaskScheduler to ensure credentials prompting occurs on the UI thread public VssCredentials( FederatedCredential federatedCredential, @@ -99,7 +99,7 @@ public VssCredentials( /// credential. /// /// The federated credential to use for authentication - /// CredentialPromptType.PromptIfNeeded if interactive prompts are allowed; otherwise, CredentialProptType.DoNotPrompt + /// CredentialPromptType.PromptIfNeeded if interactive prompts are allowed; otherwise, CredentialPromptType.DoNotPrompt /// An optional TaskScheduler to ensure credentials prompting occurs on the UI thread /// An optional IVssCredentialPrompt to perform prompting for credentials public VssCredentials( From 257058f87ce514d85b1867e84f84cc73cbf1317b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:08:15 -0500 Subject: [PATCH 130/188] spelling: property Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/PropertyValidation.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/PropertyValidation.cs b/src/Sdk/Common/Common/Utility/PropertyValidation.cs index e56222a7eec..9fffd64660d 100644 --- a/src/Sdk/Common/Common/Utility/PropertyValidation.cs +++ b/src/Sdk/Common/Common/Utility/PropertyValidation.cs @@ -278,7 +278,7 @@ public static void CheckPropertyLength(String propertyValue, Boolean allowNull, } /// - /// Verify that a propery is within the bounds of the specified range. + /// Verify that a property is within the bounds of the specified range. /// /// The property value /// The minimum value allowed From bc7265d09d0802113f398a311feb51626e77f307 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:08:47 -0500 Subject: [PATCH 131/188] spelling: quarter Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/DotnetsdkDownloadScriptL0.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Test/L0/DotnetsdkDownloadScriptL0.cs b/src/Test/L0/DotnetsdkDownloadScriptL0.cs index 9d3fbd26c69..b83aa07af6b 100644 --- a/src/Test/L0/DotnetsdkDownloadScriptL0.cs +++ b/src/Test/L0/DotnetsdkDownloadScriptL0.cs @@ -15,7 +15,7 @@ public async Task EnsureDotnetsdkBashDownloadScriptUpToDate() { if ((DateTime.UtcNow.Month - 1) % 3 != 0) { - // Only check these script once a quater. + // Only check these script once a quarter. return; } @@ -45,7 +45,7 @@ public async Task EnsureDotnetsdkPowershellDownloadScriptUpToDate() { if ((DateTime.UtcNow.Month - 1) % 3 != 0) { - // Only check these script once a quater. + // Only check these script once a quarter. return; } From ca00a6fb137190cc30db4873965323d295b3b651 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:08:58 -0500 Subject: [PATCH 132/188] spelling: questions Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/checks/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/checks/actions.md b/docs/checks/actions.md index bdf3abfc1c8..9e90c5fb8be 100644 --- a/docs/checks/actions.md +++ b/docs/checks/actions.md @@ -80,4 +80,4 @@ Make sure the runner has access to actions service for GitHub.com or GitHub Ente ## Still not working? -Contact [GitHub Support](https://support.github.com) if you have further questuons, or log an issue at https://github.com/actions/runner if you think it's a runner issue. +Contact [GitHub Support](https://support.github.com) if you have further questions, or log an issue at https://github.com/actions/runner if you think it's a runner issue. From e5b11005bcbef6c5696631ffd99095845dfec051 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:14:53 -0500 Subject: [PATCH 133/188] spelling: range of Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Contracts/Patch/RemovePatchOperation.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/Contracts/Patch/RemovePatchOperation.cs b/src/Sdk/WebApi/WebApi/Contracts/Patch/RemovePatchOperation.cs index 051613176b7..eacecb0dc31 100644 --- a/src/Sdk/WebApi/WebApi/Contracts/Patch/RemovePatchOperation.cs +++ b/src/Sdk/WebApi/WebApi/Contracts/Patch/RemovePatchOperation.cs @@ -61,7 +61,7 @@ public override void Apply(TModel target) } else { - // We can't remove outside the rangeof the list. + // We can't remove outside the range of the list. throw new PatchOperationFailedException(PatchResources.IndexOutOfRange(this.Path)); } } From 3811df17f64e540227604a4ef49537bc0086df0b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:09:16 -0500 Subject: [PATCH 134/188] spelling: received Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTWebApi/WebApi/TaskAgentJobRequest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/DTWebApi/WebApi/TaskAgentJobRequest.cs b/src/Sdk/DTWebApi/WebApi/TaskAgentJobRequest.cs index 67318d11ca5..437a536e31b 100644 --- a/src/Sdk/DTWebApi/WebApi/TaskAgentJobRequest.cs +++ b/src/Sdk/DTWebApi/WebApi/TaskAgentJobRequest.cs @@ -103,7 +103,7 @@ public DateTime? AssignTime } /// - /// The date/time this request was receieved by an agent. + /// The date/time this request was received by an agent. /// /// [DataMember(Order = 5, EmitDefaultValue = false)] From 1295ab84099904906f3e5694de7308a91a92aef0 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:58:32 -0500 Subject: [PATCH 135/188] spelling: red hat Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/checks/sslcert.md | 2 +- src/Misc/layoutbin/systemd.svc.sh.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/checks/sslcert.md b/docs/checks/sslcert.md index d1edc4deb3a..89c1628cbe9 100644 --- a/docs/checks/sslcert.md +++ b/docs/checks/sslcert.md @@ -38,7 +38,7 @@ To let the runner trusts your CA certificate, you will need to: - Windows: https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate - macOS: ![trust ca cert](./../res/macOStrustCA.gif) - Linux: Refer to the distribution documentation - 1. RedHat: https://www.redhat.com/sysadmin/ca-certificates-cli + 1. Red Hat: https://www.redhat.com/sysadmin/ca-certificates-cli 2. Ubuntu: http://manpages.ubuntu.com/manpages/focal/man8/update-ca-certificates.8.html 3. Google search: "trust ca certificate on [linux distribution]" 4. If all approaches failed, set environment variable `SSL_CERT_FILE` to the CA bundle `.pem` file we get. diff --git a/src/Misc/layoutbin/systemd.svc.sh.template b/src/Misc/layoutbin/systemd.svc.sh.template index 84298542937..a445562fc36 100644 --- a/src/Misc/layoutbin/systemd.svc.sh.template +++ b/src/Misc/layoutbin/systemd.svc.sh.template @@ -74,7 +74,7 @@ function install() sed "s/{{User}}/${run_as_user}/g; s/{{Description}}/$(echo ${SVC_DESCRIPTION} | sed -e 's/[\/&]/\\&/g')/g; s/{{RunnerRoot}}/$(echo ${RUNNER_ROOT} | sed -e 's/[\/&]/\\&/g')/g;" "${TEMPLATE_PATH}" > "${TEMP_PATH}" || failed "failed to create replacement temp file" mv "${TEMP_PATH}" "${UNIT_PATH}" || failed "failed to copy unit file" - # Recent Fedora based Linux (CentOS/Redhat) has SELinux enabled by default + # Recent Fedora based Linux (CentOS/Red Hat) has SELinux enabled by default # We need to restore security context on the unit file we added otherwise SystemD have no access to it. command -v getenforce > /dev/null if [ $? -eq 0 ] From 10a9aee15f3fb6b5e6c1d3d7d931bf115033ed8e Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:09:26 -0500 Subject: [PATCH 136/188] spelling: represents Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/OAuth/VssOAuthCredential.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthCredential.cs b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthCredential.cs index 78cf4fc9fa4..9e1013bdef4 100644 --- a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthCredential.cs +++ b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthCredential.cs @@ -97,7 +97,7 @@ public VssOAuthTokenParameters TokenParameters } /// - /// Determines whether or not the response reperesents an authentication challenge for the current credential. + /// Determines whether or not the response represents an authentication challenge for the current credential. /// /// The response to analyze /// True if the web response indicates an authorization challenge; otherwise, false From fbf64ef7fb754b2c131dc07b9212c1deb0141130 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:10:20 -0500 Subject: [PATCH 137/188] spelling: requests Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/VssHttpRequestSettings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/VssHttpRequestSettings.cs b/src/Sdk/Common/Common/VssHttpRequestSettings.cs index 7279d28093f..095f6853ea4 100644 --- a/src/Sdk/Common/Common/VssHttpRequestSettings.cs +++ b/src/Sdk/Common/Common/VssHttpRequestSettings.cs @@ -123,7 +123,7 @@ public Boolean CompressionEnabled /// /// Gets or sets a value indicating whether or not the Expect: 100-continue header should be sent on - /// outgoing requess. The default value is true. + /// outgoing requests. The default value is true. /// [DefaultValue(true)] public Boolean ExpectContinue From 9954b599ffabd056de657f1f01570b3baf7c4f2c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:10:36 -0500 Subject: [PATCH 138/188] spelling: resiliency Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1751-runner-job-hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/1751-runner-job-hooks.md b/docs/adrs/1751-runner-job-hooks.md index d0d7c8479eb..a37a7eb5828 100644 --- a/docs/adrs/1751-runner-job-hooks.md +++ b/docs/adrs/1751-runner-job-hooks.md @@ -73,7 +73,7 @@ These are **synchronous** hooks, so they will block job execution while they are - These files will execute as the Runner user, outside of any container specification on the job - These are **synchronous** hooks - Runner admins can execute a background process for async hooks if they want - - We will fail the job and halt execution on any exit code that is not 0. The Runner admin is responsible for returning the correct exit code and ensuring resilency. + - We will fail the job and halt execution on any exit code that is not 0. The Runner admin is responsible for returning the correct exit code and ensuring resiliency. - This includes that the runner user needs access to the file in the env and the file must exist - There will be no `continue-on-error` type option on launch - There will be no `timeout` option on launch From 96be6a68e0bdbe692522be9f6f957e8e7094eedb Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:11:01 -0500 Subject: [PATCH 139/188] spelling: retrieve Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Configuration/ConfigurationManager.cs | 2 +- src/Runner.Listener/JobDispatcher.cs | 4 ++-- src/Runner.Worker/Variables.cs | 2 +- src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Runner.Listener/Configuration/ConfigurationManager.cs b/src/Runner.Listener/Configuration/ConfigurationManager.cs index f1cb6ebd18d..70f05d63403 100644 --- a/src/Runner.Listener/Configuration/ConfigurationManager.cs +++ b/src/Runner.Listener/Configuration/ConfigurationManager.cs @@ -711,7 +711,7 @@ private async Task GetRunnerTokenAsync(CommandSettings command, string g { Trace.Info($"Retriving runner {tokenType} token using GitHub PAT."); var jitToken = await GetJITRunnerTokenAsync(githubUrl, githubPAT, tokenType); - Trace.Info($"Retrived runner {tokenType} token is good to {jitToken.ExpiresAt}."); + Trace.Info($"Retrieved runner {tokenType} token is good to {jitToken.ExpiresAt}."); HostContext.SecretMasker.AddValue(jitToken.Token); runnerToken = jitToken.Token; } diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index c00dd3de529..19729a3ff43 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -98,7 +98,7 @@ public void Run(Pipelines.AgentJobRequestMessage jobRequestMessage, bool runOnce Guid dispatchedJobId = _jobDispatchedQueue.Dequeue(); if (_jobInfos.TryGetValue(dispatchedJobId, out currentDispatch)) { - Trace.Verbose($"Retrive previous WorkerDispatcher for job {currentDispatch.JobId}."); + Trace.Verbose($"Retrieve previous WorkerDispatcher for job {currentDispatch.JobId}."); } } @@ -167,7 +167,7 @@ public async Task WaitAsync(CancellationToken token) dispatchedJobId = _jobDispatchedQueue.Dequeue(); if (_jobInfos.TryGetValue(dispatchedJobId, out currentDispatch)) { - Trace.Verbose($"Retrive previous WorkerDispatcher for job {currentDispatch.JobId}."); + Trace.Verbose($"Retrieve previous WorkerDispatcher for job {currentDispatch.JobId}."); } } else diff --git a/src/Runner.Worker/Variables.cs b/src/Runner.Worker/Variables.cs index 916b82dc6a1..0dcf7fcb440 100644 --- a/src/Runner.Worker/Variables.cs +++ b/src/Runner.Worker/Variables.cs @@ -61,7 +61,7 @@ public Variables(IHostContext hostContext, IDictionary co } // DO NOT add file path variable to here. - // All file path variables needs to be retrive and set through ExecutionContext, so it can handle container file path translation. + // All file path variables needs to be retrieve and set through ExecutionContext, so it can handle container file path translation. public string Build_Number => Get(SdkConstants.Variables.Build.BuildNumber); #if OS_WINDOWS diff --git a/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs b/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs index 43a222626a5..dd7a390a2c4 100644 --- a/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs +++ b/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs @@ -740,7 +740,7 @@ private Boolean NeedToConnect(ConnectOptions optionsNeeded) m_locationDataCacheManager = new LocationCacheManager(m_instanceId, m_serviceOwner, m_baseUri); } - // update the location service cache if we tried to retireve location service data + // update the location service cache if we tried to retrieve location service data m_locationDataCacheManager.WebApplicationRelativeDirectory = connectionData.WebApplicationRelativeDirectory; if (locationServiceData != null) { From 08fbb5ee72153362dfdd462cbd62254712ca181b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:11:37 -0500 Subject: [PATCH 140/188] spelling: retrieving Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Configuration/ConfigurationManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Configuration/ConfigurationManager.cs b/src/Runner.Listener/Configuration/ConfigurationManager.cs index 70f05d63403..fb707a8631b 100644 --- a/src/Runner.Listener/Configuration/ConfigurationManager.cs +++ b/src/Runner.Listener/Configuration/ConfigurationManager.cs @@ -709,7 +709,7 @@ private async Task GetRunnerTokenAsync(CommandSettings command, string g var runnerToken = string.Empty; if (!string.IsNullOrEmpty(githubPAT)) { - Trace.Info($"Retriving runner {tokenType} token using GitHub PAT."); + Trace.Info($"Retrieving runner {tokenType} token using GitHub PAT."); var jitToken = await GetJITRunnerTokenAsync(githubUrl, githubPAT, tokenType); Trace.Info($"Retrieved runner {tokenType} token is good to {jitToken.ExpiresAt}."); HostContext.SecretMasker.AddValue(jitToken.Token); From 91824fe9407a64b2c24162fb21bcf4c7382e32f8 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 25 Jan 2026 00:33:24 -0500 Subject: [PATCH 141/188] spelling: retryable Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Misc/layoutbin/RunnerService.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Misc/layoutbin/RunnerService.js b/src/Misc/layoutbin/RunnerService.js index 1024e8a5e77..fb8d595685f 100644 --- a/src/Misc/layoutbin/RunnerService.js +++ b/src/Misc/layoutbin/RunnerService.js @@ -98,7 +98,7 @@ var runService = function () { retriableFailureRetryCount++; if (retriableFailureRetryCount >= 10) { console.error( - "Stopping the runner after 10 consecutive re-tryable failures" + "Stopping the runner after 10 consecutive retryable failures" ); stopping = true; } @@ -110,7 +110,7 @@ var runService = function () { retriableFailureRetryCount++; if (retriableFailureRetryCount >= 10) { console.error( - "Stopping the runner after 10 consecutive re-tryable failures" + "Stopping the runner after 10 consecutive retryable failures" ); stopping = true; } From df83bda918c56f7f2cb2cc3b1988512b7515b93c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:10:47 -0500 Subject: [PATCH 142/188] spelling: reusable Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1751-runner-job-hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/1751-runner-job-hooks.md b/docs/adrs/1751-runner-job-hooks.md index a37a7eb5828..4584a1f32df 100644 --- a/docs/adrs/1751-runner-job-hooks.md +++ b/docs/adrs/1751-runner-job-hooks.md @@ -15,7 +15,7 @@ This feature is mainly intended for self hosted runner administrators. - Policy features that require certain steps run at the beginning or end of all jobs - This would be better solved to in a central place in settings, rather then decentralized on each runner. - The Proposed `Notification Hooks for Runners` is limited to self hosted runners, we don't believe Policy features should be -- Reuse scenarios between jobs are covered by [composite actions](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action) and [resuable workflows](https://docs.github.com/en/actions/using-workflows/reusing-workflows) +- Reuse scenarios between jobs are covered by [composite actions](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action) and [reusable workflows](https://docs.github.com/en/actions/using-workflows/reusing-workflows) - Security applications, security should be handled on the policy side on the server, not decentralized on each runner ## Hooks From 44719681e8ad87e94f6ae19e8cac2d56193ba2b5 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 25 Jan 2026 00:30:21 -0500 Subject: [PATCH 143/188] spelling: rules Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../Configuration/NativeWindowsServiceHelper.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs index 9bfbb751c1f..dc1be33dc51 100644 --- a/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs +++ b/src/Runner.Listener/Configuration/NativeWindowsServiceHelper.cs @@ -278,11 +278,11 @@ private bool IsGroupHasFullControl(string path, string groupName) DirectoryInfo dInfo = new DirectoryInfo(path); DirectorySecurity dSecurity = dInfo.GetAccessControl(); - var allAccessRuls = dSecurity.GetAccessRules(true, true, typeof(SecurityIdentifier)).Cast(); + var allAccessRules = dSecurity.GetAccessRules(true, true, typeof(SecurityIdentifier)).Cast(); SecurityIdentifier sid = (SecurityIdentifier)new NTAccount(groupName).Translate(typeof(SecurityIdentifier)); - if (allAccessRuls.Any(x => x.IdentityReference.Value == sid.ToString() && + if (allAccessRules.Any(x => x.IdentityReference.Value == sid.ToString() && x.AccessControlType == AccessControlType.Allow && x.FileSystemRights.HasFlag(FileSystemRights.FullControl) && x.InheritanceFlags == (InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit) && @@ -422,11 +422,11 @@ public void RemoveGroupFromFolderSecuritySetting(string folderPath, string group { DirectorySecurity dSecurity = dInfo.GetAccessControl(); - var allAccessRuls = dSecurity.GetAccessRules(true, true, typeof(SecurityIdentifier)).Cast(); + var allAccessRules = dSecurity.GetAccessRules(true, true, typeof(SecurityIdentifier)).Cast(); SecurityIdentifier sid = (SecurityIdentifier)new NTAccount(groupName).Translate(typeof(SecurityIdentifier)); - foreach (FileSystemAccessRule ace in allAccessRuls) + foreach (FileSystemAccessRule ace in allAccessRules) { if (String.Equals(sid.ToString(), ace.IdentityReference.Value, StringComparison.OrdinalIgnoreCase)) { From 7e466f94c02fb5b2883b78a5359e7936eab88a4f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:12:11 -0500 Subject: [PATCH 144/188] spelling: satisfied Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Exceptions/SecurityExceptions.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/Exceptions/SecurityExceptions.cs b/src/Sdk/WebApi/WebApi/Exceptions/SecurityExceptions.cs index 2c67437d161..147d79f03da 100644 --- a/src/Sdk/WebApi/WebApi/Exceptions/SecurityExceptions.cs +++ b/src/Sdk/WebApi/WebApi/Exceptions/SecurityExceptions.cs @@ -37,7 +37,7 @@ public class AccessCheckException : SecurityException /// The identity descriptor which was checked. /// The display name of the identity which was checked. /// The token which was checked. - /// The requested permissions, which were not satisifed by the check. + /// The requested permissions, which were not satisfied by the check. /// The security namespace which was checked. /// A descriptive message for the exception. public AccessCheckException( @@ -57,7 +57,7 @@ public AccessCheckException( /// /// The identity descriptor which was checked. /// The token which was checked. - /// The requested permissions, which were not satisifed by the check. + /// The requested permissions, which were not satisfied by the check. /// The security namespace which was checked. /// A descriptive message for the exception. public AccessCheckException( From cad64497490fc1a5024cc5955daf24dcc2d2399a Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:44:26 -0500 Subject: [PATCH 145/188] spelling: separate Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Common/ProcessInvoker.cs | 2 +- .../Pipelines/ObjectTemplating/PipelineTemplateConverter.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Common/ProcessInvoker.cs b/src/Runner.Common/ProcessInvoker.cs index 021c6db5e02..e04ed9d5105 100644 --- a/src/Runner.Common/ProcessInvoker.cs +++ b/src/Runner.Common/ProcessInvoker.cs @@ -101,7 +101,7 @@ Task ExecuteAsync( } // The implementation of the process invoker does not hook up DataReceivedEvent and ErrorReceivedEvent of Process, - // instead, we read both STDOUT and STDERR stream manually on seperate thread. + // instead, we read both STDOUT and STDERR stream manually on separate thread. // The reason is we find a huge perf issue about process STDOUT/STDERR with those events. // // Missing functionalities: diff --git a/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/PipelineTemplateConverter.cs b/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/PipelineTemplateConverter.cs index 6c9654074f1..d02fb6cf59b 100644 --- a/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/PipelineTemplateConverter.cs +++ b/src/Sdk/DTPipelines/Pipelines/ObjectTemplating/PipelineTemplateConverter.cs @@ -651,7 +651,7 @@ private static String ConvertToIfCondition( if (isJob) { namedValues = s_jobIfNamedValues; - // TODO: refactor into seperate functions + // TODO: refactor into separate functions // functions = PhaseCondition.FunctionInfo; } else From f2912736825b1e31b668ec669a70e7eca60af42b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:44:38 -0500 Subject: [PATCH 146/188] spelling: separated Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Common/ProcessExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Common/ProcessExtensions.cs b/src/Runner.Common/ProcessExtensions.cs index 5ccda3e8abf..ea22627c772 100644 --- a/src/Runner.Common/ProcessExtensions.cs +++ b/src/Runner.Common/ProcessExtensions.cs @@ -300,7 +300,7 @@ public static string GetEnvironmentVariable(this Process process, IHostContext h string envContent = File.ReadAllText(envFile); if (!string.IsNullOrEmpty(envContent)) { - // on linux, environment variables are seprated by '\0' + // on linux, environment variables are separated by '\0' var envList = envContent.Split('\0', StringSplitOptions.RemoveEmptyEntries); foreach (var envStr in envList) { From a6e44e1d3a5784ba246dd08bd6ac5471378a1580 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:45:37 -0500 Subject: [PATCH 147/188] spelling: separator Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/JobDispatcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index 19729a3ff43..94baac6b578 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -1028,7 +1028,7 @@ private async Task TryUploadUnfinishedLogs(Pipelines.AgentJobRequestMessage mess Trace.Warning($"log file '{log}' doesn't follow naming convention 'GUID_GUID_INT'."); continue; } - var logPageSeperator = logName.IndexOf('_'); + var logPageSeparator = logName.IndexOf('_'); var logRecordId = Guid.Empty; var pageNumber = 0; From b8bcab52dbed05293b2a1e47bab9e78c9d38b368 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:46:00 -0500 Subject: [PATCH 148/188] spelling: serialize Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs b/src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs index cc0dbc6a574..019e4f7ed09 100644 --- a/src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs +++ b/src/Sdk/WebApi/WebApi/VssJsonMediaTypeFormatter.cs @@ -83,7 +83,7 @@ private void SetSerializerSettings(bool bypassSafeArrayWrapping, bool enumsAsNum if (!enumsAsNumbers) { - // Serialze enums as camelCased string values + // Serialize enums as camelCased string values this.SerializerSettings.Converters.Add(new StringEnumConverter { NamingStrategy = new CamelCaseNamingStrategy() }); } From 12497282a358de2ccff7625ca24292472c8c50e1 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:46:47 -0500 Subject: [PATCH 149/188] spelling: service Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Runner.cs | 2 +- src/Runner.Service/Windows/Resource.Designer.cs | 2 +- src/Runner.Service/Windows/Resource.resx | 2 +- src/Sdk/WebApi/WebApi/Location/Interfaces.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index 553178fe9db..33c5a72f791 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -47,7 +47,7 @@ public sealed class Runner : RunnerService, IRunner // // Helps avoid excessive calls to Run Service when encountering non-retriable errors from /acquirejob. // Normally we rely on the HTTP clients to back off between retry attempts. However, acquiring a job - // involves calls to both Run Serivce and Broker. And Run Service and Broker communicate with each other + // involves calls to both Run Service and Broker. And Run Service and Broker communicate with each other // in an async fashion. // // When Run Service encounters a non-retriable error, it sends an async message to Broker. The runner will, diff --git a/src/Runner.Service/Windows/Resource.Designer.cs b/src/Runner.Service/Windows/Resource.Designer.cs index 503aca55614..4f3752c6614 100644 --- a/src/Runner.Service/Windows/Resource.Designer.cs +++ b/src/Runner.Service/Windows/Resource.Designer.cs @@ -133,7 +133,7 @@ internal static string RunnerUpdateSucceed { } /// - /// Looks up a localized string similar to Crash servicehost to trigger SCM restart the serivce.. + /// Looks up a localized string similar to Crash servicehost to trigger SCM restart the service. /// internal static string CrashServiceHost { get { diff --git a/src/Runner.Service/Windows/Resource.resx b/src/Runner.Service/Windows/Resource.resx index 56c2c16132d..63b3ccad9e4 100644 --- a/src/Runner.Service/Windows/Resource.resx +++ b/src/Runner.Service/Windows/Resource.resx @@ -139,7 +139,7 @@ Runner listener has been updated to latest, restart the service to update the servicehost itself. - Crash servicehost to trigger SCM restart the serivce. + Crash servicehost to trigger SCM restart the service. Runner listener exit with undefined return code, re-launch runner in 5 seconds. diff --git a/src/Sdk/WebApi/WebApi/Location/Interfaces.cs b/src/Sdk/WebApi/WebApi/Location/Interfaces.cs index 50c6bc8488d..46a4a14214c 100644 --- a/src/Sdk/WebApi/WebApi/Location/Interfaces.cs +++ b/src/Sdk/WebApi/WebApi/Location/Interfaces.cs @@ -155,7 +155,7 @@ public interface ILocationDataProvider // // Removes the ServiceDefinition with the specified service type and - // service identifier from the location serivce. + // service identifier from the location service. // // // The service type of the ServiceDefinition to remove. From bad216c87cf24c92dee9121a7effc33d2e7ecb95 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:59:37 -0500 Subject: [PATCH 150/188] spelling: set up Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../Repository/v1.0/GitSourceProvider.cs | 2 +- .../Repository/v1.1/GitSourceProvider.cs | 2 +- src/Runner.Worker/ActionRunner.cs | 2 +- src/Runner.Worker/JobRunner.cs | 2 +- .../WorkflowParser/WorkflowTemplateParser.cs | 6 ++-- src/Test/L0/TestHostContext.cs | 2 +- .../L0/Worker/CreateStepSummaryCommandL0.cs | 2 +- src/Test/L0/Worker/ExecutionContextL0.cs | 34 +++++++++---------- src/Test/L0/Worker/OutputManagerL0.cs | 8 ++--- .../L0/Worker/PipelineDirectoryManagerL0.cs | 8 ++--- src/Test/L0/Worker/StepsRunnerL0.cs | 4 +-- src/Test/L0/Worker/TrackingManagerL0.cs | 6 ++-- 12 files changed, 39 insertions(+), 39 deletions(-) diff --git a/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs b/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs index 2c97721a3d8..004f843d6fc 100644 --- a/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs +++ b/src/Runner.Plugins/Repository/v1.0/GitSourceProvider.cs @@ -306,7 +306,7 @@ public async Task GetSourceAsync( if (gitLfsSupport) { // Initialize git lfs by execute 'git lfs install' - executionContext.Debug("Setup the local Git hooks for Git LFS."); + executionContext.Debug("Set up the local Git hooks for Git LFS."); int exitCode_lfsInstall = await gitCommandManager.GitLFSInstall(executionContext, targetPath); if (exitCode_lfsInstall != 0) { diff --git a/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs b/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs index c2bc376da59..ae6f3be7214 100644 --- a/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs +++ b/src/Runner.Plugins/Repository/v1.1/GitSourceProvider.cs @@ -295,7 +295,7 @@ public async Task GetSourceAsync( if (gitLfsSupport) { // Initialize git lfs by execute 'git lfs install' - executionContext.Debug("Setup the local Git hooks for Git LFS."); + executionContext.Debug("Set up the local Git hooks for Git LFS."); int exitCode_lfsInstall = await gitCommandManager.GitLFSInstall(executionContext, targetPath); if (exitCode_lfsInstall != 0) { diff --git a/src/Runner.Worker/ActionRunner.cs b/src/Runner.Worker/ActionRunner.cs index 436ec5fd3df..c14d1c01690 100644 --- a/src/Runner.Worker/ActionRunner.cs +++ b/src/Runner.Worker/ActionRunner.cs @@ -153,7 +153,7 @@ Action.Reference is Pipelines.RepositoryPathReference repoAction && ExecutionContext.SetGitHubContext("action_ref", null); } - // Setup container stephost for running inside the container. + // Set up container stephost for running inside the container. if (ExecutionContext.Global.Container != null) { // Make sure the required container is already created diff --git a/src/Runner.Worker/JobRunner.cs b/src/Runner.Worker/JobRunner.cs index c177ac6830b..dde07e0b9e4 100644 --- a/src/Runner.Worker/JobRunner.cs +++ b/src/Runner.Worker/JobRunner.cs @@ -85,7 +85,7 @@ public async Task RunAsync(AgentJobRequestMessage message, Cancellat } else { - // Setup the job server and job server queue. + // Set up the job server and job server queue. var jobServer = HostContext.GetService(); VssCredentials jobServerCredential = VssUtil.GetVssCredential(systemConnection); Uri jobServerUrl = systemConnection.Url; diff --git a/src/Sdk/WorkflowParser/WorkflowTemplateParser.cs b/src/Sdk/WorkflowParser/WorkflowTemplateParser.cs index 10a34552501..912c8977cff 100644 --- a/src/Sdk/WorkflowParser/WorkflowTemplateParser.cs +++ b/src/Sdk/WorkflowParser/WorkflowTemplateParser.cs @@ -1,4 +1,4 @@ -#nullable disable // Consider removing in the future to minimize likelihood of NullReferenceException; refer https://learn.microsoft.com/en-us/dotnet/csharp/nullable-references +#nullable disable // Consider removing in the future to minimize likelihood of NullReferenceException; refer https://learn.microsoft.com/en-us/dotnet/csharp/nullable-references using System; using System.Collections.Generic; @@ -102,7 +102,7 @@ public WorkflowTemplate LoadWorkflow( String path, CancellationToken cancellationToken) { - // Setup the template context + // Set up the template context var context = new TemplateContext { CancellationToken = cancellationToken, @@ -117,7 +117,7 @@ public WorkflowTemplate LoadWorkflow( context.SetFeatures(m_features); context.SetJobCountValidator(new JobCountValidator(context, m_parseOptions.MaxJobLimit)); - // Setup the template loader + // Set up the template loader var loader = new YamlTemplateLoader(new ParseOptions(m_parseOptions), fileProvider); // Parse the template tokens diff --git a/src/Test/L0/TestHostContext.cs b/src/Test/L0/TestHostContext.cs index c1cf692204f..37b3f1fc358 100644 --- a/src/Test/L0/TestHostContext.cs +++ b/src/Test/L0/TestHostContext.cs @@ -48,7 +48,7 @@ public TestHostContext(object testClass, [CallerMemberName] string testName = "" startIndex: typeof(Tests.TestHostContext).FullName.LastIndexOf(nameof(TestHostContext))); _suiteName = _suiteName.Replace(".", "_"); - // Setup the trace manager. + // Set up the trace manager. TraceFileName = Path.Combine( Path.Combine(TestUtil.GetSrcPath(), "Test", "TestLogs"), $"trace_{_suiteName}_{_testName}.log"); diff --git a/src/Test/L0/Worker/CreateStepSummaryCommandL0.cs b/src/Test/L0/Worker/CreateStepSummaryCommandL0.cs index 185f44b3865..c612105d5bf 100644 --- a/src/Test/L0/Worker/CreateStepSummaryCommandL0.cs +++ b/src/Test/L0/Worker/CreateStepSummaryCommandL0.cs @@ -188,7 +188,7 @@ private TestHostContext Setup([CallerMemberName] string name = "") _issues = new List>(); - // Setup a job request + // Set up a job request TaskOrchestrationPlanReference plan = new(); TimelineReference timeline = new(); Guid jobId = Guid.NewGuid(); diff --git a/src/Test/L0/Worker/ExecutionContextL0.cs b/src/Test/L0/Worker/ExecutionContextL0.cs index 357cdc9aa5e..e6a59531f4f 100644 --- a/src/Test/L0/Worker/ExecutionContextL0.cs +++ b/src/Test/L0/Worker/ExecutionContextL0.cs @@ -38,7 +38,7 @@ public void AddIssue_CountWarningsErrors() }); jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var jobServerQueue = new Mock(); jobServerQueue.Setup(x => x.QueueTimelineRecordUpdate(It.IsAny(), It.IsAny())); @@ -116,7 +116,7 @@ public void ApplyContinueOnError_CheckResultAndOutcome() jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); jobRequest.Variables["ACTIONS_STEP_DEBUG"] = "true"; - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var jobServerQueue = new Mock(); jobServerQueue.Setup(x => x.QueueTimelineRecordUpdate(It.IsAny(), It.IsAny())); @@ -171,7 +171,7 @@ public void AddIssue_TrimMessageSize() }); jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var jobServerQueue = new Mock(); jobServerQueue.Setup(x => x.QueueTimelineRecordUpdate(It.IsAny(), It.IsAny())); @@ -225,7 +225,7 @@ public void AddIssue_OverrideLogMessage() }); jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var jobServerQueue = new Mock(); @@ -280,7 +280,7 @@ public void AddIssue_AddStepAndLineNumberInformation() }); jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var pagingLogger2 = new Mock(); var jobServerQueue = new Mock(); @@ -332,7 +332,7 @@ public void Debug_Multilines() jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); jobRequest.Variables["ACTIONS_STEP_DEBUG"] = "true"; - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var jobServerQueue = new Mock(); jobServerQueue.Setup(x => x.QueueTimelineRecordUpdate(It.IsAny(), It.IsAny())); @@ -383,7 +383,7 @@ public void RegisterPostJobAction_ShareState() jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); jobRequest.Variables["ACTIONS_STEP_DEBUG"] = "true"; - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger1 = new Mock(); var pagingLogger2 = new Mock(); var pagingLogger3 = new Mock(); @@ -481,7 +481,7 @@ public void RegisterPostJobAction_NotRegisterPostTwice() jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); jobRequest.Variables["ACTIONS_STEP_DEBUG"] = "true"; - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger1 = new Mock(); var pagingLogger2 = new Mock(); var pagingLogger3 = new Mock(); @@ -565,7 +565,7 @@ public void ActionResult_Lowercase() jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); jobRequest.Variables["ACTIONS_STEP_DEBUG"] = "true"; - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger1 = new Mock(); var jobServerQueue = new Mock(); hc.EnqueueInstance(pagingLogger1.Object); @@ -619,7 +619,7 @@ public void PublishStepTelemetry_RegularStep_NoOpt() }); jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var jobServerQueue = new Mock(); jobServerQueue.Setup(x => x.QueueTimelineRecordUpdate(It.IsAny(), It.IsAny())); @@ -662,7 +662,7 @@ public void PublishStepTelemetry_RegularStep() }); jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var jobServerQueue = new Mock(); jobServerQueue.Setup(x => x.QueueTimelineRecordUpdate(It.IsAny(), It.IsAny())); @@ -726,7 +726,7 @@ public void PublishStepTelemetry_EmbeddedStep() }); jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var pagingLogger2 = new Mock(); var jobServerQueue = new Mock(); @@ -866,7 +866,7 @@ public void PublishStepResult_EmbeddedStep_Legacy() }); jobRequest.ContextData["github"] = new Pipelines.ContextData.DictionaryContextData(); - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger = new Mock(); var pagingLogger2 = new Mock(); var jobServerQueue = new Mock(); @@ -905,7 +905,7 @@ private TestHostContext CreateTestContext([CallerMemberName] String testName = " { var hc = new TestHostContext(this, testName); - // Arrange: Setup the configuration store. + // Arrange: Set up the configuration store. var configurationStore = new Mock(); configurationStore.Setup(x => x.GetSettings()).Returns(new RunnerSettings()); hc.SetSingleton(configurationStore.Object); @@ -1060,7 +1060,7 @@ public void ActionVariables_AddedToVarsContext() inputVarsContext["VARIABLE_2"] = new StringContextData("value2"); jobRequest.ContextData["vars"] = inputVarsContext; - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger1 = new Mock(); var jobServerQueue = new Mock(); hc.EnqueueInstance(pagingLogger1.Object); @@ -1105,7 +1105,7 @@ public void ActionVariables_DebugUsingVars() inputVarsContext[Constants.Variables.Actions.RunnerDebug] = new StringContextData("true"); jobRequest.ContextData["vars"] = inputVarsContext; - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger1 = new Mock(); var jobServerQueue = new Mock(); hc.EnqueueInstance(pagingLogger1.Object); @@ -1151,7 +1151,7 @@ public void ActionVariables_SecretsPrecedenceForDebugUsingVars() jobRequest.Variables[Constants.Variables.Actions.StepDebug] = "false"; jobRequest.Variables[Constants.Variables.Actions.RunnerDebug] = "false"; - // Arrange: Setup the paging logger. + // Arrange: Set up the paging logger. var pagingLogger1 = new Mock(); var jobServerQueue = new Mock(); hc.EnqueueInstance(pagingLogger1.Object); diff --git a/src/Test/L0/Worker/OutputManagerL0.cs b/src/Test/L0/Worker/OutputManagerL0.cs index cb4b2ca29dd..65768e28e8f 100644 --- a/src/Test/L0/Worker/OutputManagerL0.cs +++ b/src/Test/L0/Worker/OutputManagerL0.cs @@ -795,7 +795,7 @@ public async void MatcherFile_JobContainer() _executionContext.Setup(x => x.GetGitHubContext("workspace")).Returns(workspaceDirectory); _executionContext.Setup(x => x.GetGitHubContext("repository")).Returns("my-org/workflow-repo"); - // Setup a git repository + // Set up a git repository await CreateRepository(hostContext, workspaceDirectory, "https://github.com/my-org/workflow-repo"); // Create test files @@ -856,7 +856,7 @@ public async void MatcherFile_StepContainer() _executionContext.Setup(x => x.GetGitHubContext("workspace")).Returns(workspaceDirectory); _executionContext.Setup(x => x.GetGitHubContext("repository")).Returns("my-org/workflow-repo"); - // Setup a git repository + // Set up a git repository await CreateRepository(hostContext, workspaceDirectory, "https://github.com/my-org/workflow-repo"); // Create test files @@ -918,7 +918,7 @@ public async void MatcherFromPath() _executionContext.Setup(x => x.GetGitHubContext("workspace")).Returns(workspaceDirectory); _executionContext.Setup(x => x.GetGitHubContext("repository")).Returns("my-org/workflow-repo"); - // Setup a git repository + // Set up a git repository var repositoryPath = Path.Combine(workspaceDirectory, "workflow-repo"); await CreateRepository(hostContext, repositoryPath, "https://github.com/my-org/workflow-repo"); @@ -974,7 +974,7 @@ public async void MatcherDefaultFromPath() _executionContext.Setup(x => x.GetGitHubContext("workspace")).Returns(workspaceDirectory); _executionContext.Setup(x => x.GetGitHubContext("repository")).Returns("my-org/workflow-repo"); - // Setup a git repository + // Set up a git repository var repositoryPath = Path.Combine(workspaceDirectory, "workflow-repo"); await CreateRepository(hostContext, repositoryPath, "https://github.com/my-org/workflow-repo"); diff --git a/src/Test/L0/Worker/PipelineDirectoryManagerL0.cs b/src/Test/L0/Worker/PipelineDirectoryManagerL0.cs index faabf9ef89a..541ff5c52d2 100644 --- a/src/Test/L0/Worker/PipelineDirectoryManagerL0.cs +++ b/src/Test/L0/Worker/PipelineDirectoryManagerL0.cs @@ -198,10 +198,10 @@ public void UpdatesRepositoryDirectoryThrowOnInvalidPath() private TestHostContext Setup( [CallerMemberName] string name = "") { - // Setup the host context. + // Set up the host context. TestHostContext hc = new(this, name); - // Setup the execution context. + // Set up the execution context. _ec = new Mock(); _ec.Setup(x => x.Global).Returns(new GlobalContext()); @@ -217,11 +217,11 @@ private TestHostContext Setup( _workspaceOptions = new Pipelines.WorkspaceOptions(); - // Setup the tracking manager. + // Set up the tracking manager. _trackingManager = new Mock(); hc.SetSingleton(_trackingManager.Object); - // Setup the build directory manager. + // Set up the build directory manager. _pipelineDirectoryManager = new PipelineDirectoryManager(); _pipelineDirectoryManager.Initialize(hc); return hc; diff --git a/src/Test/L0/Worker/StepsRunnerL0.cs b/src/Test/L0/Worker/StepsRunnerL0.cs index a22dc618f8d..8a80a3dd233 100644 --- a/src/Test/L0/Worker/StepsRunnerL0.cs +++ b/src/Test/L0/Worker/StepsRunnerL0.cs @@ -585,7 +585,7 @@ public async Task StepContextConclusion() private Mock CreateStep(TestHostContext hc, TaskResult result, string condition, Boolean continueOnError = false, MappingToken env = null, string name = "Test", bool setOutput = false, string contextName = null) { - // Setup the step. + // Set up the step. var step = new Mock(); step.Setup(x => x.Condition).Returns(condition); step.Setup(x => x.ContinueOnError).Returns(new BooleanToken(null, null, null, continueOnError)); @@ -598,7 +598,7 @@ private Mock CreateStep(TestHostContext hc, TaskResult result, st ContextName = contextName ?? "Test" }); - // Setup the step execution context. + // Set up the step execution context. var stepContext = new Mock(); stepContext.SetupAllProperties(); stepContext.Setup(x => x.Global).Returns(() => _ec.Object.Global); diff --git a/src/Test/L0/Worker/TrackingManagerL0.cs b/src/Test/L0/Worker/TrackingManagerL0.cs index a016943371c..8c81d7b49ad 100644 --- a/src/Test/L0/Worker/TrackingManagerL0.cs +++ b/src/Test/L0/Worker/TrackingManagerL0.cs @@ -15,18 +15,18 @@ public sealed class TrackingManagerL0 public TestHostContext Setup([CallerMemberName] string name = "") { - // Setup the host context. + // Set up the host context. TestHostContext hc = new(this, name); // Create a random work path. _workFolder = hc.GetDirectory(WellKnownDirectory.Work); - // Setup the execution context. + // Set up the execution context. _ec = new Mock(); GitHubContext githubContext = new(); _ec.Setup(x => x.GetGitHubContext("repository")).Returns("actions/runner"); - // Setup the tracking manager. + // Se up the tracking manager. _trackingManager = new TrackingManager(); _trackingManager.Initialize(hc); From 8102c038bcca6157de15c18ff47f5caa5913ea3a Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:47:20 -0500 Subject: [PATCH 151/188] spelling: similar Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/Program.cs b/src/Runner.Worker/Program.cs index c4f23f943ec..f4f0056137d 100644 --- a/src/Runner.Worker/Program.cs +++ b/src/Runner.Worker/Program.cs @@ -25,7 +25,7 @@ public static async Task MainAsync(IHostContext context, string[] args) await WaitForDebugger(trace); } - // We may want to consider registering this handler in Worker.cs, similiar to the unloading/SIGTERM handler + // We may want to consider registering this handler in Worker.cs, similar to the unloading/SIGTERM handler //ITerminal registers a CTRL-C handler, which keeps the Runner.Worker process running //and lets the Runner.Listener handle gracefully the exit. var term = context.GetService(); From ac38e7991836bb57096e38cf9a2d3fb7672532b9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:37:25 -0500 Subject: [PATCH 152/188] spelling: simply Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/VssException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/VssException.cs b/src/Sdk/Common/Common/VssException.cs index 8cc96913c70..89b7c256d92 100644 --- a/src/Sdk/Common/Common/VssException.cs +++ b/src/Sdk/Common/Common/VssException.cs @@ -25,7 +25,7 @@ namespace GitHub.Services.Common public abstract class VssException : ApplicationException { /// - /// No-arg constructor that sumply defers to the base class. + /// No-arg constructor that simply defers to the base class. /// public VssException() : base() { From e733efc822d90db27428bb6a2f45ac8793864529 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 21:47:36 -0500 Subject: [PATCH 153/188] spelling: something Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTLogging/Logging/ValueEncoders.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/DTLogging/Logging/ValueEncoders.cs b/src/Sdk/DTLogging/Logging/ValueEncoders.cs index b3387abd36c..8369e7bf590 100644 --- a/src/Sdk/DTLogging/Logging/ValueEncoders.cs +++ b/src/Sdk/DTLogging/Logging/ValueEncoders.cs @@ -20,7 +20,7 @@ public static String Base64StringEscape(String value) // Base64 is 6 bits -> char // A byte is 8 bits - // When end user doing somthing like base64(user:password) + // When end user doing something like base64(user:password) // The length of the leading content will cause different base64 encoding result on the password // So we add base64(value shifted 1 and two bytes) as secret as well. // B1 B2 B3 B4 B5 B6 B7 From 0acefcf19943432c1830b40cc7707a7129296b32 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:36:54 -0500 Subject: [PATCH 154/188] spelling: specific Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Sdk/ProcessInvoker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Sdk/ProcessInvoker.cs b/src/Runner.Sdk/ProcessInvoker.cs index 7270faf5dc9..4069cad7e75 100644 --- a/src/Runner.Sdk/ProcessInvoker.cs +++ b/src/Runner.Sdk/ProcessInvoker.cs @@ -297,7 +297,7 @@ public async Task ExecuteAsync( _stopWatch = Stopwatch.StartNew(); _proc.Start(); - // Decrease invoked process priority, in platform specifc way, relative to parent + // Decrease invoked process priority, in platform specific way, relative to parent if (!highPriorityProcess) { DecreaseProcessPriority(_proc); From aa9f8583168756164563d1c5a64411e74d2120ca Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:11:14 -0500 Subject: [PATCH 155/188] spelling: step host Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/ActionRunner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/ActionRunner.cs b/src/Runner.Worker/ActionRunner.cs index c14d1c01690..a4f0ad136ce 100644 --- a/src/Runner.Worker/ActionRunner.cs +++ b/src/Runner.Worker/ActionRunner.cs @@ -153,7 +153,7 @@ Action.Reference is Pipelines.RepositoryPathReference repoAction && ExecutionContext.SetGitHubContext("action_ref", null); } - // Set up container stephost for running inside the container. + // Set up container step host for running inside the container. if (ExecutionContext.Global.Container != null) { // Make sure the required container is already created From 29806cce640869600a5058a976a0ab4cc5918ff0 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:37:11 -0500 Subject: [PATCH 156/188] spelling: successfully Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Configuration/RSAFileKeyManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Configuration/RSAFileKeyManager.cs b/src/Runner.Listener/Configuration/RSAFileKeyManager.cs index 532128a5700..b72335ae6c6 100644 --- a/src/Runner.Listener/Configuration/RSAFileKeyManager.cs +++ b/src/Runner.Listener/Configuration/RSAFileKeyManager.cs @@ -40,7 +40,7 @@ public RSA CreateKey() } else { - Trace.Warning("Unable to succesfully set permissions for RSA key parameters file {0}. Received exit code {1} from {2}", _keyFile, exitCode, chmodPath); + Trace.Warning("Unable to successfully set permissions for RSA key parameters file {0}. Received exit code {1} from {2}", _keyFile, exitCode, chmodPath); } } } From 6c138a9f07a9955bcc91b7b929297cad373c0b79 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:37:47 -0500 Subject: [PATCH 157/188] spelling: supported Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WorkflowParser/workflow-v1.0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WorkflowParser/workflow-v1.0.json b/src/Sdk/WorkflowParser/workflow-v1.0.json index 01601dcb5db..c1b625154b2 100644 --- a/src/Sdk/WorkflowParser/workflow-v1.0.json +++ b/src/Sdk/WorkflowParser/workflow-v1.0.json @@ -1465,7 +1465,7 @@ ] }, "workflow-run-activity": { - "description": "The types of workflow run activity that trigger the workflow. Suupported activity types: `completed`, `requested`, `in_progress`.", + "description": "The types of workflow run activity that trigger the workflow. Supported activity types: `completed`, `requested`, `in_progress`.", "one-of": [ "workflow-run-activity-type", "workflow-run-activity-types" From d02860b9ba125eb528cbdbd630826158c5051805 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:37:34 -0500 Subject: [PATCH 158/188] spelling: surrogate Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/ArgumentUtility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/ArgumentUtility.cs b/src/Sdk/Common/Common/Utility/ArgumentUtility.cs index 7f062ddd666..908ea28c13b 100644 --- a/src/Sdk/Common/Common/Utility/ArgumentUtility.cs +++ b/src/Sdk/Common/Common/Utility/ArgumentUtility.cs @@ -1238,7 +1238,7 @@ public static bool HasMismatchedSurrogates(string strIn) return true; } - // skip the low surogate + // skip the low surrogate i++; } } From c95606b07edce48b2330e7196850bed3c137a41a Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:38:52 -0500 Subject: [PATCH 159/188] spelling: synchronization Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Authentication/VssCredentials.cs | 2 +- src/Sdk/Common/Common/RawHttpMessageHandler.cs | 2 +- src/Sdk/Common/Common/VssHttpMessageHandler.cs | 2 +- src/Sdk/DTWebApi/WebApi/TaskAgentHttpClient.cs | 2 +- src/Sdk/WebApi/WebApi/RawHttpClientBase.cs | 2 +- src/Sdk/WebApi/WebApi/VssHttpClientBase.cs | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Sdk/Common/Common/Authentication/VssCredentials.cs b/src/Sdk/Common/Common/Authentication/VssCredentials.cs index d348e303f83..ddf5156c839 100644 --- a/src/Sdk/Common/Common/Authentication/VssCredentials.cs +++ b/src/Sdk/Common/Common/Authentication/VssCredentials.cs @@ -114,7 +114,7 @@ public VssCredentials( { // If we use TaskScheduler.FromCurrentSynchronizationContext() here and this is executing under the UI // thread, for example from an event handler in a WinForms applications, this TaskScheduler will capture - // the UI SyncrhonizationContext whose MaximumConcurrencyLevel is 1 and only has a single thread to + // the UI SynchronizationContext whose MaximumConcurrencyLevel is 1 and only has a single thread to // execute queued work. Then, if the UI thread invokes one of our synchronous methods that are just // wrappers that block until the asynchronous overload returns, and if the async Task queues work to // this TaskScheduler, like GitHub.Services.CommonGetTokenOperation.GetTokenAsync does, diff --git a/src/Sdk/Common/Common/RawHttpMessageHandler.cs b/src/Sdk/Common/Common/RawHttpMessageHandler.cs index e80e6a74727..2f83d3a0281 100644 --- a/src/Sdk/Common/Common/RawHttpMessageHandler.cs +++ b/src/Sdk/Common/Common/RawHttpMessageHandler.cs @@ -167,7 +167,7 @@ protected override async Task SendAsync( await BufferRequestContentAsync(request, tokenSource.Token).ConfigureAwait(false); // ConfigureAwait(false) enables the continuation to be run outside any captured - // SyncronizationContext (such as ASP.NET's) which keeps things from deadlocking... + // SynchronizationContext (such as ASP.NET's) which keeps things from deadlocking... response = await m_messageInvoker.SendAsync(request, tokenSource.Token).ConfigureAwait(false); responseWrapper = new HttpResponseMessageWrapper(response); diff --git a/src/Sdk/Common/Common/VssHttpMessageHandler.cs b/src/Sdk/Common/Common/VssHttpMessageHandler.cs index f48eec41af8..43eb07620a8 100644 --- a/src/Sdk/Common/Common/VssHttpMessageHandler.cs +++ b/src/Sdk/Common/Common/VssHttpMessageHandler.cs @@ -212,7 +212,7 @@ protected override async Task SendAsync( traceInfo?.TraceBufferedRequestTime(); // ConfigureAwait(false) enables the continuation to be run outside any captured - // SyncronizationContext (such as ASP.NET's) which keeps things from deadlocking... + // SynchronizationContext (such as ASP.NET's) which keeps things from deadlocking... response = await m_messageInvoker.SendAsync(request, tokenSource.Token).ConfigureAwait(false); diff --git a/src/Sdk/DTWebApi/WebApi/TaskAgentHttpClient.cs b/src/Sdk/DTWebApi/WebApi/TaskAgentHttpClient.cs index c97fea0a4d1..5252a2e581c 100644 --- a/src/Sdk/DTWebApi/WebApi/TaskAgentHttpClient.cs +++ b/src/Sdk/DTWebApi/WebApi/TaskAgentHttpClient.cs @@ -186,7 +186,7 @@ protected async Task SendAsync( } //ConfigureAwait(false) enables the continuation to be run outside - //any captured SyncronizationContext (such as ASP.NET's) which keeps things + //any captured SynchronizationContext (such as ASP.NET's) which keeps things //from deadlocking... using (HttpResponseMessage response = await this.SendAsync(message, userState, cancellationToken).ConfigureAwait(false)) { diff --git a/src/Sdk/WebApi/WebApi/RawHttpClientBase.cs b/src/Sdk/WebApi/WebApi/RawHttpClientBase.cs index 23c51472487..9db188b5060 100644 --- a/src/Sdk/WebApi/WebApi/RawHttpClientBase.cs +++ b/src/Sdk/WebApi/WebApi/RawHttpClientBase.cs @@ -176,7 +176,7 @@ protected async Task> SendAsync( CancellationToken cancellationToken = default(CancellationToken)) { //ConfigureAwait(false) enables the continuation to be run outside - //any captured SyncronizationContext (such as ASP.NET's) which keeps things + //any captured SynchronizationContext (such as ASP.NET's) which keeps things //from deadlocking... using (HttpResponseMessage response = await this.SendAsync(message, userState, cancellationToken).ConfigureAwait(false)) { diff --git a/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs b/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs index 4f1e9ad3092..eaa43ccca5c 100644 --- a/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs +++ b/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs @@ -745,7 +745,7 @@ protected async Task SendAsync( CancellationToken cancellationToken = default(CancellationToken)) { //ConfigureAwait(false) enables the continuation to be run outside - //any captured SyncronizationContext (such as ASP.NET's) which keeps things + //any captured SynchronizationContext (such as ASP.NET's) which keeps things //from deadlocking... using (HttpResponseMessage response = await this.SendAsync(message, userState, cancellationToken).ConfigureAwait(false)) { @@ -849,7 +849,7 @@ protected async Task SendAsync( message.Options.Set(new HttpRequestOptionsKey(VssHttpRequestSettings.HttpCompletionOptionPropertyName), completionOption); //ConfigureAwait(false) enables the continuation to be run outside - //any captured SyncronizationContext (such as ASP.NET's) which keeps things + //any captured SynchronizationContext (such as ASP.NET's) which keeps things //from deadlocking... HttpResponseMessage response = await Client.SendAsync(message, completionOption, cancellationToken).ConfigureAwait(false); From 2f9bbf8b73112f11882fcc85294a0e2044677a11 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:58:10 -0500 Subject: [PATCH 160/188] spelling: than Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/0297-base64-masking-trailing-characters.md | 2 +- docs/adrs/1144-composite-actions.md | 2 +- docs/adrs/1438-conditional-composite.md | 6 +++--- docs/adrs/1751-runner-job-hooks.md | 2 +- docs/adrs/1891-container-hooks.md | 6 +++--- src/Runner.Worker/Handlers/Handler.cs | 2 +- src/Sdk/WebApi/WebApi/WrappedException.cs | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/adrs/0297-base64-masking-trailing-characters.md b/docs/adrs/0297-base64-masking-trailing-characters.md index 4bd072311cf..af288739951 100644 --- a/docs/adrs/0297-base64-masking-trailing-characters.md +++ b/docs/adrs/0297-base64-masking-trailing-characters.md @@ -43,6 +43,6 @@ This will result in us only revealing length or bit information when a prefix or ## Consequences -- In the case where a secret has a prefix or suffix added before base64 encoding, we may now reveal up to 20 bits of information and the length of the original string modulo 3, rather then the original 16 bits and no length information +- In the case where a secret has a prefix or suffix added before base64 encoding, we may now reveal up to 20 bits of information and the length of the original string modulo 3, rather than the original 16 bits and no length information - Secrets with a suffix appended before encoding will now be masked across the board. Previously it was only masked if it was a multiple of 3 characters - Performance will suffer in a negligible way diff --git a/docs/adrs/1144-composite-actions.md b/docs/adrs/1144-composite-actions.md index 791be6ddc21..223b2cd39da 100644 --- a/docs/adrs/1144-composite-actions.md +++ b/docs/adrs/1144-composite-actions.md @@ -80,7 +80,7 @@ We want to support the `uses` steps from workflows in composite actions, includi ### Defaults - Not being considered at this time -- In actions, we have the idea of [defaults](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaultsrun) , which allow you to specify a shell and working directory in one location, rather then on each step. +- In actions, we have the idea of [defaults](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaultsrun) , which allow you to specify a shell and working directory in one location, rather than on each step. - However, `shell` is currently required in composite run steps - In regular run steps, it is optional, and defaults to a different value based on the OS. - We want to prioritize the right experience for the consumer, and make the action author continue to explicitly set these values. We can consider improving this experience in the future. diff --git a/docs/adrs/1438-conditional-composite.md b/docs/adrs/1438-conditional-composite.md index c95405697f2..ad5728f02a6 100644 --- a/docs/adrs/1438-conditional-composite.md +++ b/docs/adrs/1438-conditional-composite.md @@ -12,7 +12,7 @@ However, one of the [most requested features](https://github.com/actions/runner/ ### Goals - We want to keep consistent with current behavior - We want to support conditionals via the `if` keyword -- Our built in functions like `success` should be implementable without calling them, for example you can do `job.status == success` rather then `success()` currently. +- Our built in functions like `success` should be implementable without calling them, for example you can do `job.status == success` rather than `success()` currently. ### How does composite currently work? @@ -32,7 +32,7 @@ Lets formalize that concept into a "real" idea. - We will add an `action_status` field to the github context to mimic the [job's context status](https://docs.github.com/en/actions/learn-github-actions/contexts#job-context). - We have an existing concept that does this `action_path` which is only set for composite actions on the github context. -- In a composite action during a main step, the `success()` function will check if `action_status == success`, rather then `job_status == success`. Failure will work the same way. +- In a composite action during a main step, the `success()` function will check if `action_status == success`, rather than `job_status == success`. Failure will work the same way. - Pre and post steps in composite actions will not change, they will continue to check the job status. @@ -57,7 +57,7 @@ For example, lets imagine a scenario with a simple nested composite action The child composite actions steps should run in this example, the child composite action has not yet failed, so it should run all steps until a step fails. This is consistent with how a composite action currently works in production if the main job fails but a composite action is invoked with `if:always()` or `if: failure()` ### Other options explored -We could add the `current_step_status` to the job context rather then `__status` to the steps context, however this comes with two major downsides: +We could add the `current_step_status` to the job context rather than `__status` to the steps context, however this comes with two major downsides: - We need to support the field for every type of step, because its non trivial to remove a field from the job context once it has been added (its readonly) - For all actions besides composite it would only every be `success` - Its weird to have a `current_step` value on the job context diff --git a/docs/adrs/1751-runner-job-hooks.md b/docs/adrs/1751-runner-job-hooks.md index 4584a1f32df..6da16e28cc0 100644 --- a/docs/adrs/1751-runner-job-hooks.md +++ b/docs/adrs/1751-runner-job-hooks.md @@ -13,7 +13,7 @@ This feature is mainly intended for self hosted runner administrators. **What we don't think this will solve** - Policy features that require certain steps run at the beginning or end of all jobs - - This would be better solved to in a central place in settings, rather then decentralized on each runner. + - This would be better solved to in a central place in settings, rather than decentralized on each runner. - The Proposed `Notification Hooks for Runners` is limited to self hosted runners, we don't believe Policy features should be - Reuse scenarios between jobs are covered by [composite actions](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action) and [reusable workflows](https://docs.github.com/en/actions/using-workflows/reusing-workflows) - Security applications, security should be handled on the policy side on the server, not decentralized on each runner diff --git a/docs/adrs/1891-container-hooks.md b/docs/adrs/1891-container-hooks.md index d9e393219fa..2c7f8ab9958 100644 --- a/docs/adrs/1891-container-hooks.md +++ b/docs/adrs/1891-container-hooks.md @@ -7,7 +7,7 @@ # Background [Job Hooks](https://github.com/actions/runner/blob/main/docs/adrs/1751-runner-job-hooks.md) have given users the ability to customize how their self hosted runners run a job. -Users also want the ability to customize how they run containers during the scope of the job, rather then being locked into the docker implementation we have in the runner. They may want to use podman, kubernetes, or even change the docker commands we run. +Users also want the ability to customize how they run containers during the scope of the job, rather than being locked into the docker implementation we have in the runner. They may want to use podman, kubernetes, or even change the docker commands we run. We should give them that option, and publish examples how they can create their own hooks. # Guiding Principles @@ -88,14 +88,14 @@ We will not version these hooks at launch. If needed, we can always major versio The [job context](https://docs.github.com/en/actions/learn-github-actions/contexts#example-contents-of-the-job-context) currently has a variety of fields that correspond to containers. We should consider allowing hooks to populate new fields in the job context. That is out of scope for this original release however. ## Hooks -Hooks are to be implemented at a very high level, and map to actions the runner does, rather then specific docker actions like `docker build` or `docker create`. By mapping to runner actions, we create a very extensible framework that is flexible enough to solve any user concerns in the future. By providing first party implementations, we give users easy starting points to customize specific hooks (like `docker build`) without having to write full blown solutions. +Hooks are to be implemented at a very high level, and map to actions the runner does, rather than specific docker actions like `docker build` or `docker create`. By mapping to runner actions, we create a very extensible framework that is flexible enough to solve any user concerns in the future. By providing first party implementations, we give users easy starting points to customize specific hooks (like `docker build`) without having to write full blown solutions. The other would be to provide hooks that mirror every docker call we make, and expose more hooks to help support k8s users, with the expectation that users may have to no-op on multiple hooks if they don't correspond to our use case. Why we don't want to go that way - It feels clunky, users need to understand which hooks they need to implement and which they can ignore, which isn't a great UX - It doesn't scale well, I don't want to build a solution where we may need to add more hooks, by mapping to runner actions, updating hooks is a painful experience for users -- Its overwhelming, its easier to tell users to build 4 hooks and track data themselves, rather then 16 hooks where the runner needs certain information and then needs to provide that information back into each hook. If we expose `Container Create`, you need to return the container you created, then we do `container run` which uses that container. If we just give you an image and say create and run this container, you don't need to store the container id in the runner, and it maps better to k8s scenarios where we don't really have container ids. +- Its overwhelming, its easier to tell users to build 4 hooks and track data themselves, rather than 16 hooks where the runner needs certain information and then needs to provide that information back into each hook. If we expose `Container Create`, you need to return the container you created, then we do `container run` which uses that container. If we just give you an image and say create and run this container, you don't need to store the container id in the runner, and it maps better to k8s scenarios where we don't really have container ids. ### Prepare_job hook The `prepare_job` hook is called when a job is started. We pass in any job or service containers the job has. We expect that you: diff --git a/src/Runner.Worker/Handlers/Handler.cs b/src/Runner.Worker/Handlers/Handler.cs index 1ad30037949..05622a17186 100644 --- a/src/Runner.Worker/Handlers/Handler.cs +++ b/src/Runner.Worker/Handlers/Handler.cs @@ -29,7 +29,7 @@ public abstract class Handler : RunnerService { #if OS_WINDOWS // In windows OS the maximum supported size of an environment variable value is 32k. - // You can set environment variable greater then 32K, but that variable will not be able to read in node.exe. + // You can set environment variable greater than 32K, but that variable will not be able to read in node.exe. private const int _environmentVariableMaximumSize = 32766; #endif diff --git a/src/Sdk/WebApi/WebApi/WrappedException.cs b/src/Sdk/WebApi/WebApi/WrappedException.cs index bb12d208909..d1c68cd8be0 100644 --- a/src/Sdk/WebApi/WebApi/WrappedException.cs +++ b/src/Sdk/WebApi/WebApi/WrappedException.cs @@ -494,7 +494,7 @@ private static void UpdateExceptionAttributeMappingCache() Tuple cachedValue; // Check if the TypeName already exists in cache and add it if not. if it does exist, update if it has a higher ExclusiveMaxApiVersion. - // (In theory an old exception could be mapped to more then one type in the case we want the latest server + // (In theory an old exception could be mapped to more than one type in the case we want the latest server // to send different older types to different versions of older clients. This method is used only on client when converting a type // from an older server, so we want the latest mapping of the older type.) if (!s_exceptionsWithAttributeMapping.TryGetValue(attribute.TypeName, out cachedValue) || attribute.ExclusiveMaxApiVersion > cachedValue.Item1) From fe92a230401d381e4bc1e1fdb677c7a1b1328e51 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:14:04 -0500 Subject: [PATCH 161/188] spelling: the type of the field to which the path maps Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Contracts/Patch/PatchOperation.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/WebApi/WebApi/Contracts/Patch/PatchOperation.cs b/src/Sdk/WebApi/WebApi/Contracts/Patch/PatchOperation.cs index 433100c77d9..7ac9681609d 100644 --- a/src/Sdk/WebApi/WebApi/Contracts/Patch/PatchOperation.cs +++ b/src/Sdk/WebApi/WebApi/Contracts/Patch/PatchOperation.cs @@ -209,7 +209,7 @@ protected static object ValidateAndGetValue(JsonPatchOperation operation) } /// - /// Gets The type of the field the path maps to. + /// Gets the type of the field to which the path maps. /// /// The type of the parent object. /// The path to evaluate. @@ -220,7 +220,7 @@ private static Type GetType(Type type, string path) } /// - /// Gets The type of the field the path maps to. + /// Gets the type of the field to which the path maps. /// /// The type of the parent object. /// The path enumeration to evaluate. From c4bf2db21a412dc9b56eaa529c12ee0b81731ce7 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:08:46 -0500 Subject: [PATCH 162/188] spelling: the Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/JobExtension.cs | 2 +- src/Sdk/WorkflowParser/Conversion/PermissionsHelper.cs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Runner.Worker/JobExtension.cs b/src/Runner.Worker/JobExtension.cs index 39051c08e69..1289275f4a2 100644 --- a/src/Runner.Worker/JobExtension.cs +++ b/src/Runner.Worker/JobExtension.cs @@ -407,7 +407,7 @@ public async Task> InitializeJob(IExecutionContext jobContext, Pipel if (snapshotRequest != null) { var snapshotOperationProvider = HostContext.GetService(); - // Check that that runner is capable of taking a snapshot + // Check that the runner is capable of taking a snapshot snapshotOperationProvider.RunSnapshotPreflightChecks(context); // Add post job step to write snapshot file diff --git a/src/Sdk/WorkflowParser/Conversion/PermissionsHelper.cs b/src/Sdk/WorkflowParser/Conversion/PermissionsHelper.cs index b5340895087..76c7eb6bb0d 100644 --- a/src/Sdk/WorkflowParser/Conversion/PermissionsHelper.cs +++ b/src/Sdk/WorkflowParser/Conversion/PermissionsHelper.cs @@ -1,4 +1,4 @@ -#nullable enable +#nullable enable using System; using System.Linq; @@ -17,7 +17,7 @@ internal static class PermissionsHelper /// The permissions within the reusable workflow file. These may be defined either at the root of the file, or may be defined on a job within the file. /// (Optional) The max permissions explicitly allowed by the caller /// The default permissions policy - /// Indicates whether the reusable workflow exists within the same trust boundary (e.g. enterprise/organization) as a the root workflow + /// Indicates whether the reusable workflow exists within the same trust boundary (e.g. enterprise/organization) as the root workflow internal static void ValidateEmbeddedPermissions( TemplateContext context, ReusableWorkflowJob workflowJob, @@ -76,4 +76,4 @@ private static Permissions CreatePermissionsFromPolicy( } } } -} \ No newline at end of file +} From fea6a815a09a9b015f5b6f5eecc97a8656f29021 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:11:33 -0500 Subject: [PATCH 163/188] spelling: then Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Sdk/Util/IOUtil.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Sdk/Util/IOUtil.cs b/src/Runner.Sdk/Util/IOUtil.cs index f381d6a5268..4f933e6a8f1 100644 --- a/src/Runner.Sdk/Util/IOUtil.cs +++ b/src/Runner.Sdk/Util/IOUtil.cs @@ -260,7 +260,7 @@ public static void MoveDirectory(string sourceDir, string targetDir, string stag /// /// Given a path and directory, return the path relative to the directory. If the path is not - /// under the directory the path is returned un modified. Examples: + /// under the directory then the path is returned un modified. Examples: /// MakeRelative(@"d:\src\project\foo.cpp", @"d:\src") -> @"project\foo.cpp" /// MakeRelative(@"d:\src\project\foo.cpp", @"d:\specs") -> @"d:\src\project\foo.cpp" /// MakeRelative(@"d:\src\project\foo.cpp", @"d:\src\proj") -> @"d:\src\project\foo.cpp" From 75483f049964230d1ae0e68c64aab35c753008e3 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:40:10 -0500 Subject: [PATCH 164/188] spelling: timeout Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/JobDispatcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index 94baac6b578..d9ec93fb743 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -678,7 +678,7 @@ await processChannel.SendAsync( // worker haven't exit within cancellation timeout. if (completedTask != workerProcessTask) { - Trace.Info($"worker process for job {message.JobId} haven't exit within cancellation timout, kill running worker."); + Trace.Info($"worker process for job {message.JobId} haven't exit within cancellation timeout, kill running worker."); workerProcessCancelTokenSource.Cancel(); try { From 0301a3d2d05290308788c3539b13b91dc8cc0ca9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Mon, 9 Feb 2026 19:08:43 -0500 Subject: [PATCH 165/188] spelling: to remove runner running as windows Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../Configuration/WindowsServiceControlManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Configuration/WindowsServiceControlManager.cs b/src/Runner.Listener/Configuration/WindowsServiceControlManager.cs index 085aaffc90d..b374239b9f7 100644 --- a/src/Runner.Listener/Configuration/WindowsServiceControlManager.cs +++ b/src/Runner.Listener/Configuration/WindowsServiceControlManager.cs @@ -126,7 +126,7 @@ public void UnconfigureService() if (!_windowsServiceHelper.IsRunningInElevatedMode()) { Trace.Error("Needs Administrator privileges for unconfigure windows service runner."); - throw new SecurityException("Needs Administrator privileges for unconfiguring runner that running as windows service."); + throw new SecurityException("Needs Administrator privileges to remove runner running as Windows service."); } string serviceConfigPath = HostContext.GetConfigFile(WellKnownConfigFile.Service); From 78c30658cf1a11d3b95251a442d3aec54d088b98 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:05:03 -0500 Subject: [PATCH 166/188] spelling: to Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Sdk/ProcessInvoker.cs | 12 ++++++------ src/Sdk/Common/Common/Utility/UriUtility.cs | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Runner.Sdk/ProcessInvoker.cs b/src/Runner.Sdk/ProcessInvoker.cs index 4069cad7e75..25af0a6f283 100644 --- a/src/Runner.Sdk/ProcessInvoker.cs +++ b/src/Runner.Sdk/ProcessInvoker.cs @@ -704,11 +704,11 @@ private void WindowsKillProcessTree() } Trace.Verbose($"Start killing process tree of process '{pid.Value}'."); - Stack processesNeedtoKill = new Stack(); - processesNeedtoKill.Push(new ProcessTerminationInfo(pid.Value, false)); - while (processesNeedtoKill.Count() > 0) + Stack processesToKill = new Stack(); + processesToKill.Push(new ProcessTerminationInfo(pid.Value, false)); + while (processesToKill.Count() > 0) { - ProcessTerminationInfo procInfo = processesNeedtoKill.Pop(); + ProcessTerminationInfo procInfo = processesToKill.Pop(); List childProcessesIds = new List(); if (!procInfo.ChildPidExpanded) { @@ -719,11 +719,11 @@ private void WindowsKillProcessTree() if (childProcessesIds.Count > 0) { Trace.Info($"Need kill all child processes trees before kill process '{procInfo.Pid}'."); - processesNeedtoKill.Push(new ProcessTerminationInfo(procInfo.Pid, true)); + processesToKill.Push(new ProcessTerminationInfo(procInfo.Pid, true)); foreach (var childPid in childProcessesIds) { Trace.Info($"Child process '{childPid}' needs be killed first."); - processesNeedtoKill.Push(new ProcessTerminationInfo(childPid, false)); + processesToKill.Push(new ProcessTerminationInfo(childPid, false)); } } else diff --git a/src/Sdk/Common/Common/Utility/UriUtility.cs b/src/Sdk/Common/Common/Utility/UriUtility.cs index 4ade8166a57..0b8b8850b4c 100644 --- a/src/Sdk/Common/Common/Utility/UriUtility.cs +++ b/src/Sdk/Common/Common/Utility/UriUtility.cs @@ -176,7 +176,7 @@ public static string GetInvariantAbsoluteUri(Uri uri) /// If true, any leading forward slashes on the relative path argument are discarded. /// The base Uri with the relativePath appended to it. /// - /// This is intended to be an alternative the Uri constructor, which can remove several path segments from your arguments. For example: + /// This is intended to be an alternative to the Uri constructor, which can remove several path segments from your arguments. For example: /// /// new Uri(new Uri("http://localhost/abc/efg/"), "/Hello/World") returns http://localhost/Hello/World ("/abc/efg/" removed due to absolute path argument) /// new Uri(new Uri("http://localhost/dir1/dir2"), "hi.txt") returns http://localhost/dir1/hi.txt ("dir2" removed due to lack of trailing slash) @@ -197,7 +197,7 @@ public static Uri Combine(string baseUri, String relativePath, Boolean treatAbso /// If true, any leading forward slashes on the relative path argument are discarded. /// The base Uri with the relativePath appended to it. /// - /// This is intended to be an alternative the Uri constructor, which can remove several path segments from your arguments. For example: + /// This is intended to be an alternative to the Uri constructor, which can remove several path segments from your arguments. For example: /// /// new Uri(new Uri("http://localhost/abc/efg/"), "/Hello/World") returns http://localhost/Hello/World ("/abc/efg/" removed due to absolute path argument) /// new Uri(new Uri("http://localhost/dir1/dir2"), "hi.txt") returns http://localhost/dir1/hi.txt ("dir2" removed due to lack of trailing slash) From 0c873fe7d4eb836c7bcd023b7e0eb23bf3fe0308 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:39:51 -0500 Subject: [PATCH 167/188] spelling: todo Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/UriUtility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/UriUtility.cs b/src/Sdk/Common/Common/Utility/UriUtility.cs index 0b8b8850b4c..7cf3ded3259 100644 --- a/src/Sdk/Common/Common/Utility/UriUtility.cs +++ b/src/Sdk/Common/Common/Utility/UriUtility.cs @@ -490,7 +490,7 @@ public static bool IsSameMachine(string hostname1, string hostname2) // A machine name could not be resolved, for the purposes of this method, // assume that machines are not the same and ignore the error - // ToDo: tedchamb come back to this + // TODO: tedchamb come back to this //TeamFoundationTrace.TraceException(ex); } From 4a8a98974ee58f6fdfb9e39f56645e204d308776 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 07:57:01 -0500 Subject: [PATCH 168/188] spelling: two Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1751-runner-job-hooks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/adrs/1751-runner-job-hooks.md b/docs/adrs/1751-runner-job-hooks.md index 6da16e28cc0..afcc70ef0fc 100644 --- a/docs/adrs/1751-runner-job-hooks.md +++ b/docs/adrs/1751-runner-job-hooks.md @@ -19,7 +19,7 @@ This feature is mainly intended for self hosted runner administrators. - Security applications, security should be handled on the policy side on the server, not decentralized on each runner ## Hooks -- We will expose 2 variables that users can set to enable hooks +- We will expose two variables that users can set to enable hooks - `ACTIONS_RUNNER_HOOK_JOB_STARTED` - `ACTIONS_RUNNER_HOOK_JOB_COMPLETED` @@ -63,7 +63,7 @@ These are **synchronous** hooks, so they will block job execution while they are - There will be no support for `continue-on-error` ## Key Decisions -- We will expose 2 variables that users can set to enable hooks +- We will expose two variables that users can set to enable hooks - `ACTIONS_RUNNER_HOOK_JOB_STARTED` - `ACTIONS_RUNNER_HOOK_JOB_COMPLETED` - Users can set these variables to the path of a `.sh` or `.ps1` file, which we will execute when Jobs are started or completed. From 1cfe5eda7ef82ace2535c6e2076862d56c34f769 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 09:00:56 -0500 Subject: [PATCH 169/188] spelling: typescript Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Misc/expressionFunc/hashFiles/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Misc/expressionFunc/hashFiles/README.md b/src/Misc/expressionFunc/hashFiles/README.md index 0f05b216154..ddc99e073ec 100644 --- a/src/Misc/expressionFunc/hashFiles/README.md +++ b/src/Misc/expressionFunc/hashFiles/README.md @@ -1,3 +1,3 @@ To compile this package (output will be stored in `Misc/layoutbin`) run `npm install && npm run prepare && npm run all`. -When you commit changes to the JSON or Typescript file, the javascript binary will be automatically re-compiled and added to the latest commit. +When you commit changes to the JSON or TypeScript file, the javascript binary will be automatically re-compiled and added to the latest commit. From 5cafc98a4c776229281178583d4799794f2d9d1f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:11:58 -0500 Subject: [PATCH 170/188] spelling: unattended Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- scripts/create-latest-svc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/create-latest-svc.sh b/scripts/create-latest-svc.sh index 0646381abf1..e0c896954dd 100755 --- a/scripts/create-latest-svc.sh +++ b/scripts/create-latest-svc.sh @@ -171,7 +171,7 @@ sudo chown -R $svc_user ./runner pushd ./runner #--------------------------------------- -# Unattend config +# Unattended config #--------------------------------------- runner_url="https://github.com/${runner_scope}" if [ -n "${ghe_hostname}" ]; then From 3c716636412c5c5a7d7aa0bbfc713f5f04fc272c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:37:22 -0500 Subject: [PATCH 171/188] spelling: uninstall Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/Configuration/ConfigurationManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/Configuration/ConfigurationManager.cs b/src/Runner.Listener/Configuration/ConfigurationManager.cs index fb707a8631b..820e34d57c5 100644 --- a/src/Runner.Listener/Configuration/ConfigurationManager.cs +++ b/src/Runner.Listener/Configuration/ConfigurationManager.cs @@ -540,7 +540,7 @@ public async Task UnconfigureAsync(CommandSettings command) _term.WriteLine(); _term.WriteSuccessMessage("Runner service removed"); #else - // unconfig systemd or macOS service first + // uninstall systemd or macOS service first throw new Exception("Uninstall service first"); #endif } From b1ecf688bc9ae29fe1c23de802399b8c94060ad4 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:11:38 -0500 Subject: [PATCH 172/188] spelling: unmodified Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Sdk/Util/IOUtil.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Sdk/Util/IOUtil.cs b/src/Runner.Sdk/Util/IOUtil.cs index 4f933e6a8f1..7e07c0b8096 100644 --- a/src/Runner.Sdk/Util/IOUtil.cs +++ b/src/Runner.Sdk/Util/IOUtil.cs @@ -260,7 +260,7 @@ public static void MoveDirectory(string sourceDir, string targetDir, string stag /// /// Given a path and directory, return the path relative to the directory. If the path is not - /// under the directory then the path is returned un modified. Examples: + /// under the directory then the path is returned unmodified. Examples: /// MakeRelative(@"d:\src\project\foo.cpp", @"d:\src") -> @"project\foo.cpp" /// MakeRelative(@"d:\src\project\foo.cpp", @"d:\specs") -> @"d:\src\project\foo.cpp" /// MakeRelative(@"d:\src\project\foo.cpp", @"d:\src\proj") -> @"d:\src\project\foo.cpp" From fcc1cc309430c7712fa3893892619d00e2671e90 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:41:51 -0500 Subject: [PATCH 173/188] spelling: unnecessarily Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/DTExpressions2/Expressions2/Sdk/Literal.cs | 2 +- src/Sdk/DTExpressions2/Expressions2/Sdk/Wildcard.cs | 2 +- src/Sdk/Expressions/Sdk/Literal.cs | 2 +- src/Sdk/Expressions/Sdk/Wildcard.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Sdk/DTExpressions2/Expressions2/Sdk/Literal.cs b/src/Sdk/DTExpressions2/Expressions2/Sdk/Literal.cs index 75e65f62f0b..052e96b7de5 100644 --- a/src/Sdk/DTExpressions2/Expressions2/Sdk/Literal.cs +++ b/src/Sdk/DTExpressions2/Expressions2/Sdk/Literal.cs @@ -18,7 +18,7 @@ public Literal(Object val) public Object Value { get; } // Prevent the value from being stored on the evaluation context. - // This avoids unneccessarily duplicating the value in memory. + // This avoids unnecessarily duplicating the value in memory. protected sealed override Boolean TraceFullyRealized => false; internal sealed override String ConvertToExpression() diff --git a/src/Sdk/DTExpressions2/Expressions2/Sdk/Wildcard.cs b/src/Sdk/DTExpressions2/Expressions2/Sdk/Wildcard.cs index af11c58ea07..1470b1d2061 100644 --- a/src/Sdk/DTExpressions2/Expressions2/Sdk/Wildcard.cs +++ b/src/Sdk/DTExpressions2/Expressions2/Sdk/Wildcard.cs @@ -7,7 +7,7 @@ namespace GitHub.DistributedTask.Expressions2.Sdk public sealed class Wildcard : ExpressionNode { // Prevent the value from being stored on the evaluation context. - // This avoids unneccessarily duplicating the value in memory. + // This avoids unnecessarily duplicating the value in memory. protected sealed override Boolean TraceFullyRealized => false; internal sealed override String ConvertToExpression() diff --git a/src/Sdk/Expressions/Sdk/Literal.cs b/src/Sdk/Expressions/Sdk/Literal.cs index d01a33be2ef..6ad275fa0e1 100644 --- a/src/Sdk/Expressions/Sdk/Literal.cs +++ b/src/Sdk/Expressions/Sdk/Literal.cs @@ -18,7 +18,7 @@ public Literal(Object val) public Object Value { get; } // Prevent the value from being stored on the evaluation context. - // This avoids unneccessarily duplicating the value in memory. + // This avoids unnecessarily duplicating the value in memory. protected sealed override Boolean TraceFullyExpanded => false; public sealed override String ConvertToExpression() diff --git a/src/Sdk/Expressions/Sdk/Wildcard.cs b/src/Sdk/Expressions/Sdk/Wildcard.cs index ec408daa385..94a134f6617 100644 --- a/src/Sdk/Expressions/Sdk/Wildcard.cs +++ b/src/Sdk/Expressions/Sdk/Wildcard.cs @@ -7,7 +7,7 @@ namespace GitHub.Actions.Expressions.Sdk public sealed class Wildcard : ExpressionNode { // Prevent the value from being stored on the evaluation context. - // This avoids unneccessarily duplicating the value in memory. + // This avoids unnecessarily duplicating the value in memory. protected sealed override Boolean TraceFullyExpanded => false; public sealed override String ConvertToExpression() From 98ebdc5a273a6063e8e34953766d5faad99552bc Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:13:02 -0500 Subject: [PATCH 174/188] spelling: unnecessary Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/WrappedException.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/WrappedException.cs b/src/Sdk/WebApi/WebApi/WrappedException.cs index d1c68cd8be0..16d342ad4aa 100644 --- a/src/Sdk/WebApi/WebApi/WrappedException.cs +++ b/src/Sdk/WebApi/WebApi/WrappedException.cs @@ -408,7 +408,7 @@ private static Assembly ResolveAssembly(AssemblyName asmName) // DEVNOTE: Do not tack-on the version information, instead let the // assembly load without it so that it may resolve to the appropriate. // Otherwise, translation down the stack may fail due to version mismatch - // and that ends up creating un-necessary retries on certain user defined exceptions. + // and that ends up creating unnecessary retries on certain user defined exceptions. // newName.Version = Assembly.GetExecutingAssembly().GetName().Version; newName.SetPublicKeyToken(asmName.GetPublicKeyToken()); From 8597d594b39fd8ed6ff97fa3d835fc83b7712c59 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:42:06 -0500 Subject: [PATCH 175/188] spelling: unsanitized Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- docs/adrs/1891-container-hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adrs/1891-container-hooks.md b/docs/adrs/1891-container-hooks.md index 2c7f8ab9958..ac56839d9dc 100644 --- a/docs/adrs/1891-container-hooks.md +++ b/docs/adrs/1891-container-hooks.md @@ -46,7 +46,7 @@ All text written to stdout or stderr should appear in the job or step logs. With 1. Wrapping the json in some unique tag and processing it like we do commands 2. Writing to a file -For 1, users typically view logging information as a safe action, so we worry someone accidentally logging unsantized information and causing unexpected or insecure behavior. We eventually plan to move off of stdout/stderr style commands in favor of a runner cli. +For 1, users typically view logging information as a safe action, so we worry someone accidentally logging unsanitized information and causing unexpected or insecure behavior. We eventually plan to move off of stdout/stderr style commands in favor of a runner cli. Investing in this area doesn't make a lot of sense at this time. While writing to a file to communicate isn't the most ideal pattern, its an existing pattern in the runner and serves us well, so lets reuse it. From dca185fbaff5d11ff595669f08d7d817dec891f4 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 25 Jan 2026 00:22:32 -0500 Subject: [PATCH 176/188] spelling: until locked-until Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Listener/JobDispatcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index d9ec93fb743..1d3114dc59f 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -917,7 +917,7 @@ private async Task RenewJobRequestAsync(IRunnerServer runnerServer, int poolId, } else { - // retry till reach lockeduntil + 5 mins extra buffer. + // retry until locked-until + 5 mins extra buffer. remainingTime = request.LockedUntil.Value + TimeSpan.FromMinutes(5) - DateTime.UtcNow; } From 2d8727b51eb3b8d39c783b58a6edd407a4e6ca52 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:12:27 -0500 Subject: [PATCH 177/188] spelling: unzip Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/ActionManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/ActionManager.cs b/src/Runner.Worker/ActionManager.cs index 17363577ca2..51922cd24ee 100644 --- a/src/Runner.Worker/ActionManager.cs +++ b/src/Runner.Worker/ActionManager.cs @@ -855,7 +855,7 @@ private async Task DownloadRepositoryActionAsync(IExecutionContext executionCont } catch (InvalidDataException e) { - throw new InvalidActionArchiveException($"Can't un-zip archive file: {archiveFile}. action being checked out: {downloadInfo.NameWithOwner}@{downloadInfo.Ref}. error: {e}."); + throw new InvalidActionArchiveException($"Can't unzip archive file: {archiveFile}. action being checked out: {downloadInfo.NameWithOwner}@{downloadInfo.Ref}. error: {e}."); } #else string tar = WhichUtil.Which("tar", require: true, trace: Trace); From 8309189544960f16bb20668608a972e297a5bb88 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:42:23 -0500 Subject: [PATCH 178/188] spelling: update Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Common/JobServerQueue.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Common/JobServerQueue.cs b/src/Runner.Common/JobServerQueue.cs index be888465b4b..9d0febdb502 100644 --- a/src/Runner.Common/JobServerQueue.cs +++ b/src/Runner.Common/JobServerQueue.cs @@ -891,8 +891,8 @@ private async Task UploadFile(UploadFileInfo file) } // Create a new record and only set the Log field - var attachmentUpdataRecord = new TimelineRecord() { Id = file.TimelineRecordId, Log = taskLog }; - QueueTimelineRecordUpdate(file.TimelineId, attachmentUpdataRecord); + var attachmentUpdateRecord = new TimelineRecord() { Id = file.TimelineRecordId, Log = taskLog }; + QueueTimelineRecordUpdate(file.TimelineId, attachmentUpdateRecord); } else { From d432566590869c05f24be92369238113c6306b1d Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Mon, 9 Feb 2026 19:00:53 -0500 Subject: [PATCH 179/188] spelling: uri Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/UriUtility.cs | 30 +++++++++---------- src/Sdk/Resources/FileContainerResources.g.cs | 2 +- src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/Sdk/Common/Common/Utility/UriUtility.cs b/src/Sdk/Common/Common/Utility/UriUtility.cs index 7cf3ded3259..6501eae18da 100644 --- a/src/Sdk/Common/Common/Utility/UriUtility.cs +++ b/src/Sdk/Common/Common/Utility/UriUtility.cs @@ -146,7 +146,7 @@ public static bool IsUriLocalFile(Uri uri) /// returns the absolute Uri but in a consistent way such that the presence of a trailing slash doesnt affect the returned string, /// also converts the uri to lowerInvariant /// - /// Uri, cannot be null, must be Absolute + /// URI, cannot be null, must be Absolute /// public static string GetInvariantAbsoluteUri(Uri uri) { @@ -171,10 +171,10 @@ public static string GetInvariantAbsoluteUri(Uri uri) /// /// Joins a URI and a relativePath with a single forward slash. Duplicate slashes at the junction point are removed. /// - /// The base Uri. Must be an absolute Uri. The last segment of the Uri path (if any) is considered a virtual directory and not removed, even if it does not have a trailing forward slash. - /// The relative path to append to the Uri. + /// The base URI. Must be an absolute URI. The last segment of the URI path (if any) is considered a virtual directory and not removed, even if it does not have a trailing forward slash. + /// The relative path to append to the URI. /// If true, any leading forward slashes on the relative path argument are discarded. - /// The base Uri with the relativePath appended to it. + /// The base URI with the relativePath appended to it. /// /// This is intended to be an alternative to the Uri constructor, which can remove several path segments from your arguments. For example: /// @@ -192,10 +192,10 @@ public static Uri Combine(string baseUri, String relativePath, Boolean treatAbso /// /// Joins a URI and a relativePath with a single forward slash. Duplicate slashes at the junction point are removed. /// - /// The base Uri. Must be an absolute Uri. The last segment of the Uri path (if any) is considered a virtual directory and not removed, even if it does not have a trailing forward slash. - /// The relative path to append to the Uri. + /// The base URI. Must be an absolute URI. The last segment of the URI path (if any) is considered a virtual directory and not removed, even if it does not have a trailing forward slash. + /// The relative path to append to the URI. /// If true, any leading forward slashes on the relative path argument are discarded. - /// The base Uri with the relativePath appended to it. + /// The base URI with the relativePath appended to it. /// /// This is intended to be an alternative to the Uri constructor, which can remove several path segments from your arguments. For example: /// @@ -283,18 +283,18 @@ public static bool IsUriHttp(Uri uri) } /// - /// Check that the Uri has http or https as its scheme. We don't want anyone pointing at file://virus.exe. + /// Check that the URI has http or https as its scheme. We don't want anyone pointing at file://virus.exe. /// - /// Uri to be checked. + /// URI to be checked. public static void CheckUriIsHttp(Uri uri) { CheckUriIsHttp(uri, true); } /// - /// Check that the Uri has http or https as its scheme. We don't want anyone pointing at file://virus.exe. + /// Check that the URI has http or https as its scheme. We don't want anyone pointing at file://virus.exe. /// - /// Uri to be checked. + /// URI to be checked. /// Allow sub path and query string if true. If false, the URL must be authority only. public static void CheckUriIsHttp(Uri uri, bool allowPathAndQuery) { @@ -314,18 +314,18 @@ public static void CheckUriIsHttp(Uri uri, bool allowPathAndQuery) } /// - /// Check that a given Uri is an absolute Uri. Also, ensure its is http or https. + /// Check that a given URI is an absolute URI. Also, ensure its is http or https. /// - /// Uri to be checked. + /// URI to be checked. public static void CheckUriIsAbsoluteAndHttp(Uri uri) { CheckUriIsAbsoluteAndHttp(uri, true); } /// - /// Check that a given Uri is an absolute Uri. Also, ensure its is http or https. + /// Check that a given URI is an absolute URI. Also, ensure its is http or https. /// - /// Uri to be checked. + /// URI to be checked. /// Allow sub path and query string if true. If false, the URL must be authority only. public static void CheckUriIsAbsoluteAndHttp(Uri uri, bool allowPathAndQuery) { diff --git a/src/Sdk/Resources/FileContainerResources.g.cs b/src/Sdk/Resources/FileContainerResources.g.cs index c272c922104..bd990233f4f 100644 --- a/src/Sdk/Resources/FileContainerResources.g.cs +++ b/src/Sdk/Resources/FileContainerResources.g.cs @@ -6,7 +6,7 @@ public static class FileContainerResources { public static string ArtifactUriNotSupportedException(object arg0) { - const string Format = @"The artifact Uri {0} is not supported."; + const string Format = @"The artifact URI {0} is not supported."; return string.Format(CultureInfo.CurrentCulture, Format, arg0); } diff --git a/src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs b/src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs index 15980f7b835..ad5926f9481 100644 --- a/src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs +++ b/src/Sdk/WebApi/WebApi/VssHttpUriUtility.cs @@ -12,7 +12,7 @@ public static class VssHttpUriUtility /// /// /// - /// Set true to escape the replaced route Uri string prior to returning it + /// Set true to escape the replaced route URI string prior to returning it /// Set true to append any unused routeValues as query parameters to the returned route /// If set to true requires all the route parameters to be explicitly passed in routeParams /// From 0586213b1b66b9e132038c7fe8ac1fbea0b52230 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:42:39 -0500 Subject: [PATCH 180/188] spelling: value Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/Common/Common/Utility/UriExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/Common/Common/Utility/UriExtensions.cs b/src/Sdk/Common/Common/Utility/UriExtensions.cs index e25d8f0c8d6..6908894e373 100644 --- a/src/Sdk/Common/Common/Utility/UriExtensions.cs +++ b/src/Sdk/Common/Common/Utility/UriExtensions.cs @@ -62,7 +62,7 @@ public static Uri AppendQuery(this Uri uri, NameValueCollection queryValues) } /// - /// Performs an Add similar to the NameValuCollection 'Add' method where the value gets added as an item in a comma delimited list if the key is already present. + /// Performs an Add similar to the NameValueCollection 'Add' method where the value gets added as an item in a comma delimited list if the key is already present. /// /// /// From ecf0904cb6a85dc64bc728c02bf67dcb06dfe4c9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:42:48 -0500 Subject: [PATCH 181/188] spelling: variables Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Common/JobServerQueue.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Runner.Common/JobServerQueue.cs b/src/Runner.Common/JobServerQueue.cs index 9d0febdb502..71159790ce6 100644 --- a/src/Runner.Common/JobServerQueue.cs +++ b/src/Runner.Common/JobServerQueue.cs @@ -183,7 +183,7 @@ public void Start(Pipelines.AgentJobRequestMessage jobRequest, bool resultsServi } // WebConsoleLine queue and FileUpload queue are always best effort - // TimelineUpdate queue error will become critical when timeline records contain output variabls. + // TimelineUpdate queue error will become critical when timeline records contain output variables. public async Task ShutdownAsync() { if (!_queueInProcess) @@ -214,7 +214,7 @@ public async Task ShutdownAsync() Trace.Info("Results upload queue drained."); // ProcessTimelinesUpdateQueueAsync() will throw exception during shutdown - // if there is any timeline records that failed to update contains output variabls. + // if there is any timeline records that failed to update contains output variables. Trace.Verbose("Draining timeline update queue."); await ProcessTimelinesUpdateQueueAsync(runOnce: true); Trace.Info("Timeline update queue drained."); From 26fcbcb97fab4de179b50203105a5ae7fcd9ef30 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:39:27 -0500 Subject: [PATCH 182/188] spelling: warnings Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 9c069b12f6f..4e4feff7060 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -53,7 +53,7 @@ $(DefineConstants);DEBUG - + true From 57b79dd76704fd97152441085e1c5ff2c07ae0e1 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:00:35 -0500 Subject: [PATCH 183/188] spelling: well-formed absolute Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Plugins/Repository/GitCliManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Plugins/Repository/GitCliManager.cs b/src/Runner.Plugins/Repository/GitCliManager.cs index 5a0790e7f9c..f37562af350 100644 --- a/src/Runner.Plugins/Repository/GitCliManager.cs +++ b/src/Runner.Plugins/Repository/GitCliManager.cs @@ -451,7 +451,7 @@ public async Task GitGetFetchUrl(RunnerActionPluginExecutionContext context } else { - context.Debug($"The Origin fetch url from git config: {remoteFetchUrl} is not a absolute well formed url."); + context.Debug($"The Origin fetch url from git config: {remoteFetchUrl} is not a well-formed absolute url."); } } else From c05380e542b948823716c4c58417dc6ea350537c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 08:15:19 -0500 Subject: [PATCH 184/188] spelling: when Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Runner.Worker/DiagnosticLogManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Runner.Worker/DiagnosticLogManager.cs b/src/Runner.Worker/DiagnosticLogManager.cs index afc811b15e4..1ecd5e22d3d 100644 --- a/src/Runner.Worker/DiagnosticLogManager.cs +++ b/src/Runner.Worker/DiagnosticLogManager.cs @@ -129,7 +129,7 @@ private List GetWorkerDiagnosticLogFiles(string diagnosticFolder, DateTi var workerLogFiles = new List(); var directoryInfo = new DirectoryInfo(diagnosticFolder); - // Sometimes the timing is off between the job start time and the time the worker log file is created. + // Sometimes the timing is off between the job start time and the time when the worker log file is created. // This adds a small buffer that provides some leeway in case the worker log file was created slightly // before the time we log as job start time. int bufferInSeconds = -30; From 3dfbc5460dd8313da356b5102752a7b777a6a050 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 09:01:35 -0500 Subject: [PATCH 185/188] spelling: whether or not Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../DTWebApi/WebApi/ServiceEndpointLegacy/ServiceEndpoint.cs | 2 +- src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sdk/DTWebApi/WebApi/ServiceEndpointLegacy/ServiceEndpoint.cs b/src/Sdk/DTWebApi/WebApi/ServiceEndpointLegacy/ServiceEndpoint.cs index 65c133cb733..c6d91120f1d 100644 --- a/src/Sdk/DTWebApi/WebApi/ServiceEndpointLegacy/ServiceEndpoint.cs +++ b/src/Sdk/DTWebApi/WebApi/ServiceEndpointLegacy/ServiceEndpoint.cs @@ -140,7 +140,7 @@ public IDictionary Data } /// - /// Indicates whether service endpoint is shared with other projects or not. + /// Indicates whether or not service endpoint is shared with other projects. /// [DataMember(EmitDefaultValue = true)] public Boolean IsShared diff --git a/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs b/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs index dd7a390a2c4..d73409a18f2 100644 --- a/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs +++ b/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs @@ -529,7 +529,7 @@ public async Task FindServiceDefinitionAsync( ServiceDefinition definition; if (m_locationDataCacheManager.TryFindService(serviceType, serviceIdentifier, out definition)) { - // If we hit a cache entry return it whether it is null or not. + // If we hit a cache entry return it whether or not it is null. return definition; } From e0ceb25cae984e3cc8bf966b48b460434df57767 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:43:54 -0500 Subject: [PATCH 186/188] spelling: with the Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs b/src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs index 074a849d327..a725c139251 100644 --- a/src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs +++ b/src/Sdk/WebApi/WebApi/Location/LocationServerMapCache.cs @@ -233,7 +233,7 @@ private static void EnsureCacheLoaded() } catch (Exception) { - // It looks like something is wrong witht he cache, lets just hide this + // It looks like something is wrong with the cache, lets just hide this // exception and work without it. s_cacheUnavailable = true; } From e6062894889ca80d056fa9ea6bd6bbb38dfce122 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 22:43:23 -0500 Subject: [PATCH 187/188] spelling: workflow Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- .../WorkflowParser/Conversion/WorkflowTemplateConverter.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Sdk/WorkflowParser/Conversion/WorkflowTemplateConverter.cs b/src/Sdk/WorkflowParser/Conversion/WorkflowTemplateConverter.cs index 0c7a74564cb..d679fd6d25e 100644 --- a/src/Sdk/WorkflowParser/Conversion/WorkflowTemplateConverter.cs +++ b/src/Sdk/WorkflowParser/Conversion/WorkflowTemplateConverter.cs @@ -1963,7 +1963,7 @@ private static ExpressionData ConvertToInputValueDefinedType( break; default: - // The schema for worflow_call.inputs only allows boolean, string, or number. + // The schema for workflow_call.inputs only allows boolean, string, or number. // We should have failed earlier if we receive any other type. throw new ArgumentException($"Unexpected defined type '{definedType.Value}' when converting input value for '{key}'"); } @@ -2004,13 +2004,13 @@ internal static IDictionary ConvertToWorkflowJobOutputs(Template foreach (var definition in outputs) { - var spec = definition.Value.AssertMapping("workfow job output spec").ToDictionary( + var spec = definition.Value.AssertMapping("workflow job output spec").ToDictionary( x => x.Key.AssertString("outputs spec key").Value, x => x.Value, StringComparer.OrdinalIgnoreCase ); - var value = spec["value"].AssertString("workfow job output value").Value; + var value = spec["value"].AssertString("workflow job output value").Value; result.Add(definition.Key, value); } From fb5807eadd2cdfc038d8f049e162b41811addb58 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 22 Jan 2026 23:12:41 -0500 Subject: [PATCH 188/188] spelling: written Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- src/Test/L0/ProcessInvokerL0.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Test/L0/ProcessInvokerL0.cs b/src/Test/L0/ProcessInvokerL0.cs index dc3629e67aa..3c4e6e8e13b 100644 --- a/src/Test/L0/ProcessInvokerL0.cs +++ b/src/Test/L0/ProcessInvokerL0.cs @@ -402,7 +402,7 @@ public async Task RedirectSTDINKeepStreamOpen() [Fact] [Trait("Level", "L0")] [Trait("Category", "Common")] - public async Task OomScoreAdjIsWriten_Default() + public async Task OomScoreAdjIsWritten_Default() { // We are on a system that supports oom_score_adj in procfs as assumed by ProcessInvoker string testProcPath = $"/proc/{Process.GetCurrentProcess().Id}/oom_score_adj"; @@ -438,7 +438,7 @@ public async Task OomScoreAdjIsWriten_Default() [Fact] [Trait("Level", "L0")] [Trait("Category", "Common")] - public async Task OomScoreAdjIsWriten_FromEnv() + public async Task OomScoreAdjIsWritten_FromEnv() { // We are on a system that supports oom_score_adj in procfs as assumed by ProcessInvoker string testProcPath = $"/proc/{Process.GetCurrentProcess().Id}/oom_score_adj";