Browse Source

Use token correctly

pull/570/head
Halil ibrahim Kalkan 8 years ago
parent
commit
e77f1b940e
  1. 2
      modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs
  2. 30
      modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/GithubDocumentStore.cs

2
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs

@ -94,7 +94,7 @@ namespace Volo.Docs.Documents
{ {
RootNode = JsonConvert.DeserializeObject<NavigationNode>(Content); RootNode = JsonConvert.DeserializeObject<NavigationNode>(Content);
} }
catch (JsonException) catch (JsonException ex)
{ {
//todo: should log the exception? //todo: should log the exception?
RootNode = new NavigationNode(); RootNode = new NavigationNode();

30
modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/GithubDocumentStore.cs

@ -8,6 +8,7 @@ using System.Net.Sockets;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Octokit; using Octokit;
using Octokit.Internal;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Domain.Services; using Volo.Abp.Domain.Services;
using ProductHeaderValue = Octokit.ProductHeaderValue; using ProductHeaderValue = Octokit.ProductHeaderValue;
@ -26,7 +27,7 @@ namespace Volo.Docs.Documents
var token = projectExtraProperties["GithubAccessToken"]?.ToString(); 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 rawUrl = rawRootUrl + documentName;
var editLink = rootUrl.Replace("/tree/", "/blob/") + documentName; var editLink = rootUrl.Replace("/tree/", "/blob/") + documentName;
string localDirectory = ""; string localDirectory = "";
@ -49,19 +50,24 @@ namespace Volo.Docs.Documents
LocalDirectory = localDirectory, LocalDirectory = localDirectory,
FileName = fileName, FileName = fileName,
Version = version, Version = version,
SuccessfullyRetrieved = TryDownloadWebContent(rawUrl, out var content), SuccessfullyRetrieved = TryDownloadWebContent(rawUrl, token, out var content),
Content = content Content = content
}; };
return await Task.FromResult(document); 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()) using (var webClient = new WebClient())
{ {
try try
{ {
if (!token.IsNullOrWhiteSpace())
{
webClient.Headers.Add("Authorization", "token " + token);
}
content = webClient.DownloadString(rawUrl); content = webClient.DownloadString(rawUrl);
return true; return true;
} }
@ -78,10 +84,22 @@ namespace Volo.Docs.Documents
{ {
try 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 url = projectExtraProperties["GithubRootUrl"].ToString();
var releases = await gitHubClient.Repository.Release.GetAll(GetGithubOrganizationNameFromUrl(url), var releases = await gitHubClient.Repository.Release.GetAll(
GetGithubRepositoryNameFromUrl(url)); GetGithubOrganizationNameFromUrl(url),
GetGithubRepositoryNameFromUrl(url)
);
return releases.OrderByDescending(r => r.PublishedAt).Select(r => r.TagName).ToList(); return releases.OrderByDescending(r => r.PublishedAt).Select(r => r.TagName).ToList();
} }

Loading…
Cancel
Save