کامیتهای امضاشده
zev هر کامیت تازه را روی رایانهٔ شما با کلید Ed25519 مخزن امضا میکند. کلید را یک بار به حسابتان بیفزایید تا Zaryn آن کامیتها را با نام شما «تأییدشده» نشان دهد.
دنبال فرمانی برای اجرا بگردید…
zev هر کامیت تازه را روی رایانهٔ شما با کلید Ed25519 مخزن امضا میکند. کلید را یک بار به حسابتان بیفزایید تا Zaryn آن کامیتها را با نام شما «تأییدشده» نشان دهد.
هر کامیت میگوید چه کسی آن را نوشته، اما هر کسی میتواند هر نامی را در تنظیمات zev خود بنویسد. امضا ثابت میکند کدام کلید کامیت را ساخته است. zev هر کامیت تازه را روی رایانهٔ شما امضا میکند و Zaryn کامیت را تنها وقتی تأییدشده نشان میدهد که کلیدِ امضاکننده روی همان حسابی باشد که نامش آمده.
.zev/identity. دستور zev signing-key آن را چاپ میکند..zev/signatures نگه میدارد و در push بعدی، پس از کامیتها، میفرستد. امضایی که سرور دارد دوباره فرستاده نمیشود.در هر مخزنی که از آن push میکنید یک بار این را اجرا کنید:
zev signing-key add --label laptopzev کلید عمومی مخزن را به حساب شما میفرستد. از آن پس هر کامیتی که امضا کرده، در فهرست کامیتها و صفحهٔ کامیت با نام شما ✓ تأییدشده نشان داده میشود. کامیتهایی که پیش از افزودن کلید امضا شدهاند هم حساب میشوند.
کلید را در وب هم میتوانید بیفزایید: امنیت ← کلیدهای امضای کامیت. در مخزن zev signing-key را اجرا کنید و کلیدی را که چاپ میکند بچسبانید.
مدیران یک مخزن میتوانند این را الزامی کنند: ⚙ تنظیمات ← فقط کامیتهای تأییدشده ادغام شوند. از آن پس یک درخواست ادغام تنها وقتی ادغام میشود که همهٔ کامیتهایی که میآورد تأییدشده باشند. فهرست بررسی درخواست ادغام میگوید چندتا تأییدشده نیستند، و هیچکس، حتی مدیر، نمیتواند ادغام را به زور از آن بگذراند.
این قاعده یک شاخه را هم در برابر push مستقیم نگه میدارد: main، مگر در همان تنظیمات شاخهٔ دیگری نام ببرید. pushی که کامیتی تأییدنشده به آن بیاورد رد میشود و zev میگوید چندتا و چه باید اجرا کرد. شاخههای دیگر هر چیزی را میپذیرند، پس میتوانید کار نیمهتمام را push کنید و درخواست ادغام باز کنید؛ بررسی آن این کامیتها را میپوشاند. zev امضاها را پیش از جابهجا کردن شاخه میفرستد، پس push امضاشده در یک گام انجام میشود.
zev push-api origin main# Push refused: 1 new commit(s) on main aren't Verified, and this repository takes only Verified commits therezev sign-commits 1zev push-api origin main # Push completeاسکریپتها و عاملها هم میتوانند آن را بخوانند و تنظیم کنند: GET و PUT /v1/repos/<owner>/<repo>/signing-rule با {"require_verified": true, "branch": "main"}. فهرست کامیتها (و ابزار zaryn_commits در zev mcp) امضای هر کامیت را نشان میدهد.
zev signing-key # کلید این مخزن، و اینکه کامیتهای تازه امضا میشوند یا نهzev signing-key add [--label x] # افزودن به حساب: کامیتهایش تأییدشده نشان داده میشوندzev signing-key ls # کلیدهای امضای حساب شما، با شمار کامیتهایی که هرکدام امضا کردهzev signing-key rm <id> # حذف یکی: کامیتهایش امضاشده نشان داده میشوند، نه تأییدشدهzev verify <commit> # سنجش امضای یک کامیت همینجا (هش کوتاه کافی است)zev sign-commits [N] # امضای N کامیت آخر که امضا ندارند (پیشفرض ۱۰۰)zev config set commit.sign false # توقف امضای کامیتهای تازه در این مخزنرایانهام را گم کردهام. کلید را با zev signing-key rm <id> یا در صفحهٔ امنیت حذف کنید. کامیتهایش دیگر تأییدشده نشان داده نمیشوند و هیچکس دیگر نمیتواند آن کلید را به حساب خود بیفزاید.
روی رایانهٔ تازه clone کردهام. نسخهٔ تازه نخستین باری که امضا میکند کلید خودش را میگیرد. آنجا هم zev signing-key add را اجرا کنید.
کامیتهای پیش از امضا. zev sign-commits آنها را با کلید مخزن امضا میکند. push کنید تا نشان داده شوند.
فرقش با zev sign <cid> چیست؟ zev sign هر شیئی را با هویت شما امضا میکند، برای گواهی که به کسی میدهید. امضای کامیت خودکار است و در Zaryn نشان داده میشود.
همچنین ببینید: هشدارها و تبار برای علامتزدن کامیتهای آسیبدیده، و ذخیرهسازی بررسیپذیر برای گواه اینکه Zaryn آنچه push کردهاید را نگه میدارد.