บล็อก checkers ใน .lagune/configs.json กำหนดว่า hook ที่สแกนไฟล์จะข้ามอะไรบ้าง ใช้กับทุก hook หรือเฉพาะ hook เดียวก็ได้
วิธีกำหนดค่า
เพิ่มหรือลบ path และรูปแบบได้จากบรรทัดคำสั่ง โดยครอบรูปแบบด้วยเครื่องหมายคำพูดเพื่อให้ shell คงรูปแบบนั้นไว้ตามที่เขียน:
npx lagune write add --ignore test/fixtures
npx lagune write add --ignore 'packages/*/dist' --checker secrets
npx lagune write remove --ignore test/fixtures
หรือเลือกได้ในหน้า Settings ของ แดชบอร์ด หรือกำหนดไว้ในไฟล์โดยตรง:
{
"checkers": {
"ignore": ["test/fixtures"],
"secrets": { "gitignore": false, "ignore": ["test/fixtures", "temp"] }
}
}
การตั้งค่า
| คีย์ | ค่า | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
gitignore | true หรือ false | true | ข้ามสิ่งที่ Git ละเว้นไว้ แต่ยังสแกนไฟล์ที่ Git ติดตามอยู่เสมอ |
ignore | path หรือรูปแบบที่นับจาก root ของโปรเจกต์ | [] | ข้ามสิ่งที่ตรงกับแต่ละรายการและทุกอย่างที่อยู่ภายใต้รายการนั้น แม้เป็นไฟล์ที่ Git ติดตามอยู่ก็ตาม |
คีย์ที่ระดับบนสุดของ checkers ใช้กับทุกตัวตรวจ ส่วนคีย์ที่อยู่ใต้ชื่อตัวตรวจใดจะใช้กับตัวตรวจนั้นเท่านั้นและแทนที่คีย์ที่ใช้ร่วมกัน ในตัวอย่างนี้ secrets จึงสแกนสิ่งที่ Git ละเว้นไว้ และข้าม test/fixtures กับ temp เมื่อ write add --ignore สร้างรายการแรกให้ตัวตรวจใดเป็นของตัวเอง รายการนั้นจะเริ่มจากสำเนาของรายการที่ใช้ร่วมกัน
รูปแบบ
รูปแบบเริ่มนับจาก root ของโปรเจกต์ ดังนั้น *.generated.ts จะครอบคลุมเฉพาะไฟล์ที่อยู่ตรงนั้น ส่วน **/*.generated.ts ครอบคลุมไฟล์เหล่านั้นในทุกระดับความลึก ชื่อต้องตรงกันทุกตัวอักษร รวมถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
| รูปแบบ | สิ่งที่ข้าม |
|---|---|
dist | dist ที่ root ของโปรเจกต์ |
packages/*/dist | dist ในทุกโฟลเดอร์ภายใต้ packages |
**/dist | dist ทุกตัวในทุกระดับความลึก |
**/*.generated.ts | ทุกไฟล์ที่ชื่อลงท้ายด้วย .generated.ts |
fixture-? | fixture-a, fixture-1 และชื่อทำนองเดียวกัน |
[ab]-cache | a-cache และ b-cache |
[*]x | *x โดยถือ * เป็นอักขระธรรมดา |
วิธีอ่านผลลัพธ์
ท้ายรายงานจะบอกจำนวน path ที่การสแกนข้ามไป แยกตามสิ่งที่ละเว้น path เหล่านั้น:
Skipped 25 paths that Git ignores and 3 paths that .lagune/configs.json ignores. Name one with --dir or --file to scan it.
เอนจินจะสแกน path ที่ระบุด้วย --dir หรือ --file เสมอ ไม่ว่าการตั้งค่าจะเป็นอย่างไร ส่วนการตั้งค่าที่เอนจินอ่านไม่ได้จะทำให้ตัวตรวจหยุดพร้อม error ที่ระบุถึงการตั้งค่านั้น เช่น รูปแบบที่ขึ้นต้นด้วย ! หรือช่องว่าง รูปแบบที่ชี้ออกไปนอกโปรเจกต์ รูปแบบที่เปิดวงเล็บเหลี่ยมค้างไว้ หรือรูปแบบที่ใช้เวลาจับคู่นานเกินไป
คำถามที่พบบ่อย
ไม่ เฟส charter จะแสดงรายการโฟลเดอร์ที่ commit ไว้ซึ่งผลการอ่านโปรเจกต์ชี้ว่าไม่ใช่โค้ดที่คุณต้องป้องกัน เช่น fixture สำหรับการทดสอบที่จงใจเขียนให้ดูมีช่องโหว่ แล้วบันทึกเฉพาะโฟลเดอร์ที่คุณเลือกตามหมายเลขเท่านั้น
เมื่อ repository นั้นไม่ใช่ของที่คุณไว้ใจได้ เพราะไฟล์ .gitignore ภายใน repository อาจซ่อนโค้ดไว้ หรือเมื่อโฟลเดอร์ build อาจมีคีย์ที่ฝังเข้าไปตอน build ตั้ง gitignore เป็น false ได้ทั้งกับทุก checker หรือเฉพาะ checker เดียว
