Hochladen mehrerer Dateien über die Github REST APIPhp

PHP-Programmierer chatten hier
Guest
 Hochladen mehrerer Dateien über die Github REST API

Post by Guest »

Ich verwende GrahamCampbell/Laravel-GitHub (was eigentlich ein Laravel-Wrapper für KnpLabs/php-github-api ist), um Dateien aus meiner Anwendung über die REST-API an Github zu übergeben.
Mit $client->api('repo')->contents()->create(...) und $client->api('repo')->contents()->update(...) Ich kann einzelne Dateien in meinem Github-Repo ändern.
Jetzt kann ich möchte ein ganzes Verzeichnis (einschließlich Dateien und Unterverzeichnisse) in einem Commit in mein Repo hochladen. Ich habe die folgende Reihenfolge ausprobiert:
  • Erstellen Sie einen Baum mit $client->api('gitData')->trees().< /li>
    Den Baum mit $client->api('gitData')->commits() festschreiben.
  • Heads/main aktualisieren< /code> mit $client->api('gitData')->references().
Aber das funktioniert nur, solange ich mein Verzeichnis hochlade in das Repo-Stammverzeichnis. Sobald ich versuche, mich auf ein Github-Unterverzeichnis festzulegen, wird alles im Stammverzeichnis überschrieben. Ich habe jetzt schon eine Weile experimentiert, Google konsultiert und bin ratlos, aber ich komme nicht weiter.
Konkret möchte ich die folgenden zwei Dinge erreichen:
  • Übertragen Sie eine Verzeichnisstruktur in ein (beliebiges) Github-Unterverzeichnis

    behalten Sie die alten Dateien/Verzeichnisse in dieser Verzeichnisstruktur< /li>
    Verwerfen der alten Dateien/Verzeichnisse nur in der betroffenen Verzeichnisstruktur (d. h. alle anderen Github-Verzeichnisse sollten beibehalten werden)

Dies ähnelt im Grunde dem Leeren von Ordnern und dem Einfügen von Inhalten in den lokalen Datei-Explorer oder dem Einfügen von Inhalten und dem Überschreiben vorhandener Dateien.
Vielleicht gibt es das bereits eine fertige Lösung bzw. PHP-Klasse dafür habe ich wäre für einen Hinweis sehr dankbar. Ansonsten würde es mir helfen, wenn jemand die richtige Vorgehensweise hierfür auflisten könnte:
  • Muss ich bei jedem Commit (sogar bis) alle vorhandenen Bäume lesen und festschreiben? ein tieferes Github-Unterverzeichnis)? Eigentlich möchte ich, dass der Commit nicht alle vorhandenen Dateien berührt, sondern nur die neuen oder geänderten.
  • Auf welchen Baum muss mein base_tree-SHA zeigen, wenn ich einen Commit auf meine/sub/ durchführen möchte dir?
Vielen Dank im Voraus für Ihre Hilfe
John Nazarov

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post