这是我当前正在使用的代码。它删除文件的内容并用新内容代替。
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));
我希望将内容添加到文件中。不更换它。我的代码中有故障吗?
内容API旨在覆盖文件时的内容,因此您需要读取文件的内容并附加新行。
这是一个更新的示例,您可以量身定制。请注意,github api将作为base64默认编码的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);