Exemplo n.º 1
0
        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 :(");
                }
            }
        }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
 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);
     }
 }
Exemplo n.º 5
0
        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));
                    }
                }
            }
        }
Exemplo n.º 6
0
        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);
                        }));
                    }
                }
            }
        }
Exemplo n.º 7
0
        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));
                    }
                }
            }
        }
Exemplo n.º 8
0
        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;
            }
        }
Exemplo n.º 9
0
 private void TeamCityBuildIdFilter_TextChanged(object sender, EventArgs e)
 {
     labelRegexError.Visible = !BuildServerSettingsHelper.IsRegexValid(TeamCityBuildIdFilter.Text);
 }
Exemplo n.º 10
0
 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));
 }