2017-09-25 37 views
1

這是我目前使用的代碼。它刪除文件的內容並用新內容替換它。如何使用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)); 

我想將內容添加到文件中。不要取代它。我的代碼有錯嗎?

回答

0

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); 
相關問題