public ShellViewModel()
        {
            // some default values because lazy
            CloneUrl = "https://github.com/octokit/octokit.net.git";

            // setup the option to clone a repository down
            CloneRepository = ReactiveCommand.CreateAsyncObservable(
                this.WhenAny(x => x.CloneUrl, x => IsValidUri(x.Value)),
                _ => ObservableFolderPicker.SelectFolder());

            cloneViewModel = CloneRepository
                             .Select(path => new CloneRepositoryViewModel(CloneUrl, path))
                             .ToProperty(this, x => x.CloneViewModel);
        }
        public override int GetHashCode()
        {
            int hash = 1;

            if (Name.Length != 0)
            {
                hash ^= Name.GetHashCode();
            }
            if (CloneRepository != false)
            {
                hash ^= CloneRepository.GetHashCode();
            }
            hash ^= actions_.GetHashCode();
            hash ^= triggers_.GetHashCode();
            hash ^= stages_.GetHashCode();
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }