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