ردیابی تعهد در زمان واقعی در داشبورد GitHub
در توسعه نرمافزار، نمودارهای بلادرنگ C3.js راهی مؤثر برای نظارت بر فعالیتهای درون سازمان شما ارائه میکنند. برای تیم های مهندسی، یکی از معیارهایی که باید ردیابی شود، تعهدات GitHub است. با بررسی این موضوع، این پست وبلاگ آموزشی ارائه می دهد تا شما را در فرآیند استفاده از GitHub API برای بازیابی و نمایش داده ها از تعهدات GitHub در یک نمودار تعاملی زمان واقعی راهنمایی کند. ما از قدرت HTML، جاوا اسکریپت، CSS استفاده میکنیم و از PubNub برای ایجاد داشبورد GitHub و استریم دادهها استفاده میکنیم، در حالی که C3.js به تجسم کمک میکند.
برای کسب اطلاعات بیشتر در مورد گرافیک های بلادرنگ C3.js، ما یک آموزش عالی داریم. حالا، بیایید شیرجه بزنیم!
نحوه ایجاد داشبورد GitHub بلادرنگ
ایجاد یک داشبورد GitHub بلادرنگ شامل اتصال به منابع داده مختلف مانند مخزن GitHub و مراقبت از برخی وابستگی های ضروری است. از اقدامات لازم برای امنیت سایبری مانند کدگذاری ایمن و رمزگذاری داده ها آگاه باشید. پیروی از پروتکل های ایمنی استاندارد صنعت ضروری است.
در اینجا یک راهنمای گام به گام آورده شده است:
یک وب هوک GitHub
برای پیکربندی وب هوک، مراحل زیر را دنبال کنید:
-
یک مخزن GitHub ایجاد کنید یا از یک مخزن git موجود استفاده کنید.
-
روی “تنظیمات” در سمت راست صفحه کلیک کنید.
-
روی «Webhooks» در سمت چپ صفحه کلیک کنید.
-
روی «افزودن وب هوک» در بالا سمت راست کلیک کنید.
-
GitHub رمز عبور شما را می خواهد، آن را وارد کنید.
-
Sous ‘Payload URL’, entrez : http://pubnub-git-hook.herokuapp.com/github/ORG-NAME/TEAM-NAME. ORG-NAME را با نام سازمان خود و TEAM-NAME را با تیمی که مخزن را کنترل می کند جایگزین کنید.
داشبورد بصری را بارگیری کنید
از این صفحه دیدن کنید. لیستی از تمام commit های ارسال شده از طریق داشبورد PubNub را مشاهده خواهید کرد – عالی! هنگامی که یکی از commit های خود را به GitHub ارسال می کنید، باید در عرض چند ده میلی ثانیه پیامی را در داشبورد commit های GitHub خود مشاهده کنید و نمودارها در زمان واقعی به روز می شوند.
چگونه داشبورد انتشارات Github را ساختیم
داشبورد ترکیبی از GitHub، شبکه خوراک داده PubNub و تجسمهای گرافیکی D3 است که توسط C3.js طراحی شده است. هنگامی که یک commit به GitHub فشار داده می شود، متادیتای commit به یک نمونه کوچک Heroku ارسال می شود که آن را در شبکه PubNub منتشر می کند. ما یک صفحه داشبورد را در صفحات GitHub میزبانی می کنیم.
هنگامی که نمونه Heroku ما دادههای commit را از GitHub دریافت کرد، خلاصهای از آن دادهها را با استفاده از کلیدهای عمومی انتشار/اشتراک در کانال به PubNub ارسال میکند. pubnub-git. می توانید کانال pubnub-git را از طریق کنسول توسعه دهنده ما در اینجا نظارت کنید.
این یک پیام نمونه است:
{
"name":"drnugent",
"avatar_url":"https://avatars.githubusercontent.com/u/857270?v=3",
"num_commits":4,
"team":"team-pubnub",
"org":"pubnub",
"time":1430436692806,
"repo_name":"drnugent/test"
}
بخش دوم جادو زمانی اتفاق می افتد که داشبورد این اطلاعات را از طریق خود دریافت کند اشتراک برگشت به تماس. اگر به منبع داشبورد نگاه کنید، این کد را خواهید دید:
pubnub.subscribe({
channel: 'pubnub-git',
message: displayLiveMessage
});
این تماس اشتراک، عملکرد جاوا اسکریپت را تضمین می کند displayLiveMessage() هر بار که پیامی در کانال دریافت می شود تماس گرفته می شود pubnub-git. displayLiveMessage() اعلان فشار commit را به بالای گزارش اضافه می کند و نمودارهای تجسم C3 را به روز می کند.
اما صبر کنید، وقتی داشبورد برای اولین بار بارگذاری می شود، چگونه تغذیه می شود؟
از فروشگاه PubNub و API پخش برای داشبورد خود استفاده کنید
PubNub یک رکورد از هر پیام ارسال شده را نگه می دارد و راهی برای دسترسی به این پیام های ذخیره شده با Storage & Playback (History) در اختیار توسعه دهندگان قرار می دهد. در عمق داشبورد وب، کد زیر را مشاهده خواهید کرد:
var displayMessages = function(ms) { ms[0].forEach(displayMessage); };
pubnub.history({
channel: 'pubnub-git',
callback: displayMessages,
count: 100
});
این یک درخواست برای بازیابی 1000 پیام ارسال شده به کانال pubnub-git است. بنابراین حتی اگر داشبورد وب هنگام ارسال این پیامها آفلاین بود، میتواند آنها را بازیابی کند و از این دادهها برای پر کردن داشبورد بهگونهای استفاده کند که گویی برای همیشه آنلاین است.
این ویژگی مخصوصاً هنگام برخورد با دستگاههایی با اتصال متناوب یا غیرقابل اعتماد، مانند برنامههای تلفن همراه از طریق شبکههای سلولی یا اتومبیلهای متصل، مفید است. به لطف شبکه PubNub، داشبورد تجسم ما برای ذخیره وضعیت برنامه نیازی به Backend ندارد.
داشبورد GitHub خود را ایجاد کنید
برای شروع ساخت داشبورد Github خود، مخزن Git Commit UI را در github.com بگیرید و دستورالعملهای نصب README را دنبال کنید. درخواست های کششی به عنوان بخشی از همکاری با جامعه منبع باز استقبال می شود.
روندها و تحولات آینده در داشبوردهای بلادرنگ
توجه به آخرین روندها و پیشرفت ها در داشبوردهای بلادرنگ و فناوری های مرتبط ضروری است. این شامل سوکتهای وب برای انتقال بیدرنگ داده، استفاده از اعلانها برای بینش فوری، و استفاده از داشبوردهای بلادرنگ در جریانهای کاری مختلف است.
تجربه PubNub
PubNub به بسیاری از مشتریان کمک کرده است تا به موفقیت برنامه در زمان واقعی دست یابند. به عنوان مثال، سیستم اطلاع رسانی بلادرنگ لینکدین…
نصب کننده
برای دسترسی سریع و رایگان به کلیدهای PubNub یک حساب PubNub ایجاد کنید. آخرین ویژگی های موجود در حساب PubNub شما شامل…
برای راه اندازی
مستندات جامع PubNub ما شما را در کمترین زمان راه اندازی می کند، صرف نظر از موارد استفاده یا SDK شما.
PubNub یک پلت فرم کاربر پسند برای بهبود تجربه کاربری شما ارائه می دهد. خدمات ما با در نظر گرفتن توسعه دهندگان برای یک فرآیند سوار شدن بدون درز طراحی شده است.
به یاد داشته باشید، ما اینجا هستیم تا سفر توسعه بلادرنگ شما را هموارتر و کارآمدتر کنیم. URL payload خود را تنظیم کنید و بیایید شروع کنیم!
اسناد رسمی و منابع معتبر ممکن است در سراسر پست وبلاگ برای تأیید صحت اطلاعات ارجاع شوند.
این مقاله در ابتدا در PubNub.com منتشر شده است
پلتفرم ما به توسعهدهندگان کمک میکند تا تعامل بیدرنگ را برای برنامههای وب، برنامههای تلفن همراه و دستگاههای IoT ایجاد، ارائه و مدیریت کنند.
پایه و اساس پلت فرم ما بزرگترین و مقیاس پذیرترین شبکه پیام رسانی بلادرنگ صنعت است. با بیش از 15 نقطه حضور در سراسر جهان، 800 میلیون کاربر فعال ماهانه، و قابلیت اطمینان 99.999 درصد، هرگز نباید نگران قطعی ها، محدودیت های همزمانی، یا مشکلات تاخیر ناشی از اوج ترافیک باشید.
PubNub را کشف کنید
برای درک مفاهیم اساسی هر برنامه که توسط PubNub در کمتر از 5 دقیقه طراحی شده است، تور زنده را بررسی کنید.
نصب کننده
برای دسترسی فوری و رایگان به کلیدهای PubNub یک حساب PubNub ایجاد کنید.
برای شروع
اسناد PubNub شما را شروع می کند، صرف نظر از موارد استفاده یا SDK.