Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Custom Python ODB backends - write() support

Offen
#1,057 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
32/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
git, python
Bereich
backend

Rechercherichtung

Beginne damit, das Beispiel mit dem benutzerdefinierten MyOdbBackend.write() und den Fehler bei repo.create_blob() zu reproduzieren. Lies die Schnittstellen OdbBackend und add_backend sowie die zugehörige Dokumentation, um festzustellen, ob write() unterstützt wird. Die Aufgabe gilt als erledigt, wenn das Verhalten entweder implementiert und mit diesem Beispiel verifiziert oder die Einschränkung und die Fehlerursache klar dokumentiert sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Is there any support for implementing write() for custom python ODB backends?

I noticed it wasn't in the docs, but tried implementing it like so:

class MyOdbBackend(pygit2.OdbBackend):

    # snip - other OdbBackend methods

   def write(self, oid, data, length, type):
        print(f"writing {oid} {length} type {type}")
        return True

repo = pygit2.Repository()
odb = pygit2.Odb()
odb.add_backend(MyOdbBackend(), 1)
repo.set_odb(odb)

test_blob_id = repo.create_blob(b"hello world\n")
print(repo[test_blob_id].data)

But I get a _pygit2.GitError: TLS backend doesn't support certificate locations on calling repo.create_blob(). The built-in backends seem to work fine.

Vorherrschende Sprache
Python
Sterne
1.7k
Forks
408
Ø Merge
2 T. 57 Min.
Gemergte PRs (30 T.)
7

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus libgit2/pygit2

Alle Issues in libgit2/pygit2

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.