tweaks to getLatestRelease

This commit is contained in:
Robert McRackan 2022-07-27 16:36:18 -04:00
parent e093729707
commit f04a5e0168
2 changed files with 10 additions and 7 deletions

View File

@ -1,5 +1,5 @@
{ {
"Linux":"Libation.\\d+.\\d+.\\d+-linux-chardonnay", "WindowsClassic": "Libation\\.\\d+\\.\\d+\\.\\d+-win-classic\\.zip",
"WindowsClassic":"Libation.\\d+.\\d+.\\d+-win-classic.zip", "WindowsAvalonia":"Libation\\.\\d+\\.\\d+\\.\\d+-win-chardonnay\\.zip",
"WindowsAvalonia":"Libation.\\d+.\\d+.\\d+-win-chardonnay" "LinuxAvalonia": "Libation\\.\\d+\\.\\d+\\.\\d+-linux-chardonnay"
} }

View File

@ -313,7 +313,7 @@ namespace AppScaffolding
{ {
WindowsClassic, WindowsClassic,
WindowsAvalonia, WindowsAvalonia,
Linux LinuxAvalonia
} }
public static UpgradeProperties GetLatestRelease(ReleaseIdentifier releaseID = ReleaseIdentifier.WindowsClassic) public static UpgradeProperties GetLatestRelease(ReleaseIdentifier releaseID = ReleaseIdentifier.WindowsClassic)
@ -362,15 +362,18 @@ namespace AppScaffolding
} }
private static async System.Threading.Tasks.Task<Octokit.Release> getLatestRelease(ReleaseIdentifier releaseID) private static async System.Threading.Tasks.Task<Octokit.Release> getLatestRelease(ReleaseIdentifier releaseID)
{ {
var gitHubClient = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("Libation")); var ownerAccount = "rmcrackan";
var repoName = "Libation";
var gitHubClient = new Octokit.GitHubClient(new Octokit.ProductHeaderValue(repoName));
//Download the release index //Download the release index
var bts = await gitHubClient.Repository.Content.GetRawContent("Mbucari", "Libation", ".releaseindex.json"); var bts = await gitHubClient.Repository.Content.GetRawContent(ownerAccount, repoName, ".releaseindex.json");
var releaseIndex = JObject.Parse(System.Text.Encoding.ASCII.GetString(bts)); var releaseIndex = JObject.Parse(System.Text.Encoding.ASCII.GetString(bts));
var regexPattern = releaseIndex.Value<string>(releaseID.ToString()); var regexPattern = releaseIndex.Value<string>(releaseID.ToString());
// https://octokitnet.readthedocs.io/en/latest/releases/ // https://octokitnet.readthedocs.io/en/latest/releases/
var releases = await gitHubClient.Repository.Release.GetAll("rmcrackan", "Libation"); var releases = await gitHubClient.Repository.Release.GetAll(ownerAccount, repoName);
var regex = new System.Text.RegularExpressions.Regex(regexPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase); var regex = new System.Text.RegularExpressions.Regex(regexPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
var latest = releases.FirstOrDefault(r => !r.Draft && !r.Prerelease && r.Assets.Any(a => regex.IsMatch(a.Name))); var latest = releases.FirstOrDefault(r => !r.Draft && !r.Prerelease && r.Assets.Any(a => regex.IsMatch(a.Name)));