Example #1
0
        public IssueTrackerConfiguration GetConfiguration(IssueTrackerConfiguration storedConfiguration)
        {
            //
            // Extension parameters
            //

            var parameters = new List <IssueTrackerConfigurationParameter>
            {
                new IssueTrackerConfigurationParameter
                {
                    Name     = Globals.USER_KEY,
                    Value    = storedConfiguration.GetValidParameterValue(Globals.USER_KEY, Globals.DEFAULT_USER_KEY),
                    Type     = IssueTrackerConfigurationParameterType.User,
                    IsGlobal = false
                },
                new IssueTrackerConfigurationParameter
                {
                    Name     = Globals.BRANCH_PREFIX_KEY,
                    Value    = storedConfiguration.GetValidParameterValue(Globals.BRANCH_PREFIX_KEY, Globals.DEFAULT_BRANCH_PREFIX_KEY),
                    Type     = IssueTrackerConfigurationParameterType.BranchPrefix,
                    IsGlobal = true
                },
                new IssueTrackerConfigurationParameter
                {
                    Name     = Globals.PROJECT_OWNER,
                    Value    = storedConfiguration.GetValidParameterValue(Globals.PROJECT_OWNER, Globals.DEFAULT_PROJECT_OWNER),
                    Type     = IssueTrackerConfigurationParameterType.Text,
                    IsGlobal = false
                },
                new IssueTrackerConfigurationParameter
                {
                    Name     = Globals.PROJECT_NAME,
                    Value    = storedConfiguration.GetValidParameterValue(Globals.PROJECT_NAME, Globals.DEFAULT_PROJECT_NAME),
                    Type     = IssueTrackerConfigurationParameterType.Text,
                    IsGlobal = false
                },
                new IssueTrackerConfigurationParameter
                {
                    Name     = Globals.AUTH_TOKEN,
                    Value    = storedConfiguration.GetValidParameterValue(Globals.AUTH_TOKEN, Globals.DEFAULT_AUTH_TOKEN),
                    Type     = IssueTrackerConfigurationParameterType.Text,
                    IsGlobal = false
                },
                new IssueTrackerConfigurationParameter
                {
                    Name     = Globals.PLASTIC_WEBUI_URL,
                    Value    = storedConfiguration.GetValidParameterValue(Globals.PLASTIC_WEBUI_URL, Globals.DEFAULT_PLASTIC_WEBUI_URL),
                    Type     = IssueTrackerConfigurationParameterType.Text,
                    IsGlobal = false
                }
            };

            //
            // Other params
            //

            var workingMode = storedConfiguration.GetWorkingMode();

            return(new IssueTrackerConfiguration(workingMode, parameters));
        }
Example #2
0
        public bool TestConnection(IssueTrackerConfiguration configuration)
        {
            // This should throw an exception for a bad configuration
            _provider.TestConnection(configuration);

            // Otherwise succeded
            return(true);
        }
        //
        // URL Helpers
        //

        // API Urls

        public static string GetApiUrlForTasks(this IssueTrackerConfiguration configuration, string assignee)
        {
            string assigneeFilter = !string.IsNullOrEmpty(assignee)
                                ? $"assignee={ assignee.MapToCleanAssignee() }&"
                                : string.Empty;

            return($"{ configuration.GetApiUrl() }/issues?{ assigneeFilter }state=open");
        }
Example #4
0
        private IFavroConnection CreateConnection(IssueTrackerConfiguration connectionConfiguration)
        {
            var user       = connectionConfiguration.GetValue(KEY_USER);
            var password   = connectionConfiguration.GetValue(KEY_PASSWORD);
            var connection = new Connection(user, GetDecryptedPassword(password));

            connection.OrganizationId = connectionConfiguration.GetValue(KEY_ORGANIZATION);
            return(connection);
        }
Example #5
0
        public IPlasticIssueTrackerExtension GetIssueTrackerExtension(IssueTrackerConfiguration pConfiguration)
        {
            _log.Debug("YouTrackExtensionFactory: GetIssueTrackerExtension - start");
            var youtrackConfigFacade         = new YouTrackExtensionConfigFacade(pConfiguration);
            var plasticIssueTrackerExtension = new YouTrackExtension(youtrackConfigFacade);

            _log.Debug("YouTrackExtensionFactory: GetIssueTrackerExtension - completed");
            return(plasticIssueTrackerExtension);
        }
        private static string GetValidParameterValue(IssueTrackerConfiguration configuration, string key, string defaultValue)
        {
            string result = configuration != null?configuration.GetValue(key) : null;

            if (string.IsNullOrEmpty(result))
            {
                result = defaultValue;
            }
            return(result);
        }
        private ExtensionWorkingMode GetWorkingMode(IssueTrackerConfiguration configuration)
        {
            var mode = ExtensionWorkingMode.TaskOnBranch;

            if (configuration != null && configuration.WorkingMode != ExtensionWorkingMode.None)
            {
                mode = configuration.WorkingMode;
            }
            return(mode);
        }
        public static string GetPlasticChangesetURL(this IssueTrackerConfiguration configuration, PlasticChangeset changeset)
        {
            var customUrl = configuration.GetPlasticWebURL()?.Trim();

            if (!string.IsNullOrEmpty(customUrl))
            {
                return($"{ configuration.GetPlasticWebURL().Trim() }{ changeset.Id }");
            }

            return(string.Empty);
        }
        public static string GetValidParameterValue(
            this IssueTrackerConfiguration configuration, string paramName, string defaultValue)
        {
            var value = configuration?.GetValue(paramName);

            if (string.IsNullOrEmpty(value))
            {
                return(defaultValue);
            }
            return(value);
        }
Example #10
0
        private YouTrackExtensionConfigFacade getTestConfig()
        {
            var testStoredConfig = new IssueTrackerConfiguration()
            {
                WorkingMode = ExtensionWorkingMode.TaskOnBranch,
                Parameters  = getTestConfigParams()
            };
            var ytConfig = new YouTrackExtensionConfigFacade(testStoredConfig);

            return(ytConfig);
        }
        //
        // Misc
        //

        public static ExtensionWorkingMode GetWorkingMode(this IssueTrackerConfiguration configuration)
        {
            if (configuration == null)
            {
                return(ExtensionWorkingMode.TaskOnBranch);
            }

            if (configuration.WorkingMode == ExtensionWorkingMode.None)
            {
                return(ExtensionWorkingMode.TaskOnBranch);
            }

            return(configuration.WorkingMode);
        }
        public bool TestConnection(IssueTrackerConfiguration pConfiguration)
        {
            _log.Debug("YouTrackExtension: TestConnection - start");

            try
            {
                var config = new YouTrackExtensionConfigFacade(pConfiguration);
                YouTrackService.VerifyConfiguration(config);
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        private static RedmineManager CreateRedmineManager(IssueTrackerConfiguration config)
        {
            string host   = config.GetValue(CSRedmineExtension.HOST_KEY);
            string apikey = config.GetValue(CSRedmineExtension.APIKEY_KEY);

            if (apikey == null || apikey == String.Empty)
            {
                string user     = config.GetValue(CSRedmineExtension.USER_KEY); //  config.User;
                string password = CryptoServices.GetDecryptedPassword(config.GetValue(CSRedmineExtension.PASSWORD_KEY));

                return(new RedmineManager(host, user, password));
            }

            return(new RedmineManager(host, apikey));
        }
        public bool CsTestConnection(IssueTrackerConfiguration configuration)
        {
            IssueTrackerConfiguration redmineConfig = configuration as IssueTrackerConfiguration;

            try
            {
                var  manager = CreateRedmineManager(redmineConfig);
                User user    = manager.GetCurrentUser();
                return(!string.IsNullOrEmpty(user.Login));
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #15
0
        public bool TestConnection(IssueTrackerConfiguration configuration)
        {
            var testConnection = CreateConnection(configuration);
            var testMethods    = new FavroApiFacade(testConnection, logger);

            try
            {
                return(testMethods.GetOrganization(testConnection.OrganizationId) != null);
            }
            catch (Exception)
            {
                // When the plugin is not well configured the previous call throws an exception
                // In that case return false
                return(false);
            }
        }
Example #16
0
        public IssueTrackerConfiguration GetConfiguration(IssueTrackerConfiguration pStoredConfiguration)
        {
            _log.Debug("YouTrackExtensionFactory: GetConfiguration - start");

            var configFacade = pStoredConfiguration != null
                ? new YouTrackExtensionConfigFacade(pStoredConfiguration)
                : new YouTrackExtensionConfigFacade(new IssueTrackerConfiguration());

            var workingMode = configFacade.WorkingMode;
            var parameters  = configFacade.GetYouTrackParameters();

            var issueTrackerConfiguration = new IssueTrackerConfiguration(workingMode, parameters);

            _log.Debug("YouTrackExtensionFactory: GetConfiguration - completed");
            return(issueTrackerConfiguration);
        }
        public IssueTrackerConfiguration GetConfiguration(IssueTrackerConfiguration storedConfiguration)
        {
            var workingMode = GetWorkingMode(storedConfiguration);
            var parameters  = new List <IssueTrackerConfigurationParameter>();

            parameters.Add(GetUserParameter(storedConfiguration));
            parameters.Add(GetPasswordParameter(storedConfiguration));

            parameters.Add(new IssueTrackerConfigurationParameter("WorkflowInfoSeparator", "Workflow configuration:", IssueTrackerConfigurationParameterType.Label, false));
            parameters.Add(GetBranchPrefixParameter(storedConfiguration));
            parameters.Add(GetBranchSuffixParameter(storedConfiguration));
            parameters.Add(GetDoingColumnNameParameter(storedConfiguration));

            parameters.Add(new IssueTrackerConfigurationParameter("FilterInfoSeparator", "Filters Favro Cards by:", IssueTrackerConfigurationParameterType.Label, false));
            parameters.Add(GetOrganizationParameter(storedConfiguration));
            parameters.Add(GetCollectionIdParameter(storedConfiguration));
            parameters.Add(GetWidgetCommonIdParameter(storedConfiguration));

            return(new IssueTrackerConfiguration(workingMode, parameters));
        }
Example #18
0
 public YouTrackExtensionConfigFacade(IssueTrackerConfiguration pConfig)
 {
     _log.Debug("YouTrackExtensionConfigFacade: configured ctor called");
     Config       = pConfig;
     BranchPrefix = getValidParameterValue(Config, ConfigParameterNames.BranchPrefix, pDefaultValue: "yt_");
     HostUri      = getValidParameterValue(Config, ConfigParameterNames.HostUri, pDefaultValue: new Uri("http://issues.domain.com"), converter: new UriTypeConverter());
     UserId       = getValidParameterValue(Config, ConfigParameterNames.UserId, pDefaultValue: "api");
     Password     = getValidParameterValue(Config, ConfigParameterNames.Password, pDefaultValue: string.Empty);
     ShowIssueStateInBranchTitle = getValidParameterValue
                                       (Config, ConfigParameterNames.ShowIssueStateInBranchTitle, pDefaultValue: true);
     PostCommentsToTickets           = getValidParameterValue(Config, ConfigParameterNames.PostCommentsToTickets, pDefaultValue: true);
     _ignoreIssueStateForBranchTitle = getValidParameterValue
                                           (Config, ConfigParameterNames.ClosedIssueStates, pDefaultValue: "Completed");
     _usernameMapping = getValidParameterValue(Config, ConfigParameterNames.UsernameMapping, pDefaultValue: "api:ytusername");
     WebGuiRootUrl    = getValidParameterValue
                            (Config, ConfigParameterNames.WebGuiRootUrl, pDefaultValue: new Uri("http://plastic-gui.domain.com:7178/"), converter: new UriTypeConverter());
     WorkingMode             = getValidParameterValue(Config, nameof(ExtensionWorkingMode), pDefaultValue: ExtensionWorkingMode.TaskOnBranch);
     _createBranchIssueQuery = getValidParameterValue
                                   (Config, ConfigParameterNames.CreateBranchIssueQuery, pDefaultValue: "#unresolved order by: updated desc");
     _createBranchTransitions = getValidParameterValue
                                    (Config, ConfigParameterNames.CreateBranchTransitions, pDefaultValue: "Submitted:Start Work;Planned:Start Work;Incomplete:Start Work");
     _log.Debug("YouTrackExtensionConfigFacade: configured ctor completed");
 }
Example #19
0
        protected static T getValidParameterValue <T>
            (IssueTrackerConfiguration pConfig, string pParamName, TypeConverter converter = null, T pDefaultValue = default(T))
        {
            if (string.IsNullOrEmpty(pParamName))
            {
                throw new ApplicationException("The parameter name cannot be null or empty!");
            }

            if (pConfig == null || pConfig.Parameters.Length == 0)
            {
                return(pDefaultValue);
            }

            if (pParamName == nameof(ExtensionWorkingMode))
            {
                return(pDefaultValue);
            }

            var configValue = pConfig.GetValue(pParamName);

            if (string.IsNullOrEmpty(configValue))
            {
                return(pDefaultValue);
            }

            try
            {
                return(converter != null
                        ? (T)converter.ConvertFromString(configValue)
                        : (T)Convert.ChangeType(configValue, typeof(T)));
            }
            catch (Exception e)
            {
                _log.Error(e.Message);
                return(pDefaultValue);
            }
        }
 public static string GetUserKey(this IssueTrackerConfiguration configuration)
 => configuration.GetValue(Globals.USER_KEY);
Example #21
0
 public IPlasticIssueTrackerExtension GetIssueTrackerExtension(IssueTrackerConfiguration configuration)
 {
     return(new GitHubExtension(configuration));
 }
        public void TestConnection(IssueTrackerConfiguration byPassConfiguration)
        {
            var url = byPassConfiguration.GetApiUrlForTasks(null);

            _httpHelper.CallApi(url, byPassConfiguration.GetAuthToken());
        }
 public GitHubProvider(IssueTrackerConfiguration configuration, IGitHubHttpHelper httpHelper)
 {
     _configuration = configuration;
     _httpHelper    = httpHelper;
 }
        public bool TestConnection(IssueTrackerConfiguration configuration)
        {
            var testConfig = new YouTrackExtensionConfiguration(configuration);
            _authRetryCount = 0;
            Authenticate(testConfig.BaseURL, testConfig.User, testConfig.Password);

            var result = _authRetryCount == 0;
            //cleanup
            Authenticate(mConfig.BaseURL, mConfig.User, mConfig.Password);
            return result;
        }
 public static string GetUrl(this IssueTrackerConfiguration configuration)
 => $"{ Globals.GITHUB_URL }{ configuration.GetProjectOwner() }/{ configuration.GetProjectName() }";
        // Browsing Urls

        public static string GetUrlForTask(this IssueTrackerConfiguration configuration, string taskId)
        => $"{ configuration.GetUrl() }/issues/{ taskId }";
 public static string GetApiUrlForTaskCommenting(this IssueTrackerConfiguration configuration, string taskId)
 => $"{ configuration.GetApiUrl() }/issues/{ taskId }/comments";
        internal YoutrackExtension(IssueTrackerConfiguration config)
        {
            mConfig = new YouTrackExtensionConfiguration(config);

            mLog.Info("Youtrack issue tracker is initialized");
        }
 public static string GetPlasticWebURL(this IssueTrackerConfiguration configuration)
 => configuration.GetValue(Globals.PLASTIC_WEBUI_URL);
 public static string GetAuthToken(this IssueTrackerConfiguration configuration)
 => configuration.GetValue(Globals.AUTH_TOKEN);
 public static string GetProjectName(this IssueTrackerConfiguration configuration)
 => configuration.GetValue(Globals.PROJECT_NAME);
 public static string GetProjectOwner(this IssueTrackerConfiguration configuration)
 => configuration.GetValue(Globals.PROJECT_OWNER);