Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var accounts = GitHubAccount.CreateWithConfig("config.ini");
            var updates  = accounts.Select(s => new CheckAndUpdate(s)).ToList();

            G(updates);
            Console.ReadLine();
        }
        public CheckAndUpdate(GitHubAccount account)
        {
            _account = account;
            var cres = new UsernamePasswordCredentials()
            {
                Username = _account.UserName,
                Password = _account.Token
            };


            LibGit2Sharp.PullOptions options = new LibGit2Sharp.PullOptions();
            options.FetchOptions = new FetchOptions();
            options.FetchOptions.CredentialsProvider = new CredentialsHandler(
                (url, usernameFromUrl, types) => cres);
            options.MergeOptions = new MergeOptions();

            _identity    = new Identity(_account.UserName, _account.Email);
            _pushOptions = new PushOptions()
            {
                CredentialsProvider = new CredentialsHandler((url, usernameFromUrl, types) => cres),
            };
        }
        public static List <GitHubAccount> CreateWithConfig(string configPath)
        {
            var     ret    = new List <GitHubAccount>();
            var     parser = new FileIniDataParser();
            IniData datas  = parser.ReadFile(configPath);

            foreach (var section in datas.Sections)
            {
                GitHubAccount newGitHubAccount = new GitHubAccount
                {
                    UserName          = section.Keys["username"],
                    Token             = section.Keys["token"],
                    TempRepPath       = section.Keys["tempreppath"],
                    Email             = section.Keys["email"],
                    IncludeRepository =
                        section.Keys["include"].Split(',').Select(s => s.Trim()).ToList().AsReadOnly()
                };
                ret.Add(newGitHubAccount);
            }

            return(ret);
        }