Gitmails - أداة لجمع المعلومات لدمج رسائل البريد الإلكتروني من Git Commit في خدمات استضافة التحكم في الإصدار
و جمع المعلومات أداة لcolect بوابة تلتزم رسائل البريد الإلكتروني فيالتحكم في الإصدار خدمات المضيف.
نظرة عامة
تستكشف Gitmails أن إلتزامات git تحتوي على اسم وبريد إلكتروني تم تكوينه بواسطة المؤلف ويتم استخدام خدمات مضيف التحكم في الإصدار لتخزين الكثير من المشاريع.
ما هي مزايا Gitmails؟
- الاستعلام عن خدمات مضيف التحكم في الإصدار للحصول على معلومات حول المؤسسة أو الفريق أو المجموعة أو المستخدم أو مستودع واحد ؛
- سرد جميع المستودعات (مقيدة بالمصادقة) إذا لم يكن في وضع مستودع واحد ؛
- قم باستنساخ المستودع أو الاستعلام عن خدمة مضيف التحكم في الإصدار لمحفوظات الالتزام ؛
- تحليل تاريخ الالتزام لتحديد المؤلفين الفريدين. يتم تعريف المؤلفين عن طريق الاسم والبريد الإلكتروني الاسمية.
الاستخدام
أولاً ، يجب عليك اختيار طريقة التشغيل: جمع رسائل البريد الإلكتروني للمؤسسة ، أو المستخدم أو مستودع واحد. ويمكن أن يتم ذلك من خلال الخيارات التالية:
-u --username
، -o --organization
أو -r --repository
. بعد تحديد طريقة التشغيل ، يجب عليك تحديد الهدف. يجب عليك تمريرها مباشرة بعد طريقة التشغيل:
python3 gitmails.py -u some_username
، python3 gitmails.py -o some_org
أو python3 gitmails.py -r some_repo_url
. ملاحظة : أسماء مستخدمي gitlab حساسة لحالة الأحرف ، ضع ذلك في الاعتبار عند محاولة جمع رسائل البريد الإلكتروني هناك.باستخدام هذا التكوين الأساسي ، سيقوم Gitmails باستنساخ جميع المستودعات للهدف المحدد (أو نسخ المستودع في url) وتحليل تاريخ التزامه. بعد ذلك ، ستقوم بطباعة المعلومات عالية المستوى الخاصة بالمستخدم أو المؤسسة وأخيراً الطباعة ، في جدول "fancy_grid" (من tabulate) ، كل البارات Name-Email التي يتم العثور عليها أثناء التحليل.
خيارات مفيدة:
--raw
: سيتم طباعة النتائج في نص خالص ، لا شبكات ، فقط قيم مفصولة بفواصل؛-f | --file
: سيتم تخزين النتيجة في الملف المحدد. ستكون النتائج بتنسيق csv بدون تنسيق رأس.--include-repositories
: سيجعل Gitmails طباعة النتيجة بمعلومات حول في أي مستودع تم العثور على البريد الإلكتروني.-p | --path
: حدد المسار المؤقت لنسخ المستودعات.-e | --exclude
: تجاهل المستودعات المحددة. سوف يقارن اسم المستودع ، إذا كان يتطابق ، سيتجاهل المستودع ويذهب إلى التالي.--no-cleanup
: لن إزالة المستودعات المستنسخة.--include-forks
: سوف تشمل مستودعات متشعبة في التحليل (فقط للجيثب).--include-users
: إذا جمع منظمة ، سوف تجمع معلومات حول أعضائها (فقط ل github).--no-[gitlab|github|bitbucket]
: لن تجمع معلومات خدمة المضيف المحددة.--run-plugins
: سيتم تنفيذ المكونات الإضافية في النتيجة المجمعة.--api
: سيحاول جمع جميع المعلومات فقط من خلال API ، دون مستودعات الاستنساخ. ملاحظة : سيؤدي الوصول إلى واجهات برمجة التطبيقات (APIs) بدون مصادقة إلى التحكم في عنوان IP الخاص بك. أيضًا ، يكون تجميع واجهة برمجة التطبيقات فقط أبطأ من استنساخ المستودعات.
التثبيت
لتثبيت Gitmails ، سيكون عليك تنفيذ الخطوات التالية:
pip3 install -r requirements.txt
- تثبيت pygit2 من خلال مدير حزمة نظام التشغيل الخاص بك.
مشاكل دبيان
إذا كنت تستخدم ديبيان (ربما Ubuntu أيضاً) ، فلن تعمل حزمة libgit2 مع Gitmails. لحل هذه المشكلة ، ستحتاج إلى تجميع libgit2 يدويًا. الخطوات التالية يجب أن تكون كافية:
wget https://github.com/libgit2/libgit2/archive/v0.27.0.tar.gz && \
tar xzf v0.27.0.tar.gz && \
cd libgit2-0.27.0/ && \
cmake . && \
make && \
sudo make install
ldconfig
pip3 install pygit2
عامل الميناء
يمكنك أيضًا استخدام إصدار أداة الميناء من خلال إصدار الأمر التالي:
docker run -it giovanifss/gitmails --help
لاحظ أنه إذا كنت تريد الكتابة إلى ملف ، فستحتاج إلى تحميل وحدة تخزين عامل ميناء:docker run -v /tmp/output:/opt -it giovanifss/gitmails -f /opt/result.txt
تعليقات