Пример #1
0
 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();
 }
Пример #2
0
 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();
     }));
 }
Пример #3
0
 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);
        }
Пример #5
0
        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);
            }));
        }