Rewrite GitHub releases for ASF-ui

@JustArchiNET/asf-ui-dev Summary of changes:

Old:
- GET GitHub/Releases is rip (rewritten)
- GET GitHub/Releases/{version:required} is rip (renamed)

New:
- GET GitHub/Release, returns the most recent release (can be pre, can be stable)
- GET GitHub/Release/{version:required}, works like before, but also accepts "latest" as version for fetching latest stable release.

Expected usage:
- GET GitHub/Release for fetching most recent release
- If release equals user release, don't do anything more and save requests, display changelog
- Check if the release you fetched is stable, if yes, skip the extra request, otherwise, GET GitHub/Release/latest for latest stable.
- If stable release equals user's release, don't do anything more and save request, show both changelogs (pre and stable)
- Otherwise, decide if you want to also GET GitHub/Release/{userVersion} for that specific release.

Adapt appropriately for usage (I'd recommend to check if user has enabled pre-releases in the first place, because if he's on stable channel then likely you shouldn't display him pre-release changelogs at all, and skip the first request).

If in doubt, check swagger doc.
This commit is contained in:
JustArchi
2019-07-29 17:00:43 +02:00
parent 90e4b26969
commit 96ccb331dc
2 changed files with 20 additions and 44 deletions

View File

@@ -58,19 +58,6 @@ namespace ArchiSteamFarm {
return await GetReleaseFromURL(SharedInfo.GithubReleaseURL + "/tags/" + version).ConfigureAwait(false);
}
[ItemCanBeNull]
internal static async Task<ImmutableList<ReleaseResponse>> GetReleases(byte count) {
if (count == 0) {
ASF.ArchiLogger.LogNullError(nameof(count));
return null;
}
string releaseURL = SharedInfo.GithubReleaseURL + "?per_page=" + count;
return await GetReleasesFromURL(releaseURL).ConfigureAwait(false);
}
private static MarkdownDocument ExtractChangelogFromBody(string markdownText) {
if (string.IsNullOrEmpty(markdownText)) {
ASF.ArchiLogger.LogNullError(nameof(markdownText));