Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Custom Python ODB backends - write() support

Ouverte
#1,057 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
32/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
git, python
Domaine
backend

Piste de recherche

Commencez par reproduire l’exemple de MyOdbBackend.write() personnalisé et l’échec au niveau de repo.create_blob(). Consultez les interfaces OdbBackend et add_backend ainsi que la documentation associée afin de déterminer si write() est pris en charge. Le travail est terminé lorsque le comportement est soit implémenté et vérifié avec cet exemple, soit clairement documenté avec la limitation et la cause de l’erreur.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Python
Étoiles
1.7k
Forks
408
Merge moyen
2 j 57 min
PR mergées (30 j)
7

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de libgit2/pygit2

Toutes les issues de libgit2/pygit2

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.