1

这是我目前正在使用的代码。它删除文件的内容并用新内容替换它。

var readfile = client.Repository.Content.GetAllContentsByRef(owner, repo, targetFile, branch).Result;
var updatefile =client.Repository.Content.UpdateFile(owner,repo,targetFile,
new UpdateFileRequest("API File update", "Added this new line new ", readfile.First().Sha, branch));

我希望将内容添加到文件中。不换。我的代码有问题吗?

4

1 回答 1

1

Content API 旨在在您更新文件时覆盖文件的内容,因此您需要读取文件的内容并附加新行。

这是一个更新的示例,您可以根据需要进行调整。请注意,GitHub API 将默认提供 Base64 编码的内容。

var currentFileText = "";

var contents = await client.Repository.Content.GetAllContentsByRef(owner, repo, targetFilePath, branch);
var targetFile = contents[0];
if (targetFile.EncodedContent != null)
{
    currentFileText = Encoding.UTF8.GetString(Convert.FromBase64String(targetFile.EncodedContent));
}
else
{
    currentFileText = targetFile.Content;
}

var newFileText = string.Format("{0}\n{1}", currentFileText, "Added this new line");
var updateRequest = new UpdateFileRequest("API File update", newFileText, targetFile.Sha, branch);

var updatefile = await client.Repository.Content.UpdateFile(owner, repo, targetFilePath, updateRequest);
于 2017-11-27T05:49:52.760 回答