Exemple #1
0
        private List <IGitHubEntry> GetReleases(GitHubClient client, string owner, string repo, int results)
        {
            var lst = new List <IGitHubEntry>();

            try
            {
                var releases = client.Repository.Release.GetAll(owner, repo).Result;
                OnRequest(this, new ApiRequestEventArgs(_client.GetLastApiInfo()));
                int i = 0;
                foreach (var f in releases)
                {
                    if (i >= results)
                    {
                        break;
                    }

                    var vkentry = new VKGithubEntry(f.Name, new Models.Version(f.Name))
                    {
                        DownloadUrl = new Uri(f.Assets[0].BrowserDownloadUrl),
                        Changelog   = f.Body
                    };
                    lst.Add(vkentry);
                    i++;
                }
                return(lst);
            }
            catch (AggregateException ex)
            {
                Log.Error(ex, "Error getting releases from github");
                throw;
            }
        }
Exemple #2
0
        public IGitHubEntry GetUpdate(IProgramEntry entry)
        {
            string repo;

            if (entry == null)
            {
                return(null);
            }
            try
            {
                if (entry.ComponentType == ProgramType.VoukoderCore)
                {
                    repo = "voukoder";
                    Release re = new Release();
                    if (AllowPreReleaseVersion)
                    {
                        re = _client.Repository.Release.GetAll("Vouk", repo).Result[0];
                    }
                    else
                    {
                        re = _client.Repository.Release.GetLatest("Vouk", repo).Result;
                    }
                    OnRequest(this, new ApiRequestEventArgs(_client.GetLastApiInfo()));

                    var entr = new VKGithubEntry(re.Name, new Models.Version(re.TagName))
                    {
                        DownloadUrl = new Uri(re.Assets[0].BrowserDownloadUrl),
                        Changelog   = re.Body
                    };
                    if (entry.Version.CompareTo(entr.Version) < 0)
                    {
                        return(entr);
                    }
                    return(null);
                }
                else
                {
                    repo = "voukoder-connectors";
                    string repopath;
                    repopath = entry.ComponentType.ToString().ToLower();
                    var content = GetContent(entry.ComponentType, "Vouk", repo, repopath, 1, false);
                    if (content != null && entry.Version.CompareTo(content[0].Version) < 0)
                    {
                        return(content[0]);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
            catch (AggregateException ex)
            {
                var v = _client.GetLastApiInfo();
                Log.Error(ex, ex.Message);
                return(null);
            }
        }
Exemple #3
0
 private List <IGitHubEntry> GetContent(ProgramType type, string owner, string repo, string filepath, int results, bool includeCore)
 {
     try
     {
         IGitHubEntry corepkg = null;
         var          content = _client.Repository.Content.GetAllContents(owner, repo, filepath).Result;
         if (includeCore)
         {
             corepkg = GetLatestDownloadableCorePackage();
         }
         OnRequest(this, new ApiRequestEventArgs(_client.GetLastApiInfo()));
         var    re      = _client.GetLastApiInfo();
         var    lst     = new List <IGitHubEntry>();
         int    entries = content.Count;
         string changelog;
         using (WebClient client = new WebClient())
         {
             changelog = client.DownloadString(content[0].DownloadUrl);
         }
         while (results > 0)
         {
             var v = content[entries - 1];
             if (v.Name.Contains("connector"))
             {
                 var version = v.Name.Where(Char.IsDigit).ToArray();
                 var vkentry = new VKGithubEntry(v.Name, new Models.Version(string.Join(".", version)))
                 {
                     DownloadUrl   = new Uri(v.DownloadUrl),
                     ComponentType = type,
                     Changelog     = changelog
                 };
                 if (corepkg != null)
                 {
                     vkentry.Dependencies = new List <IGitHubEntry>()
                     {
                         corepkg
                     }
                 }
                 ;
                 lst.Add(vkentry);
             }
             entries--;
             results--;
         }
         return(lst);
     }
     catch (AggregateException ex)
     {
         Log.Error(ex, "Error getting content from github");
         return(null);
     }
 }
Exemple #4
0
        public IGitHubEntry GetLatestDownloadableCorePackage()
        {
            string repo;

            try
            {
                repo = "voukoder";
                var release = _client.Repository.Release.GetLatest("Vouk", repo).Result;
                OnRequest(this, new ApiRequestEventArgs(_client.GetLastApiInfo()));
                var entry = new VKGithubEntry(release.Name, new Models.Version(release.Name))
                {
                    DownloadUrl = new Uri(release.Assets[0].BrowserDownloadUrl),
                    Changelog   = release.Body
                };
                return(entry);
            }
            catch (AggregateException ex)
            {
                Log.Error(ex, "Error getting latest core package from github");
                throw;
            }
        }