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

GitHub Actions Pins হলো একটি মেইনটেন্যান্স রিপোজিটরি যার উদ্দেশ্য হলো GitHub Actions-এর জন্য পিন করা মেটাডেটা ট্র্যাক করা, যাতে ওয়ার্কফ্লোগুলো পরিবর্তনযোগ্য ট্যাগের পরিবর্তে immutable রিভিশন পিন করতে পারে। README-তে এই রিপোজিটরিটিকে একটি অ্যাপ্লিকেশনের পরিবর্তে একটি ট্র্যাকিং লিস্ট হিসেবে বর্ণনা করা হয়েছে এবং এর ব্যবহারিক আউটপুট হলো একটি মেশিন-রিডেবল ফাইল যা অন্যান্য প্রজেক্ট ব্যবহার করতে পারে। তথ্যের মূল উৎস হলো actions.csv নামক একটি ফাইল। প্রতিটি সারিতে দুটি কলাম থাকে: action এবং ref_override। যখন কোনো ওভাররাইডের প্রয়োজন হয় না, তখন ref_override কলামটি খালি রাখা হয়, যা লিস্টটিকে পঠনযোগ্য রাখে এবং একই সাথে কোনো এন্ট্রির জন্য একটি নির্দিষ্ট রেফারেন্স ফোর্স করার সুযোগ দেয়। লিস্টের পরিবর্তনগুলো একটি ইস্যু-ভিত্তিক প্রক্রিয়ার মাধ্যমে সম্পন্ন হয়। gh pin নামক একটি কমান্ড "Add actions to pin list" শিরোনামের একটি ইস্যু খুলতে পারে যাতে pins লেবেল থাকে। ওই লেবেলটি প্রয়োগ করাই অনুরোধটি অনুমোদনের মাধ্যম। এরপর একটি ইস্যু ওয়ার্কফ্লো ইস্যুতে জমা দেওয়া owner/action@ref এন্ট্রিগুলো যাচাই করে এবং সফল হলে একটি অটো-মার্জ পুল রিকোয়েস্ট খোলে যা actions.csv এবং pins.json উভয়কেই আপডেট করে। যেহেতু পুল রিকোয়েস্টটি অটো-মার্জে সেট করা থাকে, তাই অনুমোদিত সংযোজনগুলো ম্যানুয়াল মার্জ ছাড়াই যুক্ত হয়ে যায়। এন্ট্রিগুলো কীভাবে ব্যাখ্যা করা হবে তা কিছু নিয়ম দ্বারা পরিচালিত হয়। Action subpath-গুলো পিন কি-এর অংশ হিসেবে থাকে, তাই একটি অ্যাকশনের সাবডিরেক্টরির দিকে নির্দেশ করা ওয়ার্কফ্লো স্টেপটিকে একটি আলাদা কি হিসেবে গণ্য করা হয়। তবে, মেটাডেটা সাবপাথের পরিবর্তে রুট owner/repo-এর বিপরীতে রেজলভ হয়। যে এন্ট্রিগুলো ইতিমধ্যে একটি পূর্ণ commit SHA রেফারেন্স করে, সেগুলোকে পিন লিস্টে যোগ করার প্রয়োজন নেই, কারণ এই ধরনের রেফারেন্সগুলো গঠনগতভাবেই immutable। তৈরিকৃত pins.json ফাইলটি https://unfun.co/pins.json-এ পাবলিশ এবং ডেপ্লয় করা হয়, যা ব্যবহারকারীদের বর্তমান পিন ডেটা সংগ্রহের জন্য একটি স্থিতিশীল URL প্রদান করে। প্রজেক্টটি Daniel Morris-এর এবং এটি MIT License-এর অধীনে উপলব্ধ; README-তে ২০২৬ সালের কপিরাইট নোটিশ রয়েছে এবং রিপোজিটরির LICENSE.md ফাইলের লিঙ্ক দেওয়া আছে।