Ich versuche, eine Windows Forms-Anwendung zu entwickeln, die Dateien in einem GitHub-Repository mit Octokit erstellen, aktualisieren und löschen kann.Aktualisieren einer Datei im GitHub-Repository mit Octokit
public Form1()
{
InitializeComponent();
var ghClient = new GitHubClient(new ProductHeaderValue("Octokit-Test"));
ghClient.Credentials = new Credentials("-personal access token here-");
// github variables
var owner = "username";
var repo = "repository name";
var branch = "master";
// create file
//var createChangeSet = ghClient.Repository.Content.CreateFile(owner,repo,"path/file2.txt",new CreateFileRequest("File creation", "Hello World!", branch));
// update file
var updateChangeSet = ghClient.Repository.Content.UpdateFile(owner, repo,"path/file2.txt", new UpdateFileRequest("File update","Hello Universe!", "SHA value should be here", branch));
}
Zum einen habe ich es geschafft, eine Datei zu erstellen (siehe Info auf Kommentar-Code), die voll funktionsfähig ist. Dann habe ich versucht, die Datei zu aktualisieren verwenden,
var updateChangeSet = ghClient.Repository.Content.UpdateFile(owner, repo,"path/file2.txt", new UpdateFileRequest("File update","Hello Universe!", "SHA value should be here", branch));
Wie Sie in dieser Situation sehen können, ich habe den sha Wert, da die Voraussetzung für den „UpdateFileRequest“ erhalten ist,
UpdateFileRequest(string message, string content, string sha, string branch)
Wie kann ich diesen Sha-Wert für meine Datei von GitHub erhalten?
Ich verfolge this Tutorial, aber wenn ich versuche, „createChangeSet.Content.Sha“ (ohne createChangeSet kommentieren out), zieht eine rote Linie unter „Inhalt“ und sagt:
Task<RepositoryChangeSet> does not contain a definition for 'Content' and no extention method 'Content' accepting a first argument of type Task<RepositoryChangeSet> could be found
Ich sah GitHub Documentation und es sagt, ich sollte,
GET /repos/:owner/:repo/contents/:path
den Inhalt einer Datei oder eines Verzeichnisses in einem Repository zurückkehren, damit ich nehme an, ich in der Lage, die sha Wert auf diese Weise zu erhalten.
Wie kann ich diese Methode implementieren, um den sha-Wert für meine Datei im Repository zu erhalten, damit ich diesen Wert verwenden kann, um die Datei zu aktualisieren?
Diese Lösung funktioniert perfekt. Vielen Dank! – coder
Wie kann ich jedoch den Inhalt der Datei von GitHub auf die gleiche Weise erhalten? – coder
Der Inhalt sollte da sein - siehe die GitHub Api Dokumentation: https://developer.github.com/v3/repos/contents/#get-contents –