Esempio n. 1
0
 public static void cloneRepo(List<Repos> repolist,string path)
 {
     var credentials = new UsernamePasswordCredentialsProvider(Credencials.user, Credencials.password);
     for (int i = 0; i < repolist.Count; i++)
     {
         var checkeditem = repolist[i];
         Sharpen.FilePath dir = new Sharpen.FilePath(path + "\\" + checkeditem.name);
         dir.Mkdir();
         Git.CloneRepository().SetDirectory(dir).SetURI(checkeditem.clone_url).SetCredentialsProvider(credentials).Call().GetRepository().Close();
     }
 }
Esempio n. 2
0
        /// <summary>
        /// リモートリポジトリをローカルへ複製する
        /// </summary>
        /// <param name="entity">エンティティ</param>
        /// <param name="monitor">モニター</param>
        public void CloneRepository(CloneEntity entity, BusyIndicatorProgressMonitor monitor)
        {
            FilePath directory = entity.Path;

            CloneCommand clone = new CloneCommand();

            //clone.SetCloneAllBranches(true);
            clone.SetDirectory(directory);
            clone.SetURI(entity.Url);

            clone.SetProgressMonitor(monitor);

            if (entity.IsCredential)
            {
                UsernamePasswordCredentialsProvider user = new UsernamePasswordCredentialsProvider(entity.UserName, entity.PassWord);

                clone.SetCredentialsProvider(user);
            }
            BackgroundWorker bw = new BackgroundWorker();

            bw.DoWork += (s, evt) =>
                {
                    monitor.StartAction();

                    try
                    {
                        clone.Call();
                    }
                    catch (JGitInternalException)
                    {
                        // TODO:
                    }
                };
            bw.RunWorkerCompleted += (s, evt) =>
                {
                    monitor.CompleteAction();
                };
            bw.RunWorkerAsync();
        }
		private void Fetch()
		{
			var credentialsProvider = new UsernamePasswordCredentialsProvider(_settings.Login, _settings.Password);

			_git.Clean().Call();
			_git.Fetch().SetCredentialsProvider(credentialsProvider).SetRemoveDeletedRefs(true).Call();
		}
		private NGit.Api.Git GetClient(ISourceControlConnectionSettingsSource settings)
		{
			var repositoryFolder = GetLocalRepository(settings);
			if (IsRepositoryUriChanged(repositoryFolder, settings))
			{
				repositoryFolder.Delete();
				repositoryFolder = GitRepositoryFolder.Create(settings.Uri);
				_folder.ReplaceWith(repositoryFolder);
			}

			NGit.Api.Git nativeGit;

			try
			{
				var credentialsProvider = new UsernamePasswordCredentialsProvider(settings.Login, settings.Password);
				if (repositoryFolder.Exists())
				{
                    string path = repositoryFolder.GetAbsolutePath();
					nativeGit = NGit.Api.Git.Open(path);
				}
				else
				{
                    string path = repositoryFolder.GetAbsolutePath();
					nativeGit = NGit.Api.Git.CloneRepository()
						.SetURI(settings.Uri)
						.SetNoCheckout(true)
						.SetCredentialsProvider(credentialsProvider)
						.SetDirectory(path).Call();
				}
			}
			catch (EOFException ex)
			{
				throw new InvalidOperationException("Unable to connect to repository. Run 'git fsck' in the repository to check for possible errors.", ex);
			}
			catch (ArgumentNullException exception)
			{
				throw new ArgumentException(
					GitCheckConnectionErrorResolver.INVALID_URI_OR_INSUFFICIENT_ACCESS_RIGHTS_ERROR_MESSAGE, exception);
			}

			return nativeGit;
		}
Esempio n. 5
0
        /// <summary>
        /// フェッチ
        /// </summary>
        /// <param name="git"></param>
        /// <param name="privateKeyData"></param>
        /// <param name="publicKeyData"></param>
        /// <param name="monitor"></param>
        public void Fetch(Git git, CloneEntity entity, string privateKeyData, string publicKeyData, BusyIndicatorProgressMonitor monitor)
        {
            var customConfigSessionFactory = new CustomConfigSessionFactory();

            customConfigSessionFactory.PrivateKey = privateKeyData;
            customConfigSessionFactory.PublicKey = publicKeyData;

            NGit.Transport.JschConfigSessionFactory.SetInstance(customConfigSessionFactory);

            UsernamePasswordCredentialsProvider creds = new UsernamePasswordCredentialsProvider(entity.UserName, entity.PassWord);

            FetchCommand command = git.Fetch();

            RefSpec spec = new RefSpec("refs/heads/master:refs/heads/FETCH_HEAD");

            command.SetRemoveDeletedRefs(true);
            command.SetRefSpecs(spec);
            command.SetProgressMonitor(monitor);
            command.SetCredentialsProvider(creds);

            BackgroundWorker bw = new BackgroundWorker();

            bw.DoWork += (s, evt) =>
            {
                monitor.StartAction();

                try
                {
                    command.Call();
                }
                catch (JGitInternalException)
                {
                    // TODO:
                }
            };
            bw.RunWorkerCompleted += (s, evt) =>
            {
                monitor.CompleteAction();
            };
            bw.RunWorkerAsync();
        }
Esempio n. 6
0
        /// <summary>
        /// リモートリポジトリをローカルへ複製する
        /// </summary>
        /// <param name="entity">エンティティ</param>
        /// <param name="privateKeyData">秘密鍵</param>
        /// <param name="publicKeyData">公開鍵</param>
        /// <param name="monitor">モニター</param>
        public void CloneRepository(CloneEntity entity, string privateKeyData, string publicKeyData, BusyIndicatorProgressMonitor monitor)
        {
            var customConfigSessionFactory = new CustomConfigSessionFactory();

            customConfigSessionFactory.PrivateKey = privateKeyData;
            customConfigSessionFactory.PublicKey = publicKeyData;

            NGit.Transport.JschConfigSessionFactory.SetInstance(customConfigSessionFactory);

            UsernamePasswordCredentialsProvider creds = new UsernamePasswordCredentialsProvider(entity.UserName, entity.PassWord);

            FilePath directory = entity.Path;
            BackgroundWorker bw = new BackgroundWorker();

            bw.DoWork += (s, evt) =>
            {
                monitor.StartAction();

                try
                {
                    var git = Git.CloneRepository()
                                  .SetProgressMonitor(monitor)
                                  .SetDirectory(directory)
                                  .SetURI(entity.Url)
                                  .SetBranchesToClone(new Collection<string>() { "master" })
                                  .SetCredentialsProvider(creds)
                                  .Call();
                }
                catch (JGitInternalException)
                {
                    // TODO:
                }
            };
            bw.RunWorkerCompleted += (s, evt) =>
            {
                monitor.CompleteAction();
                //this.SettingHttpBufferSize(entity.Path);
            };
            bw.RunWorkerAsync();
            
        }
        private static NGit.Api.Git GetClient(ISourceControlConnectionSettingsSource settings)
        {
            var repositoryFolder = GetLocalRepository(settings);
            if (IsRepositoryUriChanged(repositoryFolder, settings))
            {
                repositoryFolder.Delete();
                repositoryFolder = GitRepositoryFolder.Create(settings.Uri);
                var repoFolderStorage = Repository.Get<GitRepositoryFolder>();
                repoFolderStorage.ReplaceWith(repositoryFolder);
            }

            NGit.Api.Git nativeGit;

            try
            {
                var credentialsProvider = new UsernamePasswordCredentialsProvider(settings.Login, settings.Password);
                if (repositoryFolder.Exists())
                {
                    nativeGit = NGit.Api.Git.Open(repositoryFolder.Value);
                }
                else
                {
                    nativeGit = NGit.Api.Git.CloneRepository()
                        .SetURI(settings.Uri)
                        .SetNoCheckout(true)
                        .SetCredentialsProvider(credentialsProvider)
                        .SetDirectory(repositoryFolder.Value).Call();
                }
            }
            catch (ArgumentNullException exception)
            {
                throw new ArgumentException(
                    GitCheckConnectionErrorResolver.INVALID_URI_OR_INSUFFICIENT_ACCESS_RIGHTS_ERROR_MESSAGE, exception);
            }

            return nativeGit;
        }
		private void Fetch()
		{
			var credentialsProvider = new UsernamePasswordCredentialsProvider(_settings.Login, _settings.Password);

			_git.Clean().Call();
			_git.Fetch().SetTimeout(PluginSettings.LoadInt(ConnectionTimeoutInSecondsSectionName, 0)).SetCredentialsProvider(credentialsProvider).SetRemoveDeletedRefs(true).Call();
		}
Esempio n. 9
0
        private void Open_Repo_Button(object sender, System.Windows.RoutedEventArgs e)
        {
            string s =  FolderPathTextBox4.Text + "/" + RepoNameTextBox1.Text+  ".git";
            activeURI = s;
            if (terminalMode)
            {
                activeRepoPath = FolderPathTextBox4.Text;
                if (s.StartsWith("C:\\"))
                {
                    openActivePath();
                }

            }
            else
            {
                var credentials = new UsernamePasswordCredentialsProvider("michael4243", "surprises0");
                CredentialsProvider.SetDefault(credentials);
            }
            Go_To_RepositoryMainGrid(sender, e);
        }
Esempio n. 10
0
        private void Clone_Repo_Button(object sender, System.Windows.RoutedEventArgs e)
        {
            //string rootedPath = Repository.Init(path + "\\" + name, bareRepo);
            string cloneDestination = FolderPathTextBox3.Text;
            if (terminalMode)
            {
                checkTerminal();
                autoIt.WinActivate("cmd.exe");
                autoIt.WinWaitActive("cmd.exe");
                activeRepoPath = cloneDestination;
                string cmd = "git clone " + activeURI + " " + cloneDestination;
                autoIt.Send(cmd + "\r");
                //autoIt.WinActivate("MainWindow");
            }
            else
            {

                var credentials = new UsernamePasswordCredentialsProvider("michael4243", "surprises0");
                CredentialsProvider.SetDefault(credentials);
                // Let's clone the NGit repository
                var clone = Git.CloneRepository()
                    .SetDirectory(@activeRepoPath)
                    .SetURI(activeURI);

                // Execute and return the repository object we'll use for further commands
                repository = clone.Call();
                //Console.WriteLine(rootedPath);
                Go_To_RepositoryMainGrid(sender, e);
            }
        }
Esempio n. 11
0
 public void GetIdentity(IPluginHost host, IProject project)
 {
     Console.WriteLine("The following options are available:");
     Console.WriteLine("[0]: Username and password (HTTPS)");
     Console.WriteLine("[1]: Private key (SSH)");
     int selection = -1;
     while (selection != 0)
     {
         Console.Write("> ");
         var input = Console.ReadLine();
         int.TryParse(input, out selection);
         if (selection == 1)
             Console.WriteLine("Not currently supported");
     }
     if (selection == 0)
     {
         Console.Write("Username: "******"Password: "******"GitProvider.Username"] = username;
         project["GitProvider.Password"] = password;
         Credentials = new UsernamePasswordCredentialsProvider(username, password);
     }
 }