0
我有一類GitHub的一個方法,它應該返回所有的名單將提交對特定的用戶名和回購在GitHub上:如何獲得文件的列表,每有octokit和C#提交
using System;
using Octokit;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace ReadRepo
{
public class GitHub
{
public GitHub()
{
}
public async Task<List<GitHubCommit>> getAllCommits()
{
string username = "lukalopusina";
string repo = "flask-microservices-main";
var github = new GitHubClient(new ProductHeaderValue("MyAmazingApp"));
var repository = await github.Repository.Get(username, repo);
var commits = await github.Repository.Commit.GetAll(repository.Id);
List<GitHubCommit> commitList = new List<GitHubCommit>();
foreach(GitHubCommit commit in commits) {
commitList.Add(commit);
}
return commitList;
}
}
}
而且我有主其中呼籲getAllCommits方法函數:
using System;
using Octokit;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace ReadRepo
{
class MainClass
{
public static void Main(string[] args)
{
GitHub github = new GitHub();
Task<List<GitHubCommit>> commits = github.getAllCommits();
commits.Wait(10000);
foreach(GitHubCommit commit in commits.Result) {
foreach (GitHubCommitFile file in commit.Files)
Console.WriteLine(file.Filename);
}
}
}
}
當我運行此我得到以下錯誤:
問題是因爲這個變量commit.Files是空的,可能是因爲異步調用,但我不知道如何解決它。請幫忙嗎?
爲了獲得每次提交需要的文件以執行一次更多查詢,您是對的,而且您認爲更好的策略是獲取文件列表,然後爲每個文件配置所有版本。謝謝。 –
我還編輯了您的代碼示例與我測試的工作示例。 –