افزودن جوک برنامهنویس روزانه به GitHub README
امروز نحوه ایجاد یک پروژه ساده با GitHub Actions و جاوا اسکریپت را نشان خواهم داد که هر روز در نیمه شب اجرا می شود و یک شوخی توسعه دهنده را به فایل README اضافه می کند.
- هر روز یک جوک از یک API دریافت می کند و این README را ویرایش می کند
ورزش برای دیگران – 160 کالری سوزانده شده است.
تمرین برای کدنویس ها – رفع 60 اشکال.
ابتدا باید a را ایجاد کنیم package.json
با اجرای دستور فایل کنید npm init -y
.
سپس، یک را ایجاد کنید README.md
فایل، بنابراین می توان آن را بعدا ویرایش کرد.
پس از آن، اصلی را ایجاد کنید index.js
فایل. این فایل همان فایلی خواهد بود که ما در طول اکشن های GitHub اجرا خواهیم کرد، پس به آن بروید package.json
و شروع اسکریپت را با افزودن این دیکشنری به فایل بسته ایجاد کنید:
"scripts": {
"start": "node index.js"
}
استفاده خواهیم کرد axios
برای واکشی جوک از یک API، بنابراین دستور را اجرا کنید npm install axios
برای نصب axios
با مدیر بسته
اجرای این کد، نصب می شود node_modules
دایرکتوری، بنابراین با خیال راحت یک را ایجاد کنید .gitignore
فایل و محتوا را اضافه کنید /node_modules
به آن
در شروع ما index.js
فایل، باید دو ثابت ایجاد کنیم: axios
و fs
. استفاده کنید require()
عملکردی برای تعریف هر دوی آنها دارد.
const axios = require('axios');
const fs = require('fs');
ما جوک ها را از https://backend-omega-seven.vercel.app/api/getjoke دریافت خواهیم کرد.
برای دریافت اطلاعات از جوک API، باید از آن استفاده کنید axios
برای نوشتن این کد فقط در صورتی که به نظر می رسد API کار نمی کند، یک عبارت catch اضافه کرده ایم.
axios.get("https://backend-omega-seven.vercel.app/api/getjoke")
.then(res => {
const data = res.data;
console.log(data)
})
.catch(err => {
console.log('Error: ', err.message);
});
اگر کد را به درستی کپی/نوشته کرده اید، کد باید آرایه ای در قالب زیر چاپ کند:
[
{
"question": "[random question]",
"punchline": "[random punchline]"
}
]
حال باید سوال و خط را از داده ها بازیابی کنیم. از آنجایی که میدانیم دادهها آرایهای است که شامل یک فرهنگ لغت است که دارای سؤال و خط سوراخ است، میتوانیم از این کد برای تعریف کردن استفاده کنیم. question
و punchline
متغیرها:
const question = data[0].question;
const punchline = data[0].punchline;
قبل از اینکه فراموش کنیم، باید به مخزنی برویم که اکشن GitHub را اجرا می کند، به تنظیمات اکشن آن برویم و به گردش کار مجوز خواندن و نوشتن بدهیم (تا بتواند فایل README شما را ویرایش کند).
سپس متغیری به نام تعریف کنید text
که شامل نام README، توضیح ساده ای از مخزن، سوال به صورت پررنگ و خط پانچ به صورت مورب است. کد این قسمت به این صورت است:
const text = `
# Daily Dev Joke
- Fetches a joke from an API everyday and edits this README
**${question}**
*${punchline}*`
پس از آن، ما از تابع استفاده خواهیم کرد fs.writeFile()
برای نوشتن محتوای README که تولید کردهایم روی فایل README.md
:
fs.writeFile('README.md', text, 'utf-8', function(err, data) {
if (err) throw err;
console.log('Done!');
})
ما کد جاوا اسکریپت را با موفقیت نوشتیم!
اکنون باید اکشن GitHub را ایجاد کنیم. ابتدا یک دایرکتوری به نام ایجاد کنید .github/workflows
و داخل آن فایلی به نام ایجاد کنید daily-joke.yml
.
این فایل YML برای تعریف گردش کار GitHub Action استفاده خواهد شد. برخی از کارهای کلیدی که انجام می دهد عبارتند از:
-
این یک جریان کاری به نام “تولید-جوک روزانه” را تعریف می کند که روزانه در نیمه شب اجرا می شود (0 0 *)
-
این یک شغل به نام “افزودن مشارکت” دارد
-
این کار در محیط لینوکس اوبونتو اجرا می شود
-
مخزن GitHub را بررسی می کند
-
Node.js نسخه 14 را راه اندازی می کند
-
بسته های NPM را نصب می کند
-
یک اسکریپت NPM را برای ویرایش اجرا می کند
README.md
فایل -
این تغییرات را به
README.md
فایل با پیام “جوک روزانه تولید شده” -
این commit را به مخزن GitHub سوق می دهد
name: generate-daily-joke
run-name: Generating Daily Joke
on:
schedule:
- cron: "0 0 * * *"
jobs:
adds-contributor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '14'
- run: npm install
- name: Edit README.md
run: |
npm start
- name: Commit README.md
run: |
git config --global user.name 'VulcanWM'
git config --global user.email 'VulcanWM@users.noreply.github.com'
git commit -am "Generated Daily Joke"
git push
خودشه! ما یک پروژه ساده با GitHub Actions و جاوا اسکریپت ایجاد کرده ایم که هر روز در نیمه شب اجرا می شود و یک شوخی توسعه دهنده را به فایل README اضافه می کند.