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)); }
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)); }
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); } }
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); } }
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)); }