public void Initialize(IBuildServerWatcher buildServerWatcher, ISettingsSource config, Func <ObjectId, bool> isCommitInRevisionGrid = null) { if (_buildServerWatcher != null) { throw new InvalidOperationException("Already initialized"); } _buildServerWatcher = buildServerWatcher; _tfsServer = config.GetString("TfsServer", null); _tfsTeamCollectionName = config.GetString("TfsTeamCollectionName", null); _projectName = _buildServerWatcher.ReplaceVariables(config.GetString("ProjectName", null)); var tfsBuildDefinitionNameFilterSetting = config.GetString("TfsBuildDefinitionName", ""); if (!BuildServerSettingsHelper.IsRegexValid(tfsBuildDefinitionNameFilterSetting)) { return; } _tfsBuildDefinitionNameFilter = new Regex(tfsBuildDefinitionNameFilterSetting, RegexOptions.Compiled); if (!string.IsNullOrEmpty(_tfsServer) && !string.IsNullOrEmpty(_tfsTeamCollectionName) && !string.IsNullOrEmpty(_projectName)) { _tfsHelper = LoadAssemblyAndConnectToServer("TfsInterop.Vs2015") ?? LoadAssemblyAndConnectToServer("TfsInterop.Vs2013") ?? LoadAssemblyAndConnectToServer("TfsInterop.Vs2012"); if (_tfsHelper == null) { Trace.WriteLine("fail to load the good interop assembly :("); } } }
public void SaveSettings(ISettingsSource buildServerConfig) { if (BuildServerSettingsHelper.IsRegexValid(TeamCityBuildIdFilter.Text)) { buildServerConfig.SetString("BuildServerUrl", TeamCityServerUrl.Text); buildServerConfig.SetString("ProjectName", TeamCityProjectName.Text); buildServerConfig.SetString("BuildIdFilter", TeamCityBuildIdFilter.Text); buildServerConfig.SetBool("LogAsGuest", CheckBoxLogAsGuest.Checked); } }
public void SaveSettings(ISettingsSource buildServerConfig) { if (BuildServerSettingsHelper.IsRegexValid(TfsBuildDefinitionNameFilter.Text)) { buildServerConfig.SetString("TfsServer", TfsServer.Text); buildServerConfig.SetString("TfsTeamCollectionName", TfsTeamCollectionName.Text); buildServerConfig.SetString("ProjectName", TfsProjectName.Text); buildServerConfig.SetString("TfsBuildDefinitionName", TfsBuildDefinitionNameFilter.Text); } }
public void SaveSettings(ISettingsSource buildServerConfig) { if (BuildServerSettingsHelper.IsRegexValid(TfsBuildDefinitionNameFilter.Text)) { buildServerConfig.SetString(VstsAndTfsAdapter.VstsTfsServerUrlSettingKey, string.IsNullOrWhiteSpace(TfsServer.Text) ? string.Empty : TfsServer.Text); buildServerConfig.SetString(VstsAndTfsAdapter.VstsTfsCollectionNameSettingKey, TfsTeamCollectionName.Text); buildServerConfig.SetString(VstsAndTfsAdapter.VstsTfsProjectNameSettingKey, TfsProjectName.Text); buildServerConfig.SetString(VstsAndTfsAdapter.VstsTfsBuildDefinitionNameFilterSettingKey, TfsBuildDefinitionNameFilter.Text); buildServerConfig.SetString(VstsAndTfsAdapter.VstsTfsRestApiTokenSettingKey, RestApiToken.Text); } }
public void Initialize(IBuildServerWatcher buildServerWatcher, ISettingsSource config) { if (this.buildServerWatcher != null) { throw new InvalidOperationException("Already initialized"); } this.buildServerWatcher = buildServerWatcher; ProjectNames = config.GetString("ProjectName", "").Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); var buildIdFilerSetting = config.GetString("BuildIdFilter", ""); if (!BuildServerSettingsHelper.IsRegexValid(buildIdFilerSetting)) { return; } BuildIdFilter = new Regex(buildIdFilerSetting, RegexOptions.Compiled); var hostName = config.GetString("BuildServerUrl", null); LogAsGuestUrlParameter = config.GetBool("LogAsGuest", false) ? "&guest=1" : string.Empty; if (!string.IsNullOrEmpty(hostName)) { httpClient = new HttpClient { Timeout = TimeSpan.FromMinutes(2), BaseAddress = hostName.Contains("://") ? new Uri(hostName, UriKind.Absolute) : new Uri(string.Format("{0}://{1}", Uri.UriSchemeHttp, hostName), UriKind.Absolute) }; httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); var buildServerCredentials = buildServerWatcher.GetBuildServerCredentials(this, true); UpdateHttpClientOptions(buildServerCredentials); if (ProjectNames.Length > 0) { getBuildTypesTask.Clear(); foreach (var name in ProjectNames) { getBuildTypesTask.Add( GetProjectFromNameXmlResponseAsync(name, CancellationToken.None) .ContinueWith( task => from element in task.Result.XPathSelectElements("/project/buildTypes/buildType") select element.Attribute("id").Value, TaskContinuationOptions.ExecuteSynchronously | TaskContinuationOptions.AttachedToParent)); } } } }
public void Initialize(IBuildServerWatcher buildServerWatcher, ISettingsSource config, Func <string, bool> isCommitInRevisionGrid) { if (_buildServerWatcher != null) { throw new InvalidOperationException("Already initialized"); } _buildServerWatcher = buildServerWatcher; ProjectNames = buildServerWatcher.ReplaceVariables(config.GetString("ProjectName", "")) .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); var buildIdFilerSetting = config.GetString("BuildIdFilter", ""); if (!BuildServerSettingsHelper.IsRegexValid(buildIdFilerSetting)) { return; } BuildIdFilter = new Regex(buildIdFilerSetting, RegexOptions.Compiled); HostName = config.GetString("BuildServerUrl", null); LogAsGuestUrlParameter = config.GetBool("LogAsGuest", false) ? "&guest=1" : string.Empty; if (!string.IsNullOrEmpty(HostName)) { InitializeHttpClient(HostName); if (ProjectNames.Length > 0) { _getBuildTypesTask.Clear(); foreach (var name in ProjectNames) { _getBuildTypesTask.Add(ThreadHelper.JoinableTaskFactory.RunAsync(async() => { var response = await GetProjectFromNameXmlResponseAsync(name, CancellationToken.None).ConfigureAwait(false); return(from element in response.XPathSelectElements("/project/buildTypes/buildType") select element.Attribute("id").Value); })); } } } }
public void Initialize(IBuildServerWatcher buildServerWatcher, ISettingsSource config, Func <string, bool> isCommitInRevisionGrid) { if (this.buildServerWatcher != null) { throw new InvalidOperationException("Already initialized"); } this.buildServerWatcher = buildServerWatcher; ProjectNames = config.GetString("ProjectName", "").Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); var buildIdFilerSetting = config.GetString("BuildIdFilter", ""); if (!BuildServerSettingsHelper.IsRegexValid(buildIdFilerSetting)) { return; } BuildIdFilter = new Regex(buildIdFilerSetting, RegexOptions.Compiled); var hostName = config.GetString("BuildServerUrl", null); LogAsGuestUrlParameter = config.GetBool("LogAsGuest", false) ? "&guest=1" : string.Empty; if (!string.IsNullOrEmpty(hostName)) { InitializeHttpClient(hostName, () => buildServerWatcher.GetBuildServerCredentials(this, true)); if (ProjectNames.Length > 0) { getBuildTypesTask.Clear(); foreach (var name in ProjectNames) { getBuildTypesTask.Add( GetProjectFromNameXmlResponseAsync(name, CancellationToken.None) .ContinueWith( task => from element in task.Result.XPathSelectElements("/project/buildTypes/buildType") select element.Attribute("id").Value, TaskContinuationOptions.ExecuteSynchronously | TaskContinuationOptions.AttachedToParent)); } } } }
private void UpdateView() { if (_isUpdating) { return; } _isUpdating = true; try { TfsServer.Text = _currentSettings.ProjectUrl; TfsBuildDefinitionNameFilter.Text = _currentSettings.BuildDefinitionFilter; labelRegexError.Visible = !BuildServerSettingsHelper.IsRegexValid(TfsBuildDefinitionNameFilter.Text); RestApiToken.Text = _currentSettings.ApiToken; TokenManagementLink.Enabled = BuildServerSettingsHelper.IsUrlValid(TokenManagementUrl); } finally { _isUpdating = false; } }
private void TeamCityBuildIdFilter_TextChanged(object sender, EventArgs e) { labelRegexError.Visible = !BuildServerSettingsHelper.IsRegexValid(TeamCityBuildIdFilter.Text); }
private void TfsBuildDefinitionNameFilter_TextChanged(object sender, EventArgs e) { labelRegexError.Visible = !BuildServerSettingsHelper.IsRegexValid(TfsBuildDefinitionNameFilter.Text); }
/// <summary> /// Validates if these settings are valid and good to use. /// </summary> public bool IsValid() { return(!(string.IsNullOrWhiteSpace(ProjectUrl) || string.IsNullOrWhiteSpace(ApiToken)) && BuildServerSettingsHelper.IsRegexValid(BuildDefinitionFilter)); }