mirror of
https://github.com/actions/runner.git
synced 2026-01-05 17:47:24 +08:00
Runner cleanup - continuation (#209)
* Agent/AgentCredential -> Runner/RunnerCredential * Test trait rename: Agent -> Runner * Enable remaining RunnerL0 tests * Remove job message PII variable masking code * Remove unused Agent.ToolsDirectory variable * Misc test Agent -> Runner renaming * Some more misc cleaning
This commit is contained in:
@@ -75,36 +75,6 @@ namespace GitHub.Runner.Worker
|
||||
|
||||
public string System_PhaseDisplayName => Get(Constants.Variables.System.PhaseDisplayName);
|
||||
|
||||
public string System_TFCollectionUrl => Get(WellKnownDistributedTaskVariables.TFCollectionUrl);
|
||||
|
||||
public static readonly HashSet<string> PiiVariables = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
"Build.AuthorizeAs",
|
||||
"Build.QueuedBy",
|
||||
"Build.RequestedFor",
|
||||
"Build.RequestedForEmail",
|
||||
"Build.SourceBranch",
|
||||
"Build.SourceBranchName",
|
||||
"Build.SourceTfvcShelveset",
|
||||
"Build.SourceVersion",
|
||||
"Build.SourceVersionAuthor",
|
||||
"Job.AuthorizeAs",
|
||||
"Release.Deployment.RequestedFor",
|
||||
"Release.Deployment.RequestedForEmail",
|
||||
"Release.RequestedFor",
|
||||
"Release.RequestedForEmail",
|
||||
};
|
||||
|
||||
public static readonly string PiiArtifactVariablePrefix = "Release.Artifacts";
|
||||
|
||||
public static readonly List<string> PiiArtifactVariableSuffixes = new List<string>()
|
||||
{
|
||||
"SourceBranch",
|
||||
"SourceBranchName",
|
||||
"SourceVersion",
|
||||
"RequestedFor"
|
||||
};
|
||||
|
||||
public string Get(string name)
|
||||
{
|
||||
Variable variable;
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace GitHub.Runner.Worker
|
||||
SetCulture(jobMessage);
|
||||
|
||||
// Start the job.
|
||||
Trace.Info($"Job message:{Environment.NewLine} {StringUtil.ConvertToJson(WorkerUtilities.ScrubPiiData(jobMessage))}");
|
||||
Trace.Info($"Job message:{Environment.NewLine} {StringUtil.ConvertToJson(jobMessage)}");
|
||||
Task<TaskResult> jobRunnerTask = jobRunner.RunAsync(jobMessage, jobRequestCancellationToken.Token);
|
||||
|
||||
// Start listening for a cancel message from the channel.
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
using GitHub.DistributedTask.Pipelines.ContextData;
|
||||
using GitHub.DistributedTask.WebApi;
|
||||
using Pipelines = GitHub.DistributedTask.Pipelines;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GitHub.Runner.Sdk;
|
||||
|
||||
namespace GitHub.Runner.Worker
|
||||
{
|
||||
public class WorkerUtilities
|
||||
{
|
||||
public static Pipelines.AgentJobRequestMessage ScrubPiiData(Pipelines.AgentJobRequestMessage message)
|
||||
{
|
||||
ArgUtil.NotNull(message, nameof(message));
|
||||
|
||||
var scrubbedVariables = new Dictionary<string, VariableValue>();
|
||||
|
||||
// Scrub the known PII variables
|
||||
foreach (var variable in message.Variables)
|
||||
{
|
||||
if (Variables.PiiVariables.Contains(variable.Key) ||
|
||||
(variable.Key.StartsWith(Variables.PiiArtifactVariablePrefix, StringComparison.OrdinalIgnoreCase)
|
||||
&& Variables.PiiArtifactVariableSuffixes.Any(varSuffix => variable.Key.EndsWith(varSuffix, StringComparison.OrdinalIgnoreCase))))
|
||||
{
|
||||
scrubbedVariables[variable.Key] = "[PII]";
|
||||
}
|
||||
else
|
||||
{
|
||||
scrubbedVariables[variable.Key] = variable.Value;
|
||||
}
|
||||
}
|
||||
|
||||
var scrubbedRepositories = new List<Pipelines.RepositoryResource>();
|
||||
|
||||
// Scrub the repository resources
|
||||
foreach (var repository in message.Resources.Repositories)
|
||||
{
|
||||
Pipelines.RepositoryResource scrubbedRepository = repository.Clone();
|
||||
|
||||
var versionInfo = repository.Properties.Get<Pipelines.VersionInfo>(Pipelines.RepositoryPropertyNames.VersionInfo);
|
||||
|
||||
if (versionInfo != null)
|
||||
{
|
||||
scrubbedRepository.Properties.Set(
|
||||
Pipelines.RepositoryPropertyNames.VersionInfo,
|
||||
new Pipelines.VersionInfo()
|
||||
{
|
||||
Author = "[PII]",
|
||||
Message = versionInfo.Message
|
||||
});
|
||||
}
|
||||
|
||||
scrubbedRepositories.Add(scrubbedRepository);
|
||||
}
|
||||
|
||||
var scrubbedJobResources = new Pipelines.JobResources();
|
||||
|
||||
scrubbedJobResources.Containers.AddRange(message.Resources.Containers);
|
||||
scrubbedJobResources.Endpoints.AddRange(message.Resources.Endpoints);
|
||||
scrubbedJobResources.Repositories.AddRange(scrubbedRepositories);
|
||||
scrubbedJobResources.SecureFiles.AddRange(message.Resources.SecureFiles);
|
||||
|
||||
var contextData = new DictionaryContextData();
|
||||
if (message.ContextData?.Count > 0)
|
||||
{
|
||||
foreach (var pair in message.ContextData)
|
||||
{
|
||||
contextData[pair.Key] = pair.Value;
|
||||
}
|
||||
}
|
||||
|
||||
// Reconstitute a new agent job request message from the scrubbed parts
|
||||
return new Pipelines.AgentJobRequestMessage(
|
||||
plan: message.Plan,
|
||||
timeline: message.Timeline,
|
||||
jobId: message.JobId,
|
||||
jobDisplayName: message.JobDisplayName,
|
||||
jobName: message.JobName,
|
||||
jobContainer: message.JobContainer,
|
||||
jobServiceContainers: message.JobServiceContainers,
|
||||
environmentVariables: message.EnvironmentVariables,
|
||||
variables: scrubbedVariables,
|
||||
maskHints: message.MaskHints,
|
||||
jobResources: scrubbedJobResources,
|
||||
contextData: contextData,
|
||||
workspaceOptions: message.Workspace,
|
||||
steps: message.Steps,
|
||||
scopes: message.Scopes);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user