13

GitHub リポジトリのダウンロード パスの形式は次のとおりです。

https://github.com/{username}/{reponame}/archive/{branchname}.zip

プライベート リポジトリの場合、当然のことながら、リポジトリをダウンロードするために資格情報を提供する必要があります。プログラムでリポジトリをダウンロードできるように、HTTPS 基本認証を提供する方法に関する C# の例を誰でも提供できますか?

ありがとう、

4

4 に答える 4

9

純粋な C# の方法を次に示します。

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);
}
于 2015-08-03T14:52:11.483 に答える
0

カールの場合:

curl -L -F "login=$USER" -F "token=$TOKEN" https://github.com/$USER/$REPO/$PKGTYPE/$BRANCHorTAG

$TOKEN は、APIv3 との通信に使用される oAuth2 トークンではなく、github プロファイルの API トークンです。

$USER は、トークンが接続されているユーザー アカウントであり、必ずしもリポジトリが属する組織/他のユーザーではありません。$USER の 2 番目のインスタンスは、リポジトリのユーザー/アカウントです。

$REPO は、プライベート リポジトリの名前です。

$PKGTYPE は tarball または zipball で、$BRANCHorTAG は master のようなブランチ、またはコミットのタグ名です。

$USER の最初のインスタンスは、$USER の 2 番目のインスタンスに属するリポジトリにアクセスできる必要があります。

私はこれがどこにも文書化されているのを見つけることができなかったので、より詳細なことが必要な場合は、それについて少し書いています.

于 2013-03-14T11:34:20.107 に答える