public void Initialize() { User = new User(); gitClient.GetConfig("user.name", GitConfigSource.User) .Then((s, x) => User.Name = x) .Then(gitClient.GetConfig("user.email", GitConfigSource.User)) .Then((s, x) => User.Email = x) .Start(); }
public IObservable <int> GetPullRequestForCurrentBranch(ILocalRepositoryModel repository) { return(Observable.Defer(() => { var repo = gitService.GetRepository(repository.LocalPath); var configKey = string.Format( CultureInfo.InvariantCulture, "branch.{0}.{1}", repo.Head.FriendlyName, SettingGHfVSPullRequest); return gitClient.GetConfig <int>(repo, configKey).ToObservable(); })); }
public IObservable <Tuple <string, int> > GetPullRequestForCurrentBranch(ILocalRepositoryModel repository) { return(Observable.Defer(async() => { var repo = gitService.GetRepository(repository.LocalPath); var configKey = string.Format( CultureInfo.InvariantCulture, "branch.{0}.{1}", repo.Head.FriendlyName, SettingGHfVSPullRequest); var value = await gitClient.GetConfig <string>(repo, configKey); return Observable.Return(ParseGHfVSConfigKeyValue(value)); })); }
private async Task <IRepository> InitializeRepository() { head = repositoryPaths.DotGitHead.ReadAllLines().FirstOrDefault(); RefreshConfigData(); var user = new User(); var res = await GitClient.GetConfig("user.name", GitConfigSource.User).StartAwait(); user.Name = res; res = await gitClient.GetConfig("user.email", GitConfigSource.User).StartAwait(); if (res == null) { throw new InvalidOperationException("No user configured"); } user.Email = res; repository.User = user; return(repository); }
public IObservable <Unit> RemoveUnusedRemotes(ILocalRepositoryModel repository) { return(Observable.Defer(async() => { var repo = gitService.GetRepository(repository.LocalPath); var usedRemotes = new HashSet <string>( repo.Branches .Where(x => !x.IsRemote && x.Remote != null) .Select(x => x.Remote?.Name)); foreach (var remote in repo.Network.Remotes) { var key = $"remote.{remote.Name}.{SettingCreatedByGHfVS}"; var createdByUs = await gitClient.GetConfig <bool>(repo, key); if (createdByUs && !usedRemotes.Contains(remote.Name)) { repo.Network.Remotes.Remove(remote.Name); } } return Observable.Return(Unit.Default); })); }