如何使用octokit.net在github上修改现有文件



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

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);

相关内容

  • 没有找到相关文章

最新更新