برنامه نویسی

افزودن جوک برنامه‌نویس روزانه به 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 اضافه می کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا