Пример #1
0
        private string GetDownloadPageUrlFor(GobVersion version)
        {
            var sVersion = version.IsPreRelease ? $"{version.Major}.{version.Minor}.{version.Patch}-{version.PreRelease}" : $"{version.Major}.{version.Minor}.{version.Patch}";

            return(DOWNLOAD_PAGE_URL
                   .Replace("{USER}", _userName)
                   .Replace("{REPO}", _repoName)
                   .Replace("{VERSION}", sVersion));
        }
Пример #2
0
            public TagPackage(GobVersion version, bool isMarkedPreRelease, string directDownloadUrl, string pageUrl, string name, string notes)
            {
                Version            = version ?? throw new ArgumentNullException(nameof(version));
                IsMarkedPreRelease = isMarkedPreRelease;

                DirectDownloadUrl = directDownloadUrl ?? throw new ArgumentNullException(nameof(directDownloadUrl));
                PageUrl           = pageUrl ?? throw new ArgumentNullException(nameof(pageUrl));

                Name  = name ?? throw new ArgumentNullException(nameof(name));
                Notes = notes ?? throw new ArgumentNullException(nameof(notes));
            }
Пример #3
0
        private List <TagPackage> BuildGitHubReleases(JArray jReleases)
        {
            try
            {
                var releases = new List <TagPackage>();
                for (int releaseIndex = 0; releaseIndex < jReleases.Count; ++releaseIndex)
                {
                    var jRelease = jReleases[releaseIndex];

                    //only accept released versions from master or (hotfixes) from production
                    //var branch = (string)jRelease["target_commitish"];
                    //if (!("master".Equals(branch, StringComparison.InvariantCultureIgnoreCase) || "production".Equals(branch, StringComparison.InvariantCultureIgnoreCase)))
                    //    continue;

                    var isMarkedPreRelease = (bool)jRelease["prerelease"];

                    if (!GobVersion.TryParse(jRelease["tag_name"].ToString(), out var version))
                    {
                        continue;
                    }

                    // releases are sorted from newest to oldest, stop if we reach the current or an older release
                    if (version <= _currentVersion)
                    {
                        break;
                    }

                    releases.Add(
                        new TagPackage(
                            version,
                            isMarkedPreRelease,
                            directDownloadUrl: GetDirectDownloadUrlFor(version),
                            pageUrl: GetDownloadPageUrlFor(version),
                            name: jRelease["name"].ToString(),
                            notes: jRelease["body"].ToString()
                            ));
                }

                return(releases);
            }
            catch (Exception ex)
            {
                throw new UpdateException(ex.Message, ex);
            }
        }
Пример #4
0
        private IUpdateDescription GetUpdate(GobVersion appVersion, bool allowBetaUpdates = false)
        {
            var provider = new GitHubUpdateProvider(appVersion, userName: "******", repoName: "Gobchat");

            provider.AcceptBetaReleases = allowBetaUpdates;

            try
            {
                var updateDescription = provider.CheckForUpdate();
                if (!updateDescription.IsVersionAvailable || updateDescription.Version <= appVersion)
                {
                    return(null);
                }
                return(updateDescription);
            }
            catch (Exception e)
            {
                logger.Error(e);
                return(null);
            }
        }
Пример #5
0
 public GitHubUpdateProvider(GobVersion currentVersion, string userName, string repoName)
 {
     _currentVersion = currentVersion ?? throw new ArgumentNullException(nameof(currentVersion));
     _userName       = userName ?? throw new ArgumentNullException(nameof(userName));
     _repoName       = repoName ?? throw new ArgumentNullException(nameof(repoName));
 }