You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C# Octokit从私有仓库下载文件

使用C# Octokit从私有GitHub仓库下载文件

1. 安装Octokit包

通过NuGet安装Octokit库:

  • 包管理器控制台执行:Install-Package Octokit
  • 或.NET CLI执行:dotnet add package Octokit

2. 准备GitHub个人访问令牌(PAT)

要访问私有仓库,你需要生成一个具备repo权限的PAT:

  • 登录GitHub,进入Settings > Developer settings > Personal access tokens
  • 生成新令牌,勾选repo权限,保存好生成的令牌字符串(仅显示一次)

3. 编写下载代码

以下是完整的示例代码,包含认证、获取文件内容和本地保存的逻辑:

using Octokit;
using System;
using System.IO;

class GithubFileDownloader
{
    static async Task Main(string[] args)
    {
        // 配置参数
        string githubToken = "你的PAT令牌";
        string repoOwner = "仓库所有者(个人/组织用户名)";
        string repoName = "私有仓库名称";
        string targetFilePath = "仓库内文件的相对路径,如: docs/setup.md";
        string targetBranch = "main"; // 目标分支名
        string localSavePath = "本地保存路径,如: C:/Downloads/setup.md";

        // 初始化认证后的GitHub客户端
        var client = new GitHubClient(new ProductHeaderValue("PrivateRepoFileDownloader"));
        client.Credentials = new Credentials(githubToken);

        try
        {
            // 获取文件内容(私有仓库需认证才能访问)
            var contents = await client.Repository.Content.GetAllContents(repoOwner, repoName, targetFilePath, targetBranch);
            var fileContent = contents[0];

            // 解码Base64格式的文件内容
            byte[] fileBytes = Convert.FromBase64String(fileContent.Content);

            // 写入本地文件
            File.WriteAllBytes(localSavePath, fileBytes);
            Console.WriteLine("文件已成功下载到本地");
        }
        catch (NotFoundException)
        {
            Console.WriteLine("错误:指定的文件或仓库不存在");
        }
        catch (AuthorizationException)
        {
            Console.WriteLine("错误:令牌无效或权限不足,请检查PAT的repo权限");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"下载失败:{ex.Message}");
        }
    }
}

关键注意事项

  • 确保targetFilePath是仓库内的相对路径,根目录文件直接写文件名即可
  • 如果仓库属于组织,repoOwner填写组织名称
  • 令牌要妥善保管,不要硬编码到代码中,建议通过环境变量或配置文件读取

内容的提问来源于stack exchange,提问作者alpha of the beta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:45:31