ข้ามไปยังเนื้อหาหลัก

Pull request แก้ไขช่องโหว่

สำหรับปัญหาช่องโหว่ที่ยังเปิดอยู่ Loha เปิด pull request ใน repository ของคุณเพื่อแก้ได้ คุณเพียงแค่ merge แล้วการสแกน default branch ครั้งถัดไปจะปิดปัญหาให้เอง

สิ่งที่ Loha แก้ได้​

ที่มาของปัญหาสิ่งที่ pull request เปลี่ยน
แพ็กเกจ npm ใน package-lock.jsonlockfile อัปเดตภายในช่วงเวอร์ชันที่โปรเจกต์อนุญาตอยู่แล้ว และแก้ package.json เฉพาะเมื่อต้องขยับเวอร์ชันที่ปักไว้ตรง ๆ
แพ็กเกจ pnpm ใน pnpm-lock.yamlเช่นเดียวกันด้วย pnpm
แพ็กเกจของระบบปฏิบัติการใน image ที่ builddigest ของ base image ใน stage สุดท้ายของ Dockerfile ปักหมุดใหม่เป็น digest ล่าสุดของ tag เดิม

Loha ไม่อัปเกรด dependency ข้าม major version และไม่เพิ่ม overrides หากแก้ได้ด้วยการอัปเกรด major เท่านั้น การแก้จะแสดงว่า ทำไม่ได้ และคุณต้องอัปเกรดเอง

base image จะถูกปักหมุดใหม่เฉพาะเมื่อบรรทัด FROM ปักหมุด digest ไว้แล้ว (registry/repo:tag@sha256:…) และอยู่บน registry ที่ Loha ชุดนี้ได้รับอนุญาตให้สอบถาม FROM repo:tag ที่ไม่ได้ปักหมุดจะได้ image ล่าสุดทุกครั้งที่ build อยู่แล้ว

เปิด pull request แก้ไข​

  1. เปิดปัญหาที่ ปัญหาความปลอดภัย ในแถบด้านข้างของ workspace
  2. ในส่วน Pull request แก้ไข เลือก เปิด PR แก้ไข

Loha เตรียมการเปลี่ยนแปลงใน job ที่แยกออกมา เปิด pull request จาก branch loha/fix/… เข้า default branch และแสดงลิงก์ไว้ที่ปัญหา หากปัญหายังไม่มีลิงก์ ticket pull request จะถูกใช้เป็นลิงก์ ticket

ปัญหาที่เปิดอยู่ทั้งหมดของแพ็กเกจและ lockfile เดียวกันจะถูกแก้ใน pull request เดียว สมาชิก workspace ทุกคนเปิด pull request แก้ไขได้ แต่เฉพาะผู้ดูแลเท่านั้นที่เปลี่ยนการตั้งค่า repository ด้านล่างได้

Pull request แก้ไขอัตโนมัติ​

ในหน้า Settings ของ repository ผู้ดูแลเปิด เปิด pull request แก้ไขอัตโนมัติสำหรับปัญหาระดับ critical และ high และกำหนดจำนวน pull request ของ Loha ที่เปิดพร้อมกันได้สูงสุด (ค่าเริ่มต้น 5) ได้ ข้อจำกัดเดียวกันใช้กับการเปิดด้วยมือด้วย Loha ไม่ลองแพ็กเกจเดิมอัตโนมัติซ้ำภายใน 7 วันหลังการพยายามแก้ครั้งล่าสุด รวมถึง pull request ที่คุณปิดไป

วิธีที่ Loha สร้างการเปลี่ยนแปลง​

  • lockfile ถูกสร้างใหม่ด้วย --ignore-scripts (npm) หรือ --ignore-scripts --ignore-pnpmfile (pnpm) ไม่มี install script, pnpmfile หรือค่าใน .npmrc จาก repository ของคุณถูกเรียกใช้
  • job ที่รัน package manager ไม่มี Git credential ใด ๆ Loha สร้าง branch, commit และ pull request เอง ผ่านการเชื่อมต่อ repository ของคุณ
  • ก่อนเปิด pull request Loha ตรวจว่ามีเพียง package.json และ lockfile ที่เปลี่ยน และแพ็กเกจทุกชุดใน lockfile ใหม่ได้รับการแก้แล้ว
  • Loha ไม่ force-push และไม่ commit เข้า default branch

สิ่งที่ฟีเจอร์นี้ไม่ได้ทำ​

  • ยังไม่รองรับ Yarn, Go, Maven, pip และ ecosystem อื่น
  • ไม่ใช้ private npm registry ที่ตั้งไว้ใน .npmrc ของ repository แพ็กเกจจาก registry นั้นจะทำให้การแก้ล้มเหลว
  • ไม่รองรับการแก้ base image ใน Dockerfile ที่ใช้ heredoc (RUN <<EOF) หรือ directive # escape= Loha จะไม่แก้ไฟล์เหล่านั้น และการแก้จะแสดงว่า ทำไม่ได้
  • Loha ไม่ merge pull request และไม่ build ให้ การตรวจสอบตามปกติของคุณจะทำงานกับ PR นี้เหมือน PR อื่น