Exemplo n.º 1
0
        private async Task <IReadOnlyList <Release> > GetReleasesAsync(Project project)
        {
            var url       = project.GetGitHubUrl();             //https://github.com/52ABP/Documents/tree/{version}/src/mvc/"
            var ownerName = GetOwnerNameFromUrl(url);           //52ABP

            var repositoryName = GetRepositoryNameFromUrl(url); //Documents

            var releases = await _githubRepositoryManager.GetReleasesAsync(ownerName, repositoryName, project.GetGitHubAccessTokenOrNull());

            return(releases);
        }
Exemplo n.º 2
0
        public async Task <DocumentResource> GetResource(Project project, string resourceName, string version)
        {
            var rawRootUrl = CalculateRawRootUrl(project.GetGitHubUrl(version));
            var content    = await DownloadWebContentAsByteArrayAsync(
                rawRootUrl + resourceName,
                project.GetGitHubAccessTokenOrNull(),
                project.GetGithubUserAgentOrNull()
                );

            return(new DocumentResource(content));
        }
Exemplo n.º 3
0
        public virtual async Task <Document> GetDocumentAsync(Project project, string documentName, string version)
        {
            var token                = project.GetGitHubAccessTokenOrNull();
            var rootUrl              = project.GetGitHubUrl(version);
            var rawRootUrl           = CalculateRawRootUrl(rootUrl);
            var rawDocumentUrl       = rawRootUrl + documentName;
            var commitHistoryUrl     = project.GetGitHubUrlForCommitHistory() + documentName;
            var userAgent            = project.GetGithubUserAgentOrNull();
            var isNavigationDocument = documentName == project.NavigationDocumentName;
            var editLink             = rootUrl.ReplaceFirst("/tree/", "/blob/") + documentName;
            var localDirectory       = "";
            var fileName             = documentName;

            if (documentName.Contains("/"))
            {
                localDirectory = documentName.Substring(0, documentName.LastIndexOf('/'));
                fileName       = documentName.Substring(documentName.LastIndexOf('/') + 1);
            }
            var contributors = new List <DocumentContributor>();

            if (!isNavigationDocument)
            {
                contributors = await GetContributors(commitHistoryUrl, token, userAgent);
            }


            var document =
                new Document
            {
                Title          = documentName,
                EditLink       = editLink,
                RootUrl        = rootUrl,
                RawRootUrl     = rawRootUrl,
                Format         = project.Format,
                LocalDirectory = localDirectory,
                FileName       = fileName,
                //Contributors = new List<DocumentContributor>(),
                Contributors = contributors,
                Version      = version,
                Content      = await DownloadWebContentAsStringAsync(rawDocumentUrl, token, userAgent)
            };


            return(document);
        }
Exemplo n.º 4
0
        public async Task <List <VersionInfo> > GetVersionsAsync(Project project)
        {
            List <VersionInfo> versions;



            try
            {
                var releases = await GetReleasesAsync(project);

                versions = releases
                           .OrderByDescending(r => r.PublishedAt)
                           .Select(r => new VersionInfo
                {
                    TagName = r.TagName,
                    Name    = r.Name
                }).ToList();
            }
            catch (Exception ex)
            {
                //TODO: 隐藏错误可能不是一个好主意!


                Logger.Error(ex.Message, ex);


                versions = new List <VersionInfo>();
            }

            if (!versions.Any() && !string.IsNullOrEmpty(project.LatestVersionBranchName))
            {
                versions.Add(new VersionInfo {
                    TagName = "1.0.0", Name = project.LatestVersionBranchName
                });
            }

            return(versions);
        }