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); }