这是我目前使用的代码。它会删除文件的内容,并用新内容替换它。
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));我希望将内容添加到文件中。而不是替换它。我的代码中有错误吗?
发布于 2017-11-27 13:49:53
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);https://stackoverflow.com/questions/46400239
复制相似问题