首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用octokit.net修改Github上已有的文件?

如何使用octokit.net修改Github上已有的文件?
EN

Stack Overflow用户
提问于 2017-09-25 16:01:23
回答 1查看 939关注 0票数 1

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

代码语言:javascript
复制
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));

我希望将内容添加到文件中。而不是替换它。我的代码中有错误吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-27 13:49:53

Content API被设计为在您更新文件时覆盖文件的内容,因此您需要读取文件的内容并追加新行。

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

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46400239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档