我想使用 octokit 从我的 github 存储库中获取有关文件的所有信息
项目:http://octokitnet.readthedocs.org/en/latest/contributing/
更新:我认为我能做的是getAllFilesFromRepository
这将为存储库中的所有文件返回 JSON 和以下示例
{
"type": "symlink",
"target": "/path/to/symlink/target",
"size": 23,
"name": "some-symlink",
"path": "bin/some-symlink",
"sha": "452a98979c88e093d682cab404a3ec82babebb48",
"url": "https://api.github.com/repos/octokit/octokit.rb/contents/bin/some-symlink",
"git_url": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/452a98979c88e093d682cab404a3ec82babebb48",
"html_url": "https://github.com/octokit/octokit.rb/blob/master/bin/some-symlink",
"download_url": "https://raw.githubusercontent.com/octokit/octokit.rb/master/bin/some-symlink",
"_links": {
"git": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/452a98979c88e093d682cab404a3ec82babebb48",
"self": "https://api.github.com/repos/octokit/octokit.rb/contents/bin/some-symlink",
"html": "https://github.com/octokit/octokit.rb/blob/master/bin/some-symlink"
}
}
请注意我根本不想下载任何文件或使用多次调用编写查询来检索数据。
我不确定我是否理解这个问题,但请先阅读入门指南,了解您需要的设置。
以下是如何下载给定存储库内容的示例:
var github = new GitHubClient(...); // TODO: other setup
var contents = await github
.Repository
.Content
.GetAllContents("octokit", "octokit.net");
...
var docs = await github
.Repository
.Content
.GetAllContents("octokit", "octokit.net", "docs");
更改值以适合您感兴趣的存储库。如果要下载非默认分支,请改用GetAllContentsByRef
。
GetAllContents 方法可以正常工作,但一个小问题是它不会递归遍历存储库中的所有子文件夹。它仅提供顶级中存在的文件和文件夹。如果你想列出你的仓库的所有文件,我建议你使用GetRecursive方法,如下所示:
var trees = _gitHubClient.Git.Tree.GetRecursive(_config.Owner, _config.RepositoryId, <<APPROPRIATE SHA>>).Result;
您可以获取最新提交的 SHA,也可以根据您的要求获取 SHA。此方法将为您提供具有足够详细信息(例如 SHA、路径、类型和大小)的树响应。