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"]); }
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(); }
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()); }
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)); }