وارد کردن آمار فعالیت‌های GitLab در GitHub!

github-contributions

برای من مخزن‌های خصوصی GitHubم محل امن تک تک کدهای کثفم بود ولی بعد از اون داستان تحریم شدن ایرانی‌ها توسط GitHub و قطع دسترسی به مخازن خصوصی اجبارا کوچ کردم به GitLab. مدتی پیش تصمیم گرفتم GitHubم رو به عنوان یک شبهه رزومه در بیارم و کدهای نسبتا قابل قبولم رو اونجا به نمایش جهانیان بذارم و GitLab همون دخمه‌ی کثیف پر از تیکه کدهام بمونه. جایی که شیطان میان اون کدها زندگی می‌کنه.

اما ذات آوردن چندتا کد خوب به GitHub برای نشون دادن «چقدر خوبیم ما» به کارفرمایان احتمالی کافی نیست. طبق چیزهایی که اینور اونور خوندم داشتن یک نظم کد نویسی و نشون دادنش از طریق آمار GitHub تاثیر بسیار خوبی روی دیگران میذاره. که طبیعیه، کسی که یک روز در ماه کد می‌زنه کجا کسی که هر روز هفته کد Push می‌کنه کجا.

با این توصیفات دنبال راهی بودم که این آمار فعالیت رو بشه از GitLab برداشت آورد توی GitHub نشون داد، یکم گوگل بازی کافی بود تا به یک ابزار پایتون برای این کار برسم. ادامه‌ی این نوشته این ابزار رو معرفی می‌کنم و نحوه‌ی کار باهاش رو شرح می‌دم، در ادامه‌ی این نوشته با من همراه باشید.

کاری که قراره انجام بدیم نسبتا ساده‌ست، یک مخزن خالی در GitHub درست می‌کنیم که وظیفه‌ی اون فقط و فقط نگه داشتن تاریخچه‌ی Commit‌های ماست. بعد با استفاده از ماژول پایتون Contributions Importer for GitHub چندخط کد می‌نویسیم تا تاریخچه‌ی Commitها رو از سایر repoها جمع کنه و در این مخزنی که ساختیم وارد کنه.

مراحل کار:

ابتدا در GitHub یک مخزن خالی به اسم MockRepo درست کنید.

یک پوشه خالی به اسم contributions_importer هم یک گوشه‌ی سیستمون درست کنید.

با دستور git cloneمخزن Contributions Importer for GitHub رو کپی می کنیم داخل پوشه‌ی contributions_importer

git clone https://github.com/miromannino/Contributions-Importer-For-Github.git

همچنین اون مخزن خالی‌ای که ساخته بودیم رو هم با دستور git cloneکپی می‌کنیم توی همین پوشه.

با ادیتور دلخواهمون یک فایل به اسم mock_importer.py ایجاد می‌کنیم و دستورات زیر رو درون اون کپی می‌کنیم.

import git
from git_contributions_importer import *

# Your Gitlab private repo 
repo = git.Repo("path/to/your/private/repo")

# Your mock repo
mock_repo = git.Repo("path/to/your/mock/repo")

importer = Importer([repo], mock_repo)

# Set Author
importer.set_author('[email protected]')

importer.import_repository()

دقت داشته باشید که جای path/to/your/private/repo باید آدرس پوشه‌ی پروژه‌ای که می‌خوایم Commitهای اون رو کپی کنیم وارد کنیم.

جای path/to/your/mock/repo آدرس پوشه‌ی مخزن MockRepo رو باید بنویسیم.

و به جای [email protected] آدرس ایمیل خودمون رو.

برای اینکه دستورات بالا رو بتونیم اجرا کنیم نیاز داریم کتابخونه‌های gitpython و pathlib رو نصب داشته باشیم.

pip3 install gitpython pathlib

کد بالا رو اجرا می‌کنیم

python3 mock_importer.py

اگر همه‌چیز خوب پیش رفته باشه به ازای هر یک از commitهای مخزن اصلی یک چنین پیامی رو خواهیم دید:

در نهایت کافیه وارد پوشه‌ی MockRepo بشیم و با دستور git push -u origin masterاین commitهایی که استخراج کردیم رو بفرستیم به GitHubمون.

منابع:

https://github.com/miromannino/Contributions-Importer-For-Github

https://medium.com/@razan.joc/how-i-restored-my-git-contributions-7ddb27f06d4e


نویسنده: محمد حسین سالاری

You may also like

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *