প্রকল্প সম্পর্কে

এই প্রকল্পটি সেইসব দৃশ্যপটের জন্য তৈরি যেখানে ধারাবাহিক এবং সময়োপযোগী পরিবেশগত ডেটা সংগ্রহের প্রয়োজন, যা GitHub Actions-এর উপর ভিত্তি করে একটি স্বয়ংক্রিয় ক্রলিং এবং আর্কাইভ করার সমাধান প্রদান করে। README-তে উল্লেখ করা হয়েছে যে এর ধারণা HeQinWill/CNEMC থেকে নেওয়া হয়েছে এবং এর শিডিউলিং পদ্ধতি ও স্থিতিশীলতাকে আরও উন্নত করা হয়েছে। বর্তমানে এটি মূলত CNEMC রিয়েল-টাইম পরিবেশগত পর্যবেক্ষণ ডেটা আপডেট সমর্থন করে এবং পরিকল্পিত ফিচারের মধ্যে ১০ মিনিট অন্তর Himawari স্যাটেলাইট শর্টওয়েভ রেডিয়েশন (SWR) ডেটা অন্তর্ভুক্ত রয়েছে। প্রকল্পটি ক্রলিং করা ফলাফলগুলোকে তারিখ অনুযায়ী CSV হিসেবে আর্কাইভ করে, যার ফলে ব্যবহারকারীরা raw.githubusercontent লিঙ্কের মাধ্যমে দ্রুত প্রতি ঘণ্টার ডেটা লোড করতে পারেন অথবা GitHub Contents API-এর মাধ্যমে নির্দিষ্ট দিনের ফাইলের তালিকা পেতে পারেন। এর অন্যতম প্রধান উদ্দেশ্য হলো GitHub Actions-এর নেটিভ cron-এর বাস্তবায়নে ঘটতে পারে এমন বিলম্ব বা ট্রিগার মিস হওয়ার সমস্যা এড়িয়ে চলা; তাই বাহ্যিক টাইমার ট্রিগার ব্যবহারের সুপারিশ করা হয়েছে: একটি ক্লাউড ফাংশনের মাধ্যমে নির্দিষ্ট সময় অন্তর GitHub-এর অফিসিয়াল Workflow Dispatch ইন্টারফেস কল করে রিমোটলি নির্দিষ্ট workflow ট্রিগার করা। কনফিগারেশনের ক্ষেত্রে, প্রজেক্ট রিপোজিটরিতে একটি Actions secret সেট করতে হবে: নাম GTOKEN এবং মান হিসেবে পার্সোনাল অ্যাক্সেস টোকেন। Personal Access Token-টি অবশ্যই classic টাইপের হতে হবে এবং repo ও workflow পারমিশন চেক করা থাকতে হবে; workflow পারমিশনের অভাব থাকলে API-এর মাধ্যমে workflow_dispatch ট্রিগার করা সম্ভব হবে না। ক্লাউড ফাংশন প্ল্যাটফর্মের ক্ষেত্রে, README-তে উল্লেখ করা হয়েছে যে Tencent Cloud Function SCF-এর কার্যকারিতা যাচাই করা হয়েছে, তবে তাত্ত্বিকভাবে যেকোনো প্ল্যাটফর্ম যা HTTP রিকোয়েস্ট এবং টাইমার ট্রিগার সমর্থন করে সেখানে এই সমাধানটি ডেপ্লয় করা সম্ভব। ডেপ্লয়মেন্টের সময় repo_owner, repo_name, workflow_name-এর মতো গুরুত্বপূর্ণ প্যারামিটারগুলো সরাসরি স্ট্রিং কনস্ট্যান্ট হিসেবে লেখা বা হার্ডকোড করার পরামর্শ দেওয়া হয়েছে, যাতে event/context-এর মাধ্যমে প্যারামিটার পাঠানোর ফলে প্যারামিটার হারিয়ে যাওয়া, এনভায়রনমেন্ট ভেরিয়েবল পার্সিং ব্যর্থতা বা অস্বাভাবিকতা এড়ানো যায়। উদাহরণস্বরূপ কোডটি GitHub API-তে POST রিকোয়েস্ট পাঠাতে requests লাইব্রেরি ব্যবহার করে, যার payload হলো ref=main এবং সফল স্ট্যাটাস কোড হলো ২০৪।