public void ProcessCommand(IExecutionContext context, string line, ActionCommand command, ContainerInfo container) { var file = command.Data; // File is required if (string.IsNullOrEmpty(file)) { context.Warning("File path must be specified."); return; } // Translate file path back from container path if (container != null) { file = container.TranslateToHostPath(file); } // Root the path if (!Path.IsPathRooted(file)) { var githubContext = context.ExpressionValues["github"] as GitHubContext; ArgUtil.NotNull(githubContext, nameof(githubContext)); var workspace = githubContext["workspace"].ToString(); ArgUtil.NotNullOrEmpty(workspace, "workspace"); file = Path.Combine(workspace, file); } // Load the config var config = IOUtil.LoadObject <IssueMatchersConfig>(file); // Add if (config?.Matchers?.Count > 0) { config.Validate(); context.AddMatchers(config); } }