internal static BotConfiguration Build( string configFile, string restApiServerUrl, string webSocketServerUrl) { string fileContent = System.IO.File.ReadAllText(configFile); JObject config = JObject.Parse(fileContent); if (config == null) { return(null); } string repository = Field.GetString(config, "repository"); string branchPrefix = Field.GetString(config, "branchPrefix"); string trunkBranch = Field.GetString(config, "trunkBranch"); string plasticBotUserToken = Field.GetString(config, "plasticBotUserToken"); StatusProperty statusAttrConfig = StatusProperty.BuildFromConfig(config["plasticStatusAttributeGroup"]); IssueTracker issueTrackerConfig = IssueTracker.BuildFromConfig(config["issuesGroup"]); Notifier emailConfig = Notifier.BuildFromConfig(config["notifierEmailGroup"]); return(new BotConfiguration( restApiServerUrl, webSocketServerUrl, repository, trunkBranch, branchPrefix, plasticBotUserToken, statusAttrConfig, issueTrackerConfig, emailConfig)); }