public Test_Loading_TM_Repos()
        {
            TM_Libraries_Folder = @"E:\TeamMentor\TM_Releases\TM_Libraries\3.4.1_Libs";
            Assert.IsNotNull(TM_Libraries_Folder);
            Assert.IsTrue(TM_Libraries_Folder.dirExists());

            Temp_Cloned_Repos = "_Temp_Clones".tempDir(false);
            Assert.IsNotNull(Temp_Cloned_Repos);

            GitHub_Repo_Path = "[email protected]:TMContent/Lib_{0}.git";
            Assert.IsNotNull(GitHub_Repo_Path);

            GitExe_Path = "git.exe";
            Assert.IsNotNull(GitExe_Path);
            var gitExecutionResult = gitExe_Execute("", "");

            Assert.IsTrue(gitExecutionResult.starts("usage: git"));

            Skip_Online_Tests     = false;
            Delete_Temp_Repos     = true;
            Save_Git_Clone_Data   = true;
            Open_Temp_Repo_Folder = true;
            if (Open_Temp_Repo_Folder)
            {
                Temp_Cloned_Repos.startProcess();
            }
        }
        public API_NGit NGit_Clone(string repo_Source, string repo_Clone_Name)
        {
            var repo_Clone = Temp_Cloned_Repos.pathCombine(repo_Clone_Name);

            Assert.IsFalse(repo_Clone.dirExists());

            var nGit = repo_Source.git_Clone(repo_Clone);

            Assert.IsNotNull(nGit);
            nGit.close();
            return(checkRepo(repo_Source, repo_Clone));
        }
 public void saveCloneData(Git_Clone_Data cloneData)
 {
     if (Save_Git_Clone_Data)
     {
         var results_XmlFile = Temp_Cloned_Repos.pathCombine("Git_Clone_Data.xml");
         var gitCloneData    = (results_XmlFile.fileExists())
                                 ? results_XmlFile.load <List <Git_Clone_Data> >()
                                 : new List <Git_Clone_Data>();
         gitCloneData.add(cloneData);
         gitCloneData.saveAs(results_XmlFile);
     }
 }
        public API_NGit gitExe_Clone(string repo_Source, string repo_Clone_Name)
        {
            var repo_Clone = Temp_Cloned_Repos.pathCombine(repo_Clone_Name);
            var gitCommand = "clone \"{0}\" \"{1}\"".format(repo_Source, repo_Clone_Name);

            Assert.IsFalse(repo_Clone.dirExists());

            gitExe_Execute(gitCommand, Temp_Cloned_Repos);

            Assert.IsTrue(repo_Clone.dirExists());

            return(checkRepo(repo_Source, repo_Clone));
        }
        public API_NGit gitHub_Clone(string repoName)
        {
            if (Skip_Online_Tests)
            {
                "*** Skip_Online_Tests is set to true so Skipping GitHub clone".debug();
                return(null);
            }
            var gitCloneUrl = GitHub_Repo_Path.format(repoName);
            var repo_Clone  = Temp_Cloned_Repos.pathCombine(repoName.append("_GitHub").add_RandomLetters(3));

            Assert.IsFalse(repo_Clone.dirExists());

            var nGit = gitCloneUrl.git_Clone(repo_Clone);

            Assert.IsTrue(repo_Clone.dirExists());
            Assert.IsNotNull(nGit);
            return(nGit);
        }
        // to delete


        public API_NGit local_Clone(string repoName)
        {
            var repo_Source = TM_Libraries_Folder.pathCombine(repoName);

            Assert.IsTrue(repo_Source.dirExists());
            Assert.IsTrue(repo_Source.isGitRepository());

            var repo_Clone = Temp_Cloned_Repos.pathCombine(repoName.add_RandomLetters(3));

            Assert.IsFalse(repo_Clone.dirExists());

            var nGit = repo_Source.git_Clone(repo_Clone);

            Assert.IsTrue(repo_Clone.dirExists());
            Assert.IsNotNull(nGit);
            Assert.IsTrue(repo_Clone.isGitRepository());
            Assert.IsTrue(nGit.commits_SHA1().notEmpty());
            Assert.IsTrue(nGit.files().notEmpty());
            return(nGit);
        }