public void Clone_Private_Repo_No_Authorization()
        {
            var repoToClone = "UnitTests_TestRepo_Private";
            var pathToRepo  = tempFolder.pathCombine(repoToClone);

            Files.deleteFolder(pathToRepo, true);
            Assert.IsTrue(tempFolder.dirExists());
            Assert.IsEmpty(tempFolder.dirs());
            Assert.IsFalse(pathToRepo.dirExists());
            Assert.IsFalse(pathToRepo.isGitRepository());

            var ngit_O2       = new API_NGit_O2Platform(tempFolder);
            var repositoryUrl = ngit_O2.repositoryUrl(repoToClone);

            Assert.IsNull(ngit_O2.Last_Exception);

            //clone should fail
            ngit_O2.clone(repositoryUrl, pathToRepo);

            //no git repo should be there (if clone failed
            Assert.IsNotNull(ngit_O2.Last_Exception);
            Assert.IsEmpty(tempFolder.dirs());
            Assert.IsFalse(pathToRepo.dirExists());
            Assert.IsFalse(pathToRepo.isGitRepository());
        }
Ejemplo n.º 2
0
        public void Clone_Private_Repo_With_Authentication_SSH()
        {
            var privateKey = @"C:\Users\o2\.ssh\id_rsa";
            var publicKey  = @"C:\Users\o2\.ssh\id_rsa.pub";

            if (privateKey.fileExists().isFalse() || publicKey.fileExists().isFalse())
            {
                Assert.Ignore("Ignoring test because test SSH keys were not found");
            }

            var factory = new CustomConfigSessionFactory(publicKey.fileContents(), privateKey.fileContents());

            SshSessionFactory.SetInstance(factory);


            var repoToClone   = "UnitTests_TestRepo_Private";
            var repositoryUrl = "[email protected]:o2platform/{0}.git".format(repoToClone);
            var pathToRepo    = tempFolder.pathCombine(repoToClone);
            var ngit_O2       = new API_NGit_O2Platform(tempFolder);

            ngit_O2.clone(repositoryUrl, pathToRepo);

            Assert.IsNull(ngit_O2.Last_Exception);
            Assert.IsNotEmpty(tempFolder.dirs());
            Assert.IsTrue(pathToRepo.dirExists());
            Assert.IsTrue(pathToRepo.isGitRepository());

            ngit_O2.delete_Repository_And_Files();

            Assert.IsFalse(pathToRepo.dirExists());
            SshSessionFactory.SetInstance(null);
        }
Ejemplo n.º 3
0
        public static API_NGit_O2Platform cloneOrPull(this API_NGit_O2Platform nGit_O2, string repositoryName)
        {
            var repositoryUrl = nGit_O2.repositoryUrl(repositoryName);
            var localPath     = nGit_O2.LocalGitRepositories.pathCombine(repositoryName);

            nGit_O2.open_or_Clone(repositoryUrl, localPath);
            return(nGit_O2);
        }
        public void NGit_O2Platform()
        {
            var repoToClone = "UnitTests_TestRepo";
            var pathToRepo  = tempFolder.pathCombine(repoToClone);

            Assert.IsTrue(tempFolder.dirExists());
            Assert.IsEmpty(tempFolder.dirs());
            Assert.IsFalse(pathToRepo.dirExists());
            Assert.IsFalse(pathToRepo.isGitRepository());

            API_NGit_O2Platform ngit_O2 = null;

            Action checkRepo =
                () => {
                Assert.IsNotNull(ngit_O2);
                Assert.IsNull(ngit_O2.Git);
                Assert.IsNull(ngit_O2.Repository);

                ngit_O2.cloneOrPull(repoToClone);

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

                ngit_O2.open(pathToRepo);

                Assert.IsNotNull(ngit_O2.Git);
                Assert.IsNotNull(ngit_O2.Repository);

                ngit_O2.nGit().close();
            };

            //Test Clone
            ngit_O2 = new API_NGit_O2Platform(tempFolder);
            checkRepo();

            //Test Open
            ngit_O2 = new API_NGit_O2Platform(tempFolder);
            checkRepo();

            var result = ngit_O2.delete_Repository_And_Files();

            Assert.IsTrue(result);

            tempFolder.delete_Folder();
            Assert.IsFalse(tempFolder.dirExists());
        }
        public static void buildGui()
        {
            var topPanel = O2Gui.open <Panel>("Util - Sync and Compile O2 Repositories", 1000, 600);

            //var topPanel = panel.clear().add_Panel();

            topPanel.insert_LogViewer();
            var msBuildGui = topPanel.add_MSBuild_Gui();

            var nGit_O2 = new API_NGit_O2Platform();

            //for the O2 installer:
            nGit_O2.LocalGitRepositories = PublicDI.config.CurrentExecutableDirectory.pathCombine("..").fullPath();                  // by default it is one  above the current one

            gitSync =
                () => {
                nGit_O2.cloneOrPull("O2.FluentSharp")
                .cloneOrPull("O2.Platform.Projects")
                .cloneOrPull("O2.Platform.Scripts");
                "gitSync completed".info();
            };

            compileProjects =
                () => {
                msBuildGui.buildProjects(nGit_O2.LocalGitRepositories, startO2);
            };
            startO2 =
                () => {
                nGit_O2.LocalGitRepositories.pathCombine(@"O2.Platform.Projects\binaries\O2 Platform.exe").startProcess();
            };
            //msBuildGui.tableList.title("O2 Platform - MSBuild results");

            msBuildGui.topPanel.insert_Above(40, "Actions")
            .add_Link("Git Sync", () => gitSync())
            .append_Link("Compile Projects", () => compileProjects())
            .append_Link("Open Target Folder in Explorer", () => nGit_O2.LocalGitRepositories.startProcess())
            .append_Link("Start 'O2 Platform.exe'", () => startO2())
            .append_Label("Target Folder:").autoSize().top(2)
            .append_TextBox(nGit_O2.LocalGitRepositories).align_Right()
            .onTextChange((text) => nGit_O2.LocalGitRepositories = text);
        }
		public static void buildGui()
		{
			var topPanel = O2Gui.open<Panel>("Util - Sync and Compile O2 Repositories",1000,600); 
			//var topPanel = panel.clear().add_Panel();  
			 
			topPanel.insert_LogViewer(); 
			var msBuildGui = topPanel.add_MSBuild_Gui();   
			
			var nGit_O2 = new API_NGit_O2Platform();			
			
			//for the O2 installer:			
			nGit_O2.LocalGitRepositories 	  = PublicDI.config.CurrentExecutableDirectory.pathCombine("..").fullPath(); // by default it is one  above the current one
			
			gitSync = 
				()=>{
						nGit_O2	.cloneOrPull("O2.FluentSharp")
							  	.cloneOrPull("O2.Platform.Projects")
							   	.cloneOrPull("O2.Platform.Scripts"); 
						"gitSync completed".info();
					};
			
			compileProjects = 
				()=>{
						msBuildGui.buildProjects(nGit_O2.LocalGitRepositories, startO2);
					};
			startO2 =
				()=>{
						nGit_O2.LocalGitRepositories.pathCombine(@"O2.Platform.Projects\binaries\O2 Platform.exe").startProcess();
					};
			//msBuildGui.tableList.title("O2 Platform - MSBuild results");   
			
			msBuildGui.topPanel.insert_Above(40,"Actions")
					  .add_Link	 	 ("Git Sync", 		 ()=> gitSync())
					  .append_Link	 ("Compile Projects", ()=> compileProjects())		  
					  .append_Link	 ("Open Target Folder in Explorer", ()=> nGit_O2.LocalGitRepositories.startProcess())
					  .append_Link	 ("Start 'O2 Platform.exe'", ()=> startO2())
					  .append_Label  ("Target Folder:").autoSize().top(2)
					  .append_TextBox(nGit_O2.LocalGitRepositories).align_Right()
					  											   .onTextChange((text)=> nGit_O2.LocalGitRepositories = text);

		}
        public void Clone_Private_Repo_With_Authentication_UserName_Pwd()
        {
            var hardCodedbadPWd = "pwd_123456!!!";

            //clone should fail unless the values above are configured to a valid account
            var username = "******";
            var pwd      = hardCodedbadPWd;


            var repoToClone = "UnitTests_TestRepo_Private";
            var pathToRepo  = tempFolder.pathCombine(repoToClone);
            var ngit_O2     = new API_NGit_O2Platform(tempFolder);

            var repositoryUrl = ngit_O2.repositoryUrl(repoToClone);

            ngit_O2.use_Credential(username, pwd);

            ngit_O2.clone(repositoryUrl, pathToRepo);
            if (pwd == hardCodedbadPWd)
            {
                Assert.IsNotNull(ngit_O2.Last_Exception);
                Assert.IsTrue(ngit_O2.Last_Exception.Message.contains("not authorized"));
            }
            else
            {
                // these will only run when we are using a valid GitHub Account
                Assert.IsNull(ngit_O2.Last_Exception);
                Assert.IsNotEmpty(tempFolder.dirs());
                Assert.IsTrue(pathToRepo.dirExists());
                Assert.IsTrue(pathToRepo.isGitRepository());
            }

            ngit_O2.delete_Repository_And_Files();

            Assert.IsFalse(pathToRepo.dirExists());
        }
Ejemplo n.º 8
0
 public static string repositoryUrl(this API_NGit_O2Platform nGit_O2, string repositoryName)
 {
     return(nGit_O2.GitHub_O2_Repositories.format(repositoryName));
 }
Ejemplo n.º 9
0
 public static API_NGit nGit(this API_NGit_O2Platform nGit_O2)
 {
     return(nGit_O2);
 }