From e77f1b940e5a69fe46157dd2bd03c486d96a524b Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 25 Oct 2018 17:45:10 +0300 Subject: [PATCH] Use token correctly --- .../Docs/Documents/ContentWithDetailsDto.cs | 2 +- .../Docs/Documents/GithubDocumentStore.cs | 30 +++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs index 92ed6bc833..cfafa8d972 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs @@ -94,7 +94,7 @@ namespace Volo.Docs.Documents { RootNode = JsonConvert.DeserializeObject(Content); } - catch (JsonException) + catch (JsonException ex) { //todo: should log the exception? RootNode = new NavigationNode(); diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/GithubDocumentStore.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/GithubDocumentStore.cs index b41d643f5d..530c8c145f 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/GithubDocumentStore.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/GithubDocumentStore.cs @@ -8,6 +8,7 @@ using System.Net.Sockets; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Octokit; +using Octokit.Internal; using Volo.Abp; using Volo.Abp.Domain.Services; using ProductHeaderValue = Octokit.ProductHeaderValue; @@ -26,7 +27,7 @@ namespace Volo.Docs.Documents var token = projectExtraProperties["GithubAccessToken"]?.ToString(); - var rawRootUrl = rootUrl.Replace("github.com", token + "raw.githubusercontent.com").Replace("/tree/", "/"); + var rawRootUrl = rootUrl.Replace("github.com", "raw.githubusercontent.com").Replace("/tree/", "/"); var rawUrl = rawRootUrl + documentName; var editLink = rootUrl.Replace("/tree/", "/blob/") + documentName; string localDirectory = ""; @@ -49,19 +50,24 @@ namespace Volo.Docs.Documents LocalDirectory = localDirectory, FileName = fileName, Version = version, - SuccessfullyRetrieved = TryDownloadWebContent(rawUrl, out var content), + SuccessfullyRetrieved = TryDownloadWebContent(rawUrl, token, out var content), Content = content }; return await Task.FromResult(document); } - private bool TryDownloadWebContent(string rawUrl, out string content) + private bool TryDownloadWebContent(string rawUrl, string token, out string content) { using (var webClient = new WebClient()) { try { + if (!token.IsNullOrWhiteSpace()) + { + webClient.Headers.Add("Authorization", "token " + token); + } + content = webClient.DownloadString(rawUrl); return true; } @@ -78,10 +84,22 @@ namespace Volo.Docs.Documents { try { - var gitHubClient = new GitHubClient(new ProductHeaderValue("AbpWebSite")); + var token = projectExtraProperties["GithubAccessToken"]?.ToString(); + + ICredentialStore credentialStore = token.IsNullOrWhiteSpace() + ? null + : new InMemoryCredentialStore(new Credentials(token)); + + var gitHubClient = new GitHubClient( + new ProductHeaderValue("AbpWebSite"), + credentialStore + ); + var url = projectExtraProperties["GithubRootUrl"].ToString(); - var releases = await gitHubClient.Repository.Release.GetAll(GetGithubOrganizationNameFromUrl(url), - GetGithubRepositoryNameFromUrl(url)); + var releases = await gitHubClient.Repository.Release.GetAll( + GetGithubOrganizationNameFromUrl(url), + GetGithubRepositoryNameFromUrl(url) + ); return releases.OrderByDescending(r => r.PublishedAt).Select(r => r.TagName).ToList(); }