Exemple #1
0
        private static void GenerateAllVersions(RepositoryUrl repositoryUrl)
        {
            var mongo = new MongoRepository();
            var commits = mongo.GetCommits().Where(x => x.RepositoryUrl.Equals(repositoryUrl.Url));

            commits.ToList().ForEach(x => GenerateVersion(repositoryUrl, x.SHA));
        }
        public void AddRepository(RepositoryUrl repositoryUrl)
        {
            CloneProject(repositoryUrl);

            var commits = GetCommits(repositoryUrl);
            InsertCommits(repositoryUrl.Url, commits);
        }
        public void SaveMetrics(RepositoryUrl repositoryUrl, string commitSHA, List<Module> modules)
        {
            var colCommits = GetDatabase().GetCollection<Commits>("commits");

            var commit = colCommits.FindOne(Query.EQ("SHA", commitSHA));
            commit.Modules = modules;

            colCommits.Save(commit);
        }
        public void GenerateSpecificVersion(RepositoryUrl repositoryUrl, string commit)
        {
            var pathResolver = new PathResolver(repositoryUrl.Url, commit);

            var repositoryFolder = pathResolver.GetRepositoryPath();
            var repository = new Repository(repositoryFolder + "/.git");
            repository.Checkout(commit);

            var commitFolder = pathResolver.GetVersionPath();
            Directory.CreateDirectory(commitFolder);

            DirectoryCopy(repositoryFolder, commitFolder, true);

            repository.Checkout(repository.Branches["master"]);
        }
Exemple #5
0
        public Solution(RepositoryUrl repositoryUrl, string commit)
        {
            _repositoryUrl = repositoryUrl;
            _commit = commit;
            _pathResolver = new PathResolver(repositoryUrl.Url, commit);

            _metricServices = new List<MetricService>()
                {
                    new PowerMetricsService(_pathResolver)
                };

            var solutionFiles = GetVersionPath().SearchFor("*.sln");
            SolutionPath = solutionFiles[0].FullName;
            Projects = GetProjects();
        }
Exemple #6
0
        private static void CalculateMetrics(RepositoryUrl repositoryUrl)
        {
            var mongo = new MongoRepository();
            var commits = mongo.GetCommits().Where(x => x.RepositoryUrl.Equals(repositoryUrl.Url)).ToList();

            commits.ForEach(x =>
                {
                    //try
                    //{
                        var solution = new Solution(repositoryUrl, x.SHA);
                        solution.Build();
                        solution.CalculateMetrics();
                        solution.SaveMetrics();
                        WriteToConsole(x.SHA + "- OK");
                    //}
                    //catch (Exception ex)
                    //{
                    //    WriteToConsole(x.SHA + "- ERROR - " + ex.Message);
                    //}

                });
        }
 private IQueryable<Commit> GetCommits(RepositoryUrl repositoryUrl)
 {
     var pathResolver = new PathResolver(repositoryUrl.Url);
     var repository = new Repository(pathResolver.GetRepositoryPath());
     return repository.Commits.OrderByDescending(x => x.Author.When.UtcDateTime).AsQueryable();
 }
 private void CloneProject(RepositoryUrl repositoryUrl)
 {
     var pathResolver = new PathResolver(repositoryUrl.Url);
     Repository.Clone(repositoryUrl.Url, pathResolver.GetRepositoryPath());
 }
Exemple #9
0
 private static void GenerateVersion(RepositoryUrl repositoryUrl, string commit)
 {
     var repository = new Infra.RepositoryRetriever();
     repository.GenerateSpecificVersion(repositoryUrl,commit);
 }
 public void DeleteUrl(RepositoryUrl url)
 {
     var database = GetDatabase();
     var collection = database.GetCollection<RepositoryUrl>("urls");
     collection.Remove(Query.EQ("_id", url.Id));
 }