public ObservableList <OnlinePluginPackage> GetOnlinePluginsIndex() { // edit at: "https://github.com/Ginger-Automation/Ginger-Plugins-Index/blob/master/PluginsList.json"; // raw url to get the file content string url = "https://raw.githubusercontent.com/Ginger-Automation/Ginger-Plugins-Index/master/PluginsList.json"; Reporter.ToLog(eLogLevel.INFO, "Getting Plugins list from " + url); ObservableList <OnlinePluginPackage> list = GitHTTPClient.GetJSON <ObservableList <OnlinePluginPackage> >(url); Reporter.ToLog(eLogLevel.INFO, "Online Plugins count=" + list.Count); ObservableList <PluginPackage> installedPlugins = mSolutionRepository.GetAllRepositoryItems <PluginPackage>(); foreach (OnlinePluginPackage onlinePluginPackage in list) { PluginPackage pluginPackage = (from x in installedPlugins where x.PluginId == onlinePluginPackage.Id select x).FirstOrDefault(); if (pluginPackage != null) { onlinePluginPackage.CurrentPackage = pluginPackage.PluginPackageVersion; onlinePluginPackage.Status = "Installed - " + pluginPackage.PluginPackageVersion; } } return(list); }
/// <summary> /// Get list of releases for plguin from Git /// </summary> /// <param name="pluginRepositoryName"></param> /// Repositry name in Fit for example: Ginger-PACT-Plugin /// <returns></returns> void GetPluginReleases() { if (string.IsNullOrEmpty(URL)) { return; } // string url = "https://api.github.com/repos/Ginger-Automation" + pluginRepositoryName + "/releases"; string releasesURL = URL.Replace("https://github.com/Ginger-Automation", "https://api.github.com/repos/Ginger-Automation") + "/releases"; string releases = GitHTTPClient.GetResponseString(releasesURL).Result; if (releases == "Error: Forbidden") { throw new IOException("Error: Forbidden - " + releases); } mReleases = JsonConvert.DeserializeObject <ObservableList <OnlinePluginPackageRelease> >(releases); }