libgit2 / libgit2/pygit2

Custom Python ODB backends - write() support

オープン
#1,057 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Python
スター
1.7k
フォーク
408
平均マージ
2日 57分
マージ済み PR(30日)
7

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、カスタム MyOdbBackend.write() の例と repo.create_blob() での失敗を再現します。OdbBackend インターフェースと add_backend インターフェース、および関連するドキュメントを読み、write() がサポートされているかどうかを確認します。この例で動作が実装・検証されるか、制限事項とエラーの原因が明確に文書化されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
git, python
領域
backend
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
32/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。