Tekshiruv natijasini o'qish (π’/π‘/π΄)
Har safar ZIP yoki GitHub orqali kod yuklaganingizda, Botxona avtomatik tekshiruv o'tkazadi va har bir band uchun natija ko'rsatadi:
- π’ Yashil (pass) β hammasi joyida, hech narsa qilish shart emas.
- π‘ Sariq (warn) β bot baribir ishga tushadi, lekin diqqat qilinishi kerak bo'lgan nuqta bor.
- π΄ Qizil (fail) β jiddiy muammo, bot qurilmaydi. Muammoni tuzatib qayta yuklashingiz kerak.
Sariq yoki qizil natija chiqsa, hisobot ostida "AI-tuzatish prompti" tugmasi chiqadi β uni nusxalab ChatGPT/Claude/Gemini'ga bersangiz, ular muammoni tushuntirib, tuzatilgan kodni qaytaradi.
Arxiv tekshiruvi
ZIP faylning hajmi, fayllar soni va turlari belgilangan chegaralarga mos kelishini tekshiradi. Qizil bo'lsa β arxiv juda katta yoki ruxsat etilmagan fayl turi (masalan .exe) bor.
GitHub orqali ulaganda bu bosqich "Manba kodini olish" deb ataladi. Qizil bo'lsa β repozitoriya topilmadi, yopiq (private) yoki ko'rsatilgan branch yo'q. Havolani brauzerda ochib tekshiring, repozitoriyani ochiq qiling yoki kodni ZIP qilib yuklang. Bu holatda AI-prompt kerak emas β muammo kodda emas, havolada.
Til aniqlash
Loyiha Python yoki Node.js ekanini aniqlaydi. Qizil bo'lsa β arxiv ildizida requirements.txt (Python) yoki package.json (Node.js) topilmadi. Ko'pincha sabab: bu fayllar arxivga qo'shilmagan yoki noto'g'ri papkadan ZIP qilingan. Arxivni to'g'ri tayyorlash bo'yicha yo'riqnomani ko'ring.
1. Token faqat BOT_TOKEN dan
Kodda ochiq (qattiq yozilgan) token borligini tekshiradi. Topilsa β qizil, chunki bu xavfsizlik xatari. Tuzatish: 6 qoida β 1-band.
2. API manzil TELEGRAM_API_URL dan
TELEGRAM_API_URL ishlatilayotganini tekshiradi. Ishlatilmasa β qizil (analitika ishlamaydi). Ishlatilgan, lekin yoniga api.telegram.org ga to'g'ridan-to'g'ri murojaat ham bo'lsa β sariq. Tuzatish: 6 qoida β 2-band.
3. Kutubxonalar versiyasi
requirements.txt yoki package.json borligi va versiyalar aniq ko'rsatilganini tekshiradi. Fayl umuman yo'q bo'lsa β qizil. Versiyasiz kutubxonalar bo'lsa β sariq. Tuzatish: 6 qoida β 3-band.
4. Kirish nuqtasi
Qaysi fayl ishga tushirilishini aniqlaydi (main.py, bot.py, package.json dagi start skripti yoki botxona.yaml). Bir nechta nomzod topilsa β sariq (birinchisi tanlanadi, lekin aniqlik uchun botxona.yaml qo'shing). Hech narsa topilmasa β qizil. Tuzatish: botxona.yaml.
5. DATA_DIR
Bot fayl yozayotgan bo'lsa, DATA_DIR ishlatilayotganini tekshiradi. Tashqi ma'lumotlar bazasi (DATABASE_URL va h.k.) ishlatilsa β bu ham "pass" hisoblanadi (zaxira mas'uliyati o'zingizda). DATA_DIRsiz to'g'ridan-to'g'ri diskka yozish β sariq. Tuzatish: 6 qoida β 5-band.
6. .env.example
Bot ishlatadigan barcha muhit o'zgaruvchilari .env.example da hujjatlashtirilganini tekshiradi. Fayl yo'q yoki ba'zi o'zgaruvchilar tushib qolgan bo'lsa β sariq (bot ishlaydi, lekin panelda sozlamalar formasi to'liq bo'lmasligi mumkin β ularni qo'lda qo'shishingiz mumkin). Tuzatish: 6 qoida β 6-band.
Xavfsizlik skaneri
Kod ichida mayning, reverse-shell, obfuskatsiyalangan exec/eval, curl | sh kabi zararli naqshlar qidiriladi. Bunday narsa topilsa β qizil va build to'xtatiladi (bu muzokara qilinmaydigan qoida). Ba'zi zararsiz, lekin diqqat talab qiladigan holatlar (masalan SMTP, 25-port) β sariq. To'liq ro'yxat: Xavfsizlik (texnik).
Build
Kod uchun avtomatik Dockerfile yaratilib, konteyner quriladi. Build xatosi (masalan kutubxona o'rnatilmadi) bo'lsa β qizil, va loglarning oxirgi qatorlari hisobotda ko'rsatiladi.
Smoke-test
Build muvaffaqiyatli bo'lgach, bot bir necha soniya (odatda 30 soniya) davomida sinov rejimida ishga tushiriladi: konteyner darhol qulab tushmasligi, xotira yetarli bo'lishi tekshiriladi. Bu bosqichda muammo chiqsa β bot production'ga chiqmaydi, sabab ko'rsatiladi.
Nima uchun smoke-test muhim?
Ba'zi xatolar faqat ishga tushgandan keyin ko'rinadi (masalan noto'g'ri import, ishlamaydigan token). Smoke-test shu xatolarni real foydalanuvchilarga yetib borishidan oldin tutib qoladi.
Keyingi qadam
Natija sariq yoki qizil bo'lsa: hisobotdagi AI-tuzatish promptini nusxalab AI'ga bering, yoki qo'lda 6 qoida bo'yicha tuzating va qayta yuklang. Hammasi joyida bo'lsa: botni sinab ko'ring, so'ng to'lovga o'ting.