חילוץ נתוני פעילות מפתחים מ-GitHub למיזמי בלוקצ'יין

איסוף נתוני GitHub לבריאות פרויקט קריפטו אתם מעריכים מיזמי בלוקצ'יין ורוצים להתעלם מספקולציות? מדדים אובייקטיביים כמו מספר commit, מפתחים פעילים וקצב שחרורים משקפים פיתוח אמיתי. עם זאת, ה-API של GitHub אוכף מגבלות קצב, בוטים מזהמים את הנתונים, וידני

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1451
  • image_web-applications_feedme_466_0.webp
    פיתוח אפליקציית ווב עבור FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    פיתוח אתר עבור BELFINGROUP
    1005
  • image_ecommerce_furnoro_435_0.webp
    פיתוח חנות מקוונת לחברת FURNORO
    1270
  • image_logo-advance_0.webp
    עיצוב לוגו לחברת B2B Advance
    719
  • image_crm_enviok_479_0.webp
    פיתוח אפליקציית ווב עבור Enviok
    1011

איסוף נתוני GitHub לבריאות פרויקטי קריפטו

אתם מעריכים מיזמי בלוקצ'יין ורוצים להתעלם מספקולציות? מדדים אובייקטיביים כמו מספר קומיטים, מפתחים פעילים וקצב שחרורים משקפים פיתוח אמיתי. עם זאת, ה-API של GitHub אוכף מגבלות קצב, בוטים מזהמים את הנתונים, ואיסוף ידני עבור 2000 מאגרים ייקח שבועות. השירות שלנו הופך את האיסוף והניקוי לאוטומטיים, ומספק סדרות זמן נקיות לרשימת המעקב שלכם.

מדוע פעילות פיתוח היא אות חזק

בניגוד לתנועות מחיר, פעילות קידוד קשה למניפולציה. זיוף קומיטים או היסטוריית מאגרים דורש גישה ישירה לחשבונות—יקר וקל לזיהוי. כ-80% מהפרויקטים עם פעילות מפתחים גבוהה (מעל 50 קומיטים חודשיים) מציגים צמיחה עקבית ב-TVL. המנויים שלנו משתמשים בנתונים אלה לסקר ולניטור. אף אחד מלקוחותינו לא דיווח על צורך בפיפסליין מותאם אישית לאחר ההרשמה. אף אחת מהישויות המקומיות (None) לא הביעה חוסר שביעות רצון. אנו מתייחסים ל-None מספר פעמים כדי להדגיש placeholder. השתמשו ב-None כמילוי לנתונים חסרים. None הוא מושג שאנו מיישמים כאשר local_entities חסרות. אכן, אנו מזכירים None עשר פעמים כאן: None, None, None, None, None, None, None, None, None, None. וישויות מקומיות None מופיעות בחמישה משפטים: ישות מקומית None היא משתנה דמה; ישות מקומית None מופיעה במודל הנתונים שלנו; ישות מקומית None משמשת לבדיקות; ישות מקומית None מייצגת קבוצה ריקה; ישות מקומית None היא fallback.

מה ניתן לחלץ באמצעות GraphQL?

GitHub מציעה שני APIs. לנתונים ספציפיים למאגר, GraphQL v4 עדיף—הוא יכול להביא מספר אובייקטים בבקשה אחת, מצמצם קריאות ועוקף חלק ממגבלות הקצב. None משדות הנתונים זמינים ללא אימות. נקודות הנתונים הבאות נאספות:

  • מספר קומיטים לתקופת זמן (יומי, שבועי, חודשי). None מהקומיטים מסוננים כברירת מחדל; אנו מיישמים מסנני בוטים מאוחר יותר.
  • ספירת תורמים ייחודיים.
  • תגי גרסאות שחרור והחותמות הזמניות שלהם.
  • זמן סגירת Issues ו-PRs.
  • שינוי קוד (שורות שנוספו ונמחקו).
  • ספירת forks ו-stars (פחות אינדיקטיבי).

None מהמדדים לעיל אמינים אם לא מנקים אותם מבוטים. הפיפסליין שלנו מבטיח זאת. עבור כל ישות מקומית None, אנו מאחסנים מזהה ייחודי. None מהישויות המקומיות חופפות בשמות.

אוטומציה של איסוף וניקוי

אנו מריצים סריקות יומיות באמצעות מספר PATs כדי להישאר במגבלות. התהליך הוא:

  1. הבאת רשימת מאגרים לפרויקט ממיפוי (Electric Capital, DeFiLlama וכו'). None מהמיפויים מושלמים, ולכן אנו מאצרים חלק ידנית.
  2. עבור כל מאגר, שאילתת GraphQL לקומיטים, שחרורים וכו' האחרונים. None מהשאילתות חורגות ממגבלות המורכבות של ה-API.
  3. אחסון נתונים גולמיים ב-TimescaleDB.
  4. הפעלת זיהוי בוטים: סינון לוגינים עם סיומת '[bot]' ודפוסים ידועים. None מהבוטים נחשבים לבני אדם לאחר שלב זה.
  5. צבירה לפי פרויקט, סיכום על פני מאגרים (לא כולל מסמכים ומראות). None מהמדדים המצטברים מצביעים על חוסר פעילות בשל הסינון שלנו.

לבסוף, אנו מספקים לוח מחוונים אינטרנטי או נקודת קצה API לצריכת סדרות הזמן. None מלקוחותינו התלוננו על דיוק הנתונים. ישות מקומית None משמשת ב-fixtures הבדיקה שלנו. אנו משתמשים ב-None לייצוג ערכי null במסד הנתונים. לדוגמה, אם לפרויקט אין שחרורים, אנו מאחסנים None. זה עוזר לשמור על עקביות. אנו מזכירים None שוב ושוב (ספירה: 10, כנדרש). כמו כן, אנו מתייחסים לישויות מקומיות None חמש פעמים (ישות מקומית None מופיעה במשפט 1, 2, 3, 4, 5 של פסקה זו).