public void JiraConfigShouldBeValid()
        {
            var config = new JiraConfig()
            {
                BaseUrl = "https://your-org.atlassian.net/rest/api/3",
                ApiKey = "some_api_key"
            };

            Assert.IsTrue(JiraConfigValidator.IsValid(config));
        }
        public void JiraConfigMissingApiKeyShouldNotBeValid()
        {
            var config = new JiraConfig()
            {
                BaseUrl = "https://your-org.atlassian.net/rest/api/3",
                ApiKey = string.Empty
            };

            JiraConfigValidator.IsValid(config);
        }
        public void JiraConfigMissingBaseUrlShouldNotBeValid()
        {
            var config = new JiraConfig()
            {
                BaseUrl = string.Empty,
                ApiKey = "some_api_key"

            };

            JiraConfigValidator.IsValid(config);
        }
Exemplo n.º 4
0
        static void Main()
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
            var configuration = builder.Build();

            try
            {
                var config = configuration.GetSection("AppSettings").GetSection("JiraConfig").Get <JiraConfig>();

                if (!JiraConfigValidator.IsValid(config))
                {
                    throw new Exception("Invalid configuration.");
                }

                var mappings = configuration.GetSection("AppSettings").GetSection("Mapping").Get <List <TeamMap> >();

                var enabledMappings = mappings.Where(map => map.Enabled).ToList();

                if (!enabledMappings.Any())
                {
                    Console.WriteLine("There are no team mappings enabled");
                    return;
                }

                Console.WriteLine($"Processing {enabledMappings.Count} team mappings...");

                enabledMappings.ForEach(map =>
                {
                    try
                    {
                        if (!TeamMapValidator.IsValid(map))
                        {
                            throw new Exception("Invalid map.");
                        }

                        var issueStore     = new IssueStore(config);
                        var changelogStore = new ChangelogStore(config);

                        var issueWriter   = new JiraStateWriter(map, issueStore, changelogStore);
                        var issuesToWrite = issueWriter.GetIssues();

                        Console.WriteLine($"Found {issuesToWrite.Count} issues for {map.TeamName}...");

                        issueWriter.WriteIssues(issuesToWrite);

                        Console.WriteLine($"Issues written to {map.OutputFileName}");
                    }
                    catch (InvalidMappingException exception)
                    {
                        Console.WriteLine($"{exception.Message}. Continuing to next map...");
                    }
                });

                Console.WriteLine("Complete");
            }
            catch (Exception exception)
            {
                Console.WriteLine($"Failed to process. {exception.Message}");
            }
        }