Chapters ▾ 2nd Edition

A2.5 پیوست B: گنجاندن گیت در برنامه‌های شما (Embedding Git in your Applications) - کتابخانه گیت پایتون (Dulwich)

کتابخانه گیت پایتون (Dulwich)

یک پیاده‌سازی کامل Git به زبان پایتون نیز وجود دارد — Dulwich. این پروژه در آدرس https://www.dulwich.io/ میزبانی می‌شود. هدف آن ارائه یک رابط (interface) برای مخازن Git (هم محلی و هم راه‌دور) است که مستقیماً Git را فراخوانی نکند و به‌جای آن از پایتون خالص استفاده کند. با این حال، Dulwich دارای افزونه‌های C اختیاری است که عملکرد را به‌طور قابل‌توجهی بهبود می‌بخشند.

Dulwich از طراحی Git پیروی می‌کند و دو سطح پایه API را از هم جدا می‌کند: plumbing و porcelain.

در اینجا مثالی از استفاده از API سطح پایین برای دسترسی به پیام آخرین commit آمده است:

from dulwich.repo import Repo
r = Repo('.')
r.head()
# '57fbe010446356833a6ad1600059d80b1e731e15'

c = r[r.head()]
c
# <Commit 015fc1267258458901a94d228e39f0a378370466>

c.message
# 'Add note about encoding.\n'

برای چاپ لاگ commit با استفاده از API سطح بالای porcelain، می‌توان از روش زیر استفاده کرد:

from dulwich import porcelain
porcelain.log('.', max_entries=1)

#commit: 57fbe010446356833a6ad1600059d80b1e731e15
#Author: Jelmer Vernooij <jelmer@jelmer.uk>
#Date:   Sat Apr 29 2017 23:57:34 +0000

مطالعه بیشتر (Further Reading)

مستندات API، آموزش‌ها و بسیاری از مثال‌های انجام کارهای مشخص با Dulwich در وبسایت رسمی آن در دسترس است: https://www.dulwich.io.

scroll-to-top