public GitHubClient GetClient([NotNull] IDataContext context) { var boundSettings = mySettingsStore.BindToContextTransient(ContextRange.Smart((lt, _) => context)); var proxy = myProxySettingsReader.GetProxySettings(boundSettings); var settings = boundSettings.GetKey<GitHubSettings>(SettingsOptimization.DoMeSlowly); var client = new GitHubClient { Proxy = proxy }; if (!settings.IsAnonymous) client.Authenticator = new HttpBasicAuthenticator(settings.Username, settings.Password); return client; }
private string Publish(GitHubClient client, IDictionary<string, string> content) { var response = client.Execute<GitHub.Gist>(new RestRequest("/gists", Method.POST) { RequestFormat = DataFormat.Json } .AddBody(new GitHub.Gist { IsPublic = true, Files = content.ToDictionary(_ => _.Key, _ => new GistFile { Content = _.Value }) })); if ((response.ResponseStatus == ResponseStatus.Error) || !response.StatusCode.InRange(HttpStatusCode.OK, HttpStatusCode.Ambiguous - 1)) { Logger.LogMessage("Gist error: {0}", response.ErrorMessage ?? string.Format("{0:D} {1}", response.StatusCode, response.StatusDescription)); return null; } return response.Data != null ? response.Data.HtmlUrl : null; }