Je vois que le chemin de téléchargement pour un repo github est de la forme pour un repo privé, vous devez comporter de manière compréhensible afin de télécharger le repo, quelqu'un peut-il fournir une C # Exemple sur la manière de fournir une authentification de base HTTPS de base afin que je puisse télécharger le repo programmatique? P> Merci, P> P>
4 Réponses :
avec CURL:
curl -L -F "login=$USER" -F "token=$TOKEN" https://github.com/$USER/$REPO/$PKGTYPE/$BRANCHorTAG
Je sais que vous pouvez utiliser CURL code> à partir d'autres questions, mais je ne peux pas supposer
CURL code> est installé sur la machine, de sorte à utiliser les primitives de base .NET malheureusement.
Je regarde dans le okctokit.net actuellement. Donner un coup de feu. Nuget: Octokit d'installation d'installation p>
Cette bibliothèque ne prend pas en charge le clonage.
Voici une solution C # pure:
var githubToken = "[token]"; var url = "https://github.com/[username]/[repository]/archive/[sha1|tag].zip"; var path = @"[local path]"; using (var client = new System.Net.Http.HttpClient()) { var credentials = string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}:", githubToken); credentials = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(credentials)); client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", credentials); var contents = client.GetByteArrayAsync(url).Result; System.IO.File.WriteAllBytes(path, contents); }
Je me rends compte que c'est une très vieille réponse, mais j'ai du mal à le faire travailler; Il retourne toujours 404 Même s'il télécharge normalement lorsque j'entre l'URL dans un navigateur. Y a-t-il quelque chose qui me manque?
@Dinesh bolkensteyn Où obtenir [SHA1 | tag] code> pour
Var URL code>?
@ Koverflow C'est le SHA1 correspondant au COMMIT que vous souhaitez télécharger. Alternativement, vous pouvez passer la balise ou le nom de la branche à la place
Voir ce guide sur Un jeton d'accès personnel puis exécutez ce qui suit:
var githubToken = "token"; var request = (HttpWebRequest)WebRequest.Create("https://api.github.com/repos/$OWNER/$REPO/contents/$PATH"); request.Headers.Add(HttpRequestHeader.Authorization, string.Concat("token ", githubToken)); request.Accept = "application/vnd.github.v3.raw"; request.UserAgent = "test app"; //user agent is required https://developer.github.com/v3/#user-agent-required using (var response = request.GetResponse()) { var encoding = System.Text.ASCIIEncoding.UTF8; using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding)) { var fileContent = reader.ReadToEnd(); } }