2017-09-25 9 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); 
関連する問題