public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config) { var credentialName = config[nameof(IHasCredentials.CredentialName)]; if (string.IsNullOrEmpty(credentialName)) { return(Enumerable.Empty <string>()); } var credentials = GitHubCredentials.TryCreate(credentialName, config); if (credentials == null) { return(Enumerable.Empty <string>()); } string ownerName = AH.CoalesceString(credentials.OrganizationName, credentials.UserName); if (string.IsNullOrEmpty(ownerName)) { return(Enumerable.Empty <string>()); } var client = new GitHubClient(credentials.ApiUrl, credentials.UserName, credentials.Password, credentials.OrganizationName); var orgs = await client.GetOrganizationsAsync(CancellationToken.None).ConfigureAwait(false); var names = from m in orgs let name = m["login"]?.ToString() where !string.IsNullOrEmpty(name) select name; return(names); }
public string SendGist(string fileName, string content, string description, bool isPublic, GitHubCredentials credentials) { var gistAsJson = new CreatesGistMessages().CreateMessage(fileName, content, description, isPublic); using (var stream = new MemoryStream()) { var request = new FluentHttpRequest() .BaseUrl("https://api.github.com") .ResourcePath("/gists") .Method("POST") .Headers(h => h.Add("User-Agent", "Gister")) .Headers(h => h.Add("Content-Type", "application/json")) .Body(x => x.Append(gistAsJson)) .OnResponseHeadersReceived((o, e) => e.SaveResponseIn(stream)); AppliesGitHubCredentialsToFluentHttpRequest.ApplyCredentials(credentials, request); var response = request .Execute(); if (response.Response.HttpWebResponse.StatusCode != HttpStatusCode.Created) throw new GitHubUnauthorizedException(response.Response.HttpWebResponse.StatusDescription); return PeelOutGistHtmlUrl(response); } }
public string SendGist(string fileName, string content, GitHubCredentials credentials) { var gistAsJson = new CreatesGistMessages().CreateMessage(fileName, content); using (var stream = new MemoryStream()) { var request = new FluentHttpRequest() .BaseUrl("https://api.github.com") .ResourcePath("/gists") .Method("POST") .Headers(h => h.Add("User-Agent", "Gister")) .Headers(h => h.Add("Content-Type", "application/json")) .Body(x => x.Append(gistAsJson)) .OnResponseHeadersReceived((o, e) => e.SaveResponseIn(stream)); AppliesGitHubCredentialsToFluentHttpRequest.ApplyCredentials(credentials, request); var response = request .Execute(); if (response.Response.HttpWebResponse.StatusCode != HttpStatusCode.Created) { throw new GitHubUnauthorizedException(response.Response.HttpWebResponse.StatusDescription); } return(PeelOutGistHtmlUrl(response)); } }
public string SendGist(string fileName, string content,string description,bool isPublic, GitHubCredentials credentials) { LastCredentialsApplied = credentials; if (ShouldThrow()) throw new GitHubUnauthorizedException(failureStatusDescription); SentAGist = true; return ResultingUrl; }
public void Cache(GitHubCredentials credentials) { var userCredentials = credentials as GitHubUserCredentials; if (userCredentials == null) return; var path = GetPathToCredentialsFile(); PurgeAnyCache(); File.WriteAllLines(path, new[] { Encrypt(userCredentials.Username), Encrypt(userCredentials.Password) }); }
public async Task <bool> SaveAsync(GitHubCredentials gitHubCredentials) { var id = $"{_objectType}::{gitHubCredentials.UserId}"; var objectToSave = new CosmosObject <GitHubCredentials> { Id = id, Item = gitHubCredentials }; await _cosmosContainer.UpsertItemAsync(objectToSave, new PartitionKey(_objectType)); return(true); }
public string SendGist(string fileName, string content, string description, bool isPublic, GitHubCredentials credentials) { LastCredentialsApplied = credentials; if (ShouldThrow()) { throw new GitHubUnauthorizedException(failureStatusDescription); } SentAGist = true; return(ResultingUrl); }
public static void ApplyCredentials(GitHubCredentials credentials, FluentHttpRequest request) { var map = new Dictionary<Type, CredentialVisitor>() { {typeof (AnonymousGitHubCredentials), new AnonymousGitHubCredentialsForFluentHttp()}, {typeof (GitHubUserCredentials), new GitHubUserCredentialsForFluentHttp()} }; var credentialApplier = (from item in map where item.Key == credentials.GetType() select item.Value).First(); credentialApplier.Apply(request, credentials); }
public void Cache(GitHubCredentials credentials) { var userCredentials = credentials as GitHubUserCredentials; if (userCredentials == null) { return; } var path = GetPathToCredentialsFile(); PurgeAnyCache(); File.WriteAllLines(path, new[] { Encrypt(userCredentials.Username), Encrypt(userCredentials.Password) }); }
public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config) { var credentialName = config["CredentialName"]; if (string.IsNullOrEmpty(credentialName)) { return(Enumerable.Empty <string>()); } var credentials = GitHubCredentials.TryCreate(credentialName, config); if (credentials == null) { return(Enumerable.Empty <string>()); } string ownerName = AH.CoalesceString(credentials.OrganizationName, credentials.UserName); string repositoryName = AH.CoalesceString(config["RepositoryName"], credentials.RepositoryName); if (string.IsNullOrEmpty(ownerName) || string.IsNullOrEmpty(repositoryName)) { return(Enumerable.Empty <string>()); } var client = new GitHubClient(credentials.ApiUrl, credentials.UserName, credentials.Password, credentials.OrganizationName); var milestones = await client.GetMilestonesAsync(ownerName, repositoryName, "open", CancellationToken.None).ConfigureAwait(false); var titles = from m in milestones let title = m["title"]?.ToString() where !string.IsNullOrEmpty(title) select title; if (SDK.ProductName == "BuildMaster") { titles = new[] { "$ReleaseName", "$ReleaseNumber" }.Concat(titles); } return(titles); }
public void Apply(FluentHttpRequest request, GitHubCredentials credentials) { }
public GithubController(GitHubCredentials credentials) { _credentials = credentials; }
public void Apply(FluentHttpRequest request, GitHubCredentials credentials) { var userCreds = (GitHubUserCredentials)credentials; request.AuthenticateUsing(new HttpBasicAuthenticator(userCreds.Username, userCreds.Password)); }
protected override ExtendedRichDescription GetDescription(IOperationConfiguration config) { var credentials = string.IsNullOrEmpty(config[nameof(CredentialName)]) ? null : GitHubCredentials.TryCreate(config[nameof(CredentialName)], config); var repositoryOwner = AH.CoalesceString(config[nameof(OrganizationName)], credentials?.OrganizationName, config[nameof(UserName)], credentials?.UserName, "(unknown)"); var repositoryName = AH.CoalesceString(config[nameof(RepositoryName)], credentials?.RepositoryName, "(unknown)"); return(new ExtendedRichDescription( new RichDescription("Set build status on GitHub commit ", new Hilite(config[nameof(CommitHash)]), " to ", new Hilite(config[nameof(Status)])), new RichDescription("in repository ", new Hilite(repositoryOwner), "/", new Hilite(repositoryName)) )); }
public void UseCredentials(GitHubCredentials credentials) { gitHubCredentials = credentials; }
public string SendGist(string fileName, string content, GitHubCredentials credentials) { return ""; }
public string SendGist(string fileName, string content, string description, bool isPublic, GitHubCredentials credentials) { return(""); }
public string SendGist(string fileName, string content, GitHubCredentials credentials) { return(""); }
public string SendGist(string fileName, string content,string description,bool isPublic, GitHubCredentials credentials) { return ""; }