private void GitForm_Load(object sender, EventArgs e) { string enlistmentRoot = @"E:\JProject\GitRepository\Work"; string workingDirectory = @"E:\JProject\GitRepository\Work\developmentdocs"; string repoUrl = "https://gitee.com/SkeCloud/SkeFramework.git"; string gitBinPath = @"D:\Program Files\Git\cmd\git.exe"; GitBaseConfig authConfig = new GitAuthConfig(enlistmentRoot, workingDirectory, repoUrl, gitBinPath); IGitCommandService command = new GitCommandService(authConfig); //Result result = gitProcess.InvokeGitOutsideEnlistment("version"); string version = command.GitVersion(); //string error = ""; string originUrl = "http://192.168.104.43/netProject/developmentdocs.git"; //string username = "******"; //string password = "******"; //ICredentialService credentialStore = new CredentialService(authConfig); //credentialStore.TryStoreCredential(repoUrl, username, password, out error); //username = ""; //password = ""; //credentialStore.TryGetCredential(repoUrl, out username, out password, out error); CloneService cloneService = new CloneService(authConfig); Result result = cloneService.GitClone(originUrl, "master"); result = cloneService.GitPull(); }
public ActionResult <IEnumerable <RemoteRepository> > PostRemoteRepository(RemoteRepository remoteRepository) { //先取得資料庫內已有的倉儲資料 IEnumerable <RemoteRepository> allRemoteRepositories = GetAllRemoteRepository().Result.Value; RemoteRepositoryService remoteRepositoryService = new RemoteRepositoryService(); //檢查是否重複新增 var exist = remoteRepositoryService.CheckRomoteRepository(remoteRepository.RemoteRepositoryUrl, allRemoteRepositories); if (exist) { string error = "此倉儲已經存在"; return(StatusCode(StatusCodes.Status405MethodNotAllowed, error)); } else { //在本地端clone專案 GitCommandService gitCommandService = new GitCommandService(); var cloneResult = gitCommandService.ExcuteCommand(new GitCommandInfo { Command = "clone", GitUrl = remoteRepository.RemoteRepositoryUrl, FilePath = ProjectPath.Path }); //在資料庫新增此倉儲資料 if (cloneResult.IsSuccessful) { remoteRepository.RemoteRepositoryId = Guid.NewGuid(); remoteRepository.ServerPath = cloneResult.Result + "/" + remoteRepositoryService.GetFolderName(remoteRepository.RemoteRepositoryUrl); remoteRepositoryRepository.Create(remoteRepository); return(CreatedAtAction(nameof(GetAllRemoteRepository), remoteRepository)); } else { //當clone失敗 return(StatusCode(StatusCodes.Status405MethodNotAllowed, cloneResult.ErrorMessage)); } //return CreatedAtAction(nameof(GetRemoteRepository), GetRemoteRepository().Result.Value); } }