Esempio n. 1
0
        public static IEnumerator LoadReleases(string url, string authToken = null)
        {
            string proxiedUrl = UpliftPreferences.UseGithubProxy(url);

            WWW www = string.IsNullOrEmpty(authToken) ?
                      new WWW(proxiedUrl) :
                      new WWW(
                proxiedUrl,
                null,
                new Dictionary <string, string>
            {
                { "Authorization", "token " + authToken }
            });

            while (www.isDone == false)
            {
                yield return(null);
            }
            yield return(www);

            if (!string.IsNullOrEmpty(www.error))
            {
                Debug.LogError(www.error);
                Debug.LogWarning(www.text);

                yield return(null);
            }
            else
            {
                yield return(ParseReleases(www.text));
            }
        }
Esempio n. 2
0
        public static Stream GetAssetStream(GitHubAsset asset, string token)
        {
            string proxiedUrl = UpliftPreferences.UseGithubProxy(asset.apiURL);

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(proxiedUrl);

            request.Method = "GET";
            if (!string.IsNullOrEmpty(token))
            {
                request.Headers["Authorization"] = "token " + token;
            }
            request.Accept            = "application/octet-stream";
            request.UserAgent         = "Uplift GithubRepository/1.0 - https://github.com/DragonBox/uplift";
            request.AllowAutoRedirect = false;

            ServicePointManager.ServerCertificateValidationCallback = GitHub.CertificateValidationCallback;
            Uri            address;
            HttpStatusCode responseStatus;

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                responseStatus = response.StatusCode;
                if ((int)response.StatusCode < 300 || (int)response.StatusCode > 399)
                {
                    throw new ApplicationException("Request should be redirected");
                }
                address = new Uri(response.GetResponseHeader("Location"));
            }

            request           = (HttpWebRequest)WebRequest.Create(UpliftPreferences.UseGithubProxy(address.OriginalString));
            request.Method    = "GET";
            request.UserAgent = "Uplift GithubRepository/1.0 - https://github.com/DragonBox/uplift";
            HttpWebResponse finalResponse = (HttpWebResponse)request.GetResponse();

            responseStatus = finalResponse.StatusCode;
            if ((int)finalResponse.StatusCode >= 200 && (int)finalResponse.StatusCode <= 299)
            {
                return(finalResponse.GetResponseStream());
            }

            throw new ApplicationException("Could not get asset at " + asset.apiURL);
        }