Пример #1
0
        public void Initialize(IBuildServerWatcher buildServerWatcher, ISettingsSource config)
        {
            if (_buildServerWatcher != null)
                throw new InvalidOperationException("Already initialized");

            _buildServerWatcher = buildServerWatcher;

            _tfsServer = config.GetString("TfsServer", null);
            _tfsTeamCollectionName = config.GetString("TfsTeamCollectionName", null);
            _projectName = config.GetString("ProjectName", null);
            _tfsBuildDefinitionName = config.GetString("TfsBuildDefinitionName", null);

            if (!string.IsNullOrEmpty(_tfsServer)
                && !string.IsNullOrEmpty(_tfsTeamCollectionName)
                && !string.IsNullOrEmpty(_projectName))
            {
                _tfsHelper = LoadAssemblyAndConnectToServer("TfsInterop.Vs2013")
                    ?? LoadAssemblyAndConnectToServer("TfsInterop.Vs2012");

                if (_tfsHelper == null)
                {
                    Trace.WriteLine("fail to load the good interop assembly :(");
                }
            }
        }
Пример #2
0
        public void Initialize(IBuildServerWatcher buildServerWatcher, ISettingsSource config, Action openSettings, Func <ObjectId, bool> isCommitInRevisionGrid = null)
        {
            if (_buildServerWatcher is not null)
            {
                throw new InvalidOperationException("Already initialized");
            }

            _buildServerWatcher = buildServerWatcher;
            _openSettings       = openSettings;
            _settings           = IntegrationSettings.ReadFrom(config);

            if (!_settings.IsValid())
            {
                return;
            }

            _projectUrl = _buildServerWatcher.ReplaceVariables(_settings.ProjectUrl);

            if (!Uri.IsWellFormedUriString(_projectUrl, UriKind.Absolute) || string.IsNullOrWhiteSpace(_settings.ApiToken))
            {
                return;
            }

            _apiClient = new ApiClient(_projectUrl, _settings.ApiToken);
            if (CacheAzureDevOps is null || CacheAzureDevOps.Id != CacheKey)
            {
                CacheAzureDevOps      = null;
                _buildDefinitionsTask = ThreadHelper.JoinableTaskFactory.RunAsync(() => _apiClient.GetBuildDefinitionsAsync(_settings.BuildDefinitionFilter));
            }
Пример #3
0
        public BitbucketPullRequestForm(BitbucketPlugin plugin, ISettingsSource settings, GitUIBaseEventArgs gitUiCommands)
        {
            InitializeComponent();
            Translate();

            _plugin            = plugin;
            _settingsContainer = settings;
            _gitUiCommands     = gitUiCommands;

            _settings = Settings.Parse(_gitUiCommands.GitModule, _settingsContainer, _plugin);
            if (_settings == null)
            {
                MessageBox.Show(_yourRepositoryIsNotInBitbucket.Text);
                Close();
                return;
            }

            Load += BitbucketViewPullRequestFormLoad;
            Load += BitbucketPullRequestFormLoad;

            lblLinkCreatePull.Text = string.Format("{0}/projects/{1}/repos/{2}/pull-requests?create",
                                                   _settings.BitbucketUrl, _settings.ProjectKey, _settings.RepoSlug);
            toolTipLink.SetToolTip(lblLinkCreatePull, _linkLabelToolTip.Text);

            lblLinkViewPull.Text = string.Format("{0}/projects/{1}/repos/{2}/pull-requests",
                                                 _settings.BitbucketUrl, _settings.ProjectKey, _settings.RepoSlug);
            toolTipLink.SetToolTip(lblLinkViewPull, _linkLabelToolTip.Text);
        }
Пример #4
0
        public static Settings Parse(IGitModule gitModule, ISettingsSource settings, StashPlugin plugin)
        {
            var result = new Settings
            {
                Username   = plugin.StashUsername.ValueOrDefault(settings),
                Password   = plugin.StashPassword.ValueOrDefault(settings),
                StashUrl   = plugin.StashBaseUrl.ValueOrDefault(settings),
                DisableSSL = plugin.StashDisableSsl.ValueOrDefault(settings)
            };

            var module = ((GitModule)gitModule);

            var remotes = module.GetRemotes()
                          .Select(r => module.GetSetting(string.Format(SettingKeyString.RemoteUrl, r)))
                          .ToArray();

            foreach (var url in remotes)
            {
                var pattern = url.Contains("http") ? StashHttpRegex : StashSshRegex;
                var match   = Regex.Match(url, pattern);
                if (match.Success && result.StashUrl.Contains(match.Groups["url"].Value))
                {
                    result.ProjectKey = match.Groups["project"].Value;
                    result.RepoSlug   = match.Groups["repo"].Value;
                    return(result);
                }
            }

            return(null);
        }
 public void SaveSettings(ISettingsSource buildServerConfig)
 {
     if (_currentSettings.IsValid())
     {
         _currentSettings.WriteTo(buildServerConfig);
     }
 }
Пример #6
0
        public static Settings Parse(IGitModule gitModule, ISettingsSource settings, StashPlugin plugin)
        {
            var result = new Settings
                             {
                                 Username = plugin.StashUsername.ValueOrDefault(settings),
                                 Password = plugin.StashPassword.ValueOrDefault(settings),
                                 StashUrl = plugin.StashBaseUrl.ValueOrDefault(settings),
                                 DisableSSL = plugin.StashDisableSsl.ValueOrDefault(settings)
                             };

            var module = ((GitModule)gitModule);

            var remotes = module.GetRemotes()
                .Select(r => module.GetPathSetting(string.Format(SettingKeyString.RemoteUrl, r)))
                .ToArray();

            foreach (var url in remotes)
            {
                var pattern = url.Contains("http") ? StashHttpRegex : StashSshRegex;
                var match = Regex.Match(url, pattern);
                if (match.Success && result.StashUrl.Contains(match.Groups["url"].Value))
                {
                    result.ProjectKey = match.Groups["project"].Value;
                    result.RepoSlug = match.Groups["repo"].Value;
                    return result;
                }
            }

            return null;
        }
Пример #7
0
        public void Initialize(IBuildServerWatcher buildServerWatcher, ISettingsSource config)
        {
            if (_buildServerWatcher != null)
                throw new InvalidOperationException("Already initialized");

            _buildServerWatcher = buildServerWatcher;

            var projectName = config.GetString("ProjectName", null);
            var hostName = config.GetString("BuildServerUrl", null);

            if (!string.IsNullOrEmpty(hostName) && !string.IsNullOrEmpty(projectName))
            {
                var baseAdress = hostName.Contains("://")
                                     ? new Uri(hostName, UriKind.Absolute)
                                     : new Uri(string.Format("{0}://{1}:8080", Uri.UriSchemeHttp, hostName), UriKind.Absolute);

                _httpClient = new HttpClient(new HttpClientHandler(){ UseDefaultCredentials = true});
                _httpClient.Timeout = TimeSpan.FromMinutes(2);
                _httpClient.BaseAddress = baseAdress;

                var buildServerCredentials = buildServerWatcher.GetBuildServerCredentials(this, true);

                UpdateHttpClientOptions(buildServerCredentials);

                _getBuildUrls = new List<Task<IEnumerable<string>>>();

                string[] projectUrls = projectName.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var projectUrl in projectUrls.Select(s => baseAdress + "job/" + s.Trim() + "/"))
                {
                    AddGetBuildUrl(projectUrl);
                }
            }
        }
 public void SaveSettings(ISettingsSource buildServerConfig)
 {
     buildServerConfig.SetString("TfsServer", TfsServer.Text);
     buildServerConfig.SetString("TfsTeamCollectionName", TfsTeamCollectionName.Text);
     buildServerConfig.SetString("ProjectName", TfsProjectName.Text);
     buildServerConfig.SetString("TfsBuildDefinitionName", TfsBuildDefinitionName.Text);
 }
Пример #9
0
 public SampleSettingsReader(
     ITypeNameConverter typeNameConverter,
     ISettingsSource <SampleSource> source,
     IDeserializer <SampleSource> deserializer)
     : base(typeNameConverter, source, deserializer)
 {
 }
 public void LoadSettings(ISettingsSource buildServerConfig)
 {
     if (buildServerConfig != null)
     {
         JenkinsServerUrl.Text = buildServerConfig.GetString("BuildServerUrl", string.Empty);
         JenkinsProjectName.Text = buildServerConfig.GetString("ProjectName", _defaultProjectName);
     }
 }
        public StashPullRequestForm(GitUIBaseEventArgs gitUiCommands,
            ISettingsSource settings)
        {
            InitializeComponent();

            _gitUiCommands = gitUiCommands;
            _settingsContainer = settings;
        }
Пример #12
0
        public ProxySwitcherForm(ISettingsSource settings, GitUIBaseEventArgs gitUiCommands)
        {
            InitializeComponent();
            Translate();

            this.Text = _pluginDescription.Text;
            this.settings = settings;
            this.gitCommands = gitUiCommands.GitModule;
        }
        public void SaveSettings(ISettingsSource buildServerConfig)
        {
            buildServerConfig.SetString("BuildServerUrl", JenkinsServerUrl.Text.NullIfEmpty());
            buildServerConfig.SetString("ProjectName", JenkinsProjectName.Text.NullIfEmpty());

            // While an empty value is valid as as override for lower level settings,
            // the behaviour requiring that the "effective" value is set is considered a worse limitation.
            buildServerConfig.SetString("IgnoreBuildBranch", IgnoreBuildBranch.Text.NullIfEmpty());
        }
 public void LoadSettings(ISettingsSource IssueTrackerConfig)
 {
     if (IssueTrackerConfig != null)
     {
         JIRAServerUrl.Text = IssueTrackerConfig.GetString("ServerUrl", string.Empty);
         JIRAUsername.Text  = IssueTrackerConfig.GetString("Username", string.Empty);
         JIRAPassword.Text  = IssueTrackerConfig.GetString("Password", string.Empty);
     }
 }
Пример #15
0
 public QuoteResponder(IStockTickerDataSource stockTickerDataSource, ISettingsSource settingsSource, TimeSpan norepeat, string username, string channel)
 {
     _stockTickerDataSource = stockTickerDataSource;
     _norepeat = norepeat;
     _username = username;
     _channel = channel;
     _settingsSource = settingsSource;
     Initialize();
 }
 public void LoadSettings(ISettingsSource buildServerConfig)
 {
     if (buildServerConfig != null)
     {
         TeamCityServerUrl.Text = buildServerConfig.GetString("BuildServerUrl", string.Empty);
         TeamCityProjectName.Text = buildServerConfig.GetString("ProjectName", _defaultProjectName);
         TeamCityBuildIdFilter.Text = buildServerConfig.GetString("BuildIdFilter", string.Empty);
     }
 }
 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 LoadSettings(ISettingsSource buildServerConfig)
 {
     if (buildServerConfig != null)
     {
         TeamCityServerUrl.Text = buildServerConfig.GetString("BuildServerUrl", string.Empty);
         TeamCityProjectName.Text = buildServerConfig.GetString("ProjectName", _defaultProjectName);
         TeamCityBuildIdFilter.Text = buildServerConfig.GetString("BuildIdFilter", string.Empty);
         CheckBoxLogAsGuest.Checked = buildServerConfig.GetBool("LogAsGuest", false);
     }
 }
 public void LoadSettings(ISettingsSource buildServerConfig)
 {
     if (buildServerConfig != null)
     {
         TfsServer.Text = buildServerConfig.GetString("TfsServer", string.Empty);
         TfsTeamCollectionName.Text = buildServerConfig.GetString("TfsTeamCollectionName", "DefaultCollection");
         TfsProjectName.Text = buildServerConfig.GetString("ProjectName", _defaultProjectName);
         TfsBuildDefinitionNameFilter.Text = buildServerConfig.GetString("TfsBuildDefinitionName", string.Empty);
     }
 }
Пример #20
0
        public ProxySwitcherForm(ProxySwitcherPlugin plugin, ISettingsSource settings, GitUIBaseEventArgs gitUiCommands)
        {
            InitializeComponent();
            Translate();

            Text = _pluginDescription.Text;
            _plugin = plugin;
            _settings = settings;
            _gitCommands = gitUiCommands.GitModule;
        }
 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);
     }
 }
Пример #22
0
        public ZipperForm(ZipperPlugin plugin, ISettingsSource settings, GitUIEventArgs gitUiCommands)
        {
            InitializeComponent();
            Translate();

            Text            = _pluginDescription.Text;
            _plugin         = plugin;
            _settings       = settings;
            _gitCommands    = gitUiCommands.GitModule;
            _originalBranch = _gitCommands.GetSelectedBranch();
            _entriesAdded   = 0;
        }
Пример #23
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);
            BuildIdFilter = new Regex(config.GetString("BuildIdFilter", ""), RegexOptions.Compiled);
            var hostName = config.GetString("BuildServerUrl", null);
            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));
                    }

                }
            }
        }
Пример #24
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))
            {
                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));
                    }
                }
            }
        }
 public YahooApiDatasource(ISettingsSource settingsSource)
 {
     _settingsSource = settingsSource;
     Initialize();
 }
 public ShelveSettingsContainer(ISettingsSource container)
 {
     _container = container;
 }
 public ConfigurationSettings(ISettingsSource source)
 {
     _configWriter = source;
     _configWriter.Load();
 }
Пример #28
0
        public void Initialize(IBuildServerWatcher buildServerWatcher, ISettingsSource config)
        {
            if (_buildServerWatcher != null)
                throw new InvalidOperationException("Already initialized");

            _buildServerWatcher = buildServerWatcher;

            var projectName = config.GetString("ProjectName", null);
            var hostName = config.GetString("BuildServerUrl", null);

            if (!string.IsNullOrEmpty(hostName) && !string.IsNullOrEmpty(projectName))
            {
                var baseAdress = hostName.Contains("://")
                                     ? new Uri(hostName, UriKind.Absolute)
                                     : new Uri(string.Format("{0}://{1}:8080", Uri.UriSchemeHttp, hostName), UriKind.Absolute);

                _httpClient = new HttpClient
                    {
                        Timeout = TimeSpan.FromMinutes(2),
                        BaseAddress = baseAdress
                    };

                var buildServerCredentials = buildServerWatcher.GetBuildServerCredentials(this, true);

                UpdateHttpClientOptions(buildServerCredentials);

                var projectUrl = baseAdress + "job/" + projectName + "/";

                _getBuildUrls = GetResponseAsync(FormatToGetJson(projectUrl), CancellationToken.None)
                    .ContinueWith(
                        task =>
                            {
                                JObject jobDescription = JObject.Parse(task.Result);
                                return jobDescription["builds"].Select(b => b["url"].ToObject<string>());
                            },
                        TaskContinuationOptions.ExecuteSynchronously | TaskContinuationOptions.AttachedToParent);
            }
        }
 public void SaveSettings(ISettingsSource buildServerConfig)
 {
     buildServerConfig.SetString("BuildServerUrl", TeamCityServerUrl.Text);
     buildServerConfig.SetString("ProjectName", TeamCityProjectName.Text);
     buildServerConfig.SetString("BuildIdFilter", TeamCityBuildIdFilter.Text);
 }
 public void SaveSettings(ISettingsSource buildServerConfig)
 {
     buildServerConfig.SetString("BuildServerUrl", JenkinsServerUrl.Text);
     buildServerConfig.SetString("ProjectName", JenkinsProjectName.Text);
 }