GitHub स्क्रिप्ट क्या है?
इस इकाई में, आप सीखेंगे कि कैसे GitHub स्क्रिप्ट आपको GitHub क्रियाएँ वर्कफ़्लो का उपयोग करके सामान्य GitHub प्रक्रियाओं को स्वचालित करने में सक्षम बनाती है।
GitHub स्क्रिप्ट क्या है?
GitHub Script एक ऐसी क्रिया है जो एक प्रमाणित ऑक्टोकिट क्लाइंट प्रदान करती है और जावास्क्रिप्ट को सीधे वर्कफ़्लो फ़ाइल में लिखने में सक्षम बनाती है। यहNode.jsमें चलता है , इसलिए जब आप स्क्रिप्ट लिखते हैं तो आपके पास उस प्लेटफ़ॉर्म की शक्ति उपलब्ध होती है।
ऑक्टोकिट क्या है?
Octokit GitHub API के लिए ग्राहकों का आधिकारिक संग्रह है। इन क्लाइंट में से एक, rest.js, GitHub REST इंटरफ़ेस पर जावास्क्रिप्ट एक्सेस प्रदान करता है।
आप हमेशा ऑक्टोकिट /rest.jsके माध्यम से गिटहब एपीआई को स्वचालित करने में सक्षम रहे हैं, हालांकि यह ठीक से स्थापित करने और बनाए रखने के लिए एक घर का काम हो सकता है। GitHub Script का उपयोग करने के महान लाभों में से एक यह है कि यह इस ओवरहेड को संभालता है ताकि आप तुरंत API का उपयोग शुरू कर सकें। आपको निर्भरता, कॉन्फ़िगरेशन या यहां तक कि प्रमाणीकरण के बारे में चिंता करने की आवश्यकता नहीं है।
ऑक्टोकिट/rest.js क्या कर सकता है?
संक्षिप्त उत्तर यह है कि यह GitHub को स्वचालित करने के संबंध में वस्तुतः कुछ भी कर सकता है। कमिट, पुल अनुरोधों और समस्याओं तक पहुंच होने के अलावा, आपके पास उपयोगकर्ताओं, परियोजनाओं और संगठनों तक भी पहुंच है। आप सामान्यतः उपयोग की जाने वाली फ़ाइलों, जैसे लोकप्रिय लायसेंस या .gitignore
फ़ाइलों की सूचियाँ पुनर्प्राप्त कर सकते हैं. आप मार्कडाउन भी प्रस्तुत कर सकते हैं।
यदि आप कुछ ऐसा बना रहे हैं जो GitHub को एकीकृत करता है, तो संभावनाएं अच्छी हैं कि आप जो खोज रहे हैं वह आपको पूर्ण ऑक्टोकिट/rest.js प्रलेखन में मिलेगा।
गिटहब स्क्रिप्ट का उपयोग ऑक्टोकिट/rest.jsसे अलग कैसे है?
उपयोग में मुख्य अंतर यह है कि GitHub स्क्रिप्ट एक github
पूर्वप्रमाणित ऑक्टोकिटrest.js/
तो के बजाय
octokit.issues.createComment({
आप उपयोग करते हैं
github.issues.createComment({
।
github
चर के अलावा, निम्नलिखित चर भी प्रदान किए जाते हैं:
-
context
वह ऑब्जेक्ट है जिसमें कार्यप्रवाह चलाने का संदर्भ होता है. -
core
@actions/कोर पैकेज का संदर्भ है। -
io
@actions/io पैकेज का संदर्भ है।
GitHub स्क्रिप्ट का उपयोग करने वाला वर्कफ़्लो बनाना
GitHub स्क्रिप्ट क्रियाएं किसी अन्य क्रिया की तरह वर्कफ़्लो में फिट होती हैं। परिणामस्वरूप, आप उन्हें मौजूदा वर्कफ़्लोज़ के साथ भी मिला सकते हैं, जैसे कि वे जिन्हें आपने पहले ही CI/CD के लिए सेट कर लिया हो। GitHub स्क्रिप्ट की सुविधा का वर्णन करने के लिए, अब आप एक पूर्ण वर्कफ़्लो का निर्माण करेंगे जो इसका उपयोग सभी नए बनाए गए मुद्दों पर टिप्पणी पोस्ट करने के लिए स्वचालित रूप से करता है।
आप एक name
और एक on
खंड के साथ शुरू करेंगे जो निर्दिष्ट करता है कि वर्कफ़्लो समस्याएँ खोले जाने पर चलता है:
name: Learning GitHub Script
on:
issues:
types: [opened]
इसके बाद, आप लिनक्स पर comment
चरणों की एक श्रृंखला के साथ चलने वाले नाम की नौकरी को परिभाषित करेंगे:
jobs:
comment:
runs-on: ubuntu-latest
steps:
इस मामले में, केवल एक ही चरण है: GitHub स्क्रिप्ट कार्रवाई।
- uses: actions/github-script@0.8.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
github.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: "🎉 You've created this issue comment using GitHub Script!!!"
})
GitHub क्रियाओं का उपयोग करना वास्तव में आपके रिपॉजिटरी में होने वाली घटनाओं को स्वचालित करने में मदद कर सकता है। कल्पना कीजिए कि एक रिपॉजिटरी विज़िटर ने एक नया मुद्दा खोला जिसमें एक महत्वपूर्ण बग के बारे में जानकारी थी। बग को अपने ध्यान में लाने के लिए आप उन्हें धन्यवाद देना चाह सकते हैं, लेकिन यह सरल कार्य भारी हो सकता है क्योंकि आपका भंडार अधिक आगंतुकों को आकर्षित करता है। किसी समस्या की टिप्पणी को स्वचालित करके, आप हर बार आगंतुकों को धन्यवाद देने की प्रक्रिया को स्वचालित कर सकते हैं।
क्रियाओं/github-script@0.8.0 का उपयोग करना
actions/github-script@0.8.0
कार्रवाई, जिसे GitHub स्क्रिप्ट के रूप में भी जाना जाता है, GitHub API के साथ आपके एकीकरण के लिए सभी कठिन काम करता है।
इस क्रिया के लिए रनटाइम पर प्रदान किए गए github-token
की आवश्यकता होती है ताकि अनुरोध प्रमाणीकृत हो जाएं। यह स्वचालित रूप से आपके लिए किया जाता है, इसलिए आप उस कोड का उपयोग as-isकर सकते हैं।
script
पैरामीटर वस्तुतः कोई भी जावास्क्रिप्ट हो सकता है जो github
में संग्रहीत ऑक्टोकिट/रेस्ट/जेएस क्लाइंट का उपयोग करता है। इस मामले में, यह केवल एक पंक्ति है (पठनीयता के लिए कई पंक्तियों में विभाजित) जो एक हार्डकोडेड टिप्पणी बनाता है।
वर्कफ़्लो चलने के बाद, GitHub स्क्रिप्ट उस कोड को लॉग करती है जिसे उसने क्रियाएँ टैब पर समीक्षा के लिए चलाया था:
किसी अलग फ़ाइल से चल रहा है
आपको कभी-कभी अपने GitHub स्क्रिप्ट परिदृश्य को पूरा करने के लिए महत्वपूर्ण मात्रा में कोड का उपयोग करने की आवश्यकता हो सकती है। जब ऐसा होता है, तो आप स्क्रिप्ट को एक अलग फ़ाइल में रख सकते हैं और सभी स्क्रिप्ट इनलाइन रखने के बजाय वर्कफ़्लो से इसका संदर्भ ले सकते हैं।
यहां एक साधारण वर्कफ़्लो का एक उदाहरण दिया गया है जो उस तकनीक का उपयोग करता है:
on: push
jobs:
echo-input:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/github-script@v2
with:
script: |
const path = require('path')
const scriptPath = path.resolve('./path/to/script.js')
console.log(require(scriptPath)({context}))