Hướng dẫn cấu hình Sitrep: Tùy chỉnh quy tắc quét và loại trừ thư mục hiệu quả

Cấu hình cơ bản của Sitrep

Sitrep sử dụng định dạng YAML để thiết lập cấu hình thông qua file .sitrep.yml. Hệ thống này được triển khai trong lớp Configuration.swift tại đường dẫn Sources/SitrepCore/Configuration.swift. Mặc định, công cụ sẽ quét toàn bộ file Swift trong dự án, nhưng có thể tùy chỉnh phạm vi phân tích thông qua các thiết lập.

Phương pháp loại trừ thư mục

1. Loại trừ cơ bản qua cấu hình

excluded:
  - ThirdPartyLibs
  - ProjectTests/Performance

Cấu hình này sẽ bỏ qua toàn bộ thư mục được chỉ định. Ví dụ: khi thêm ProjectTests/Performance, công cụ sẽ không xử lý các file trong thư mục này.

2. Sử dụng tham số dòng lệnh

Kích hoạt cấu hình tạm thời bằng tham số --config:

sitrep --config test_config.yml

Phương pháp này không ảnh hưởng đến cấu hình mặc định, phù hợp để kiểm tra các quy tắc loại trừ khác nhau.

3. Thiết lập trong mã nguồn

Tạo đối tượng cấu hình trực tiếp trong Swift:

let customConfig = Configuration(excluded: ["BuildArtifacts", "Vendor/AnalyticsKit"])

Phù hợp khi tích hợp vào script tự động hóa hoặc công cụ tùy biến.

Tùy chỉnh quy tắc phân tích nâng cao

Quy trình tải cấu hình

Sitrep ưu tiên đọc file cấu hình từ đường dẫn được chỉ định. Nếu không tìm thấy, hệ thống sẽ dùng cấu hình mặc định. Hàm parse trong Configuration.swift hỗ trợ tải cấu hình từ đường dẫn file hoặc URL.

Xác minh cấu hình

Kiểm tra cấu hình đang áp dụng bằng tham số --info:

sitrep --info

Lệnh này hiển thị đường dẫn file cấu hình và danh sách thư mục bị loại trừ.

Thực tiễn tối ưu

Quy tắc khớp đường dẫn

Sitrep sử dụng khớp đường dẫn tuyệt đối. Ví dụ để loại trừ thư mục cache:

excluded:
  - Sources/GeneratedCode

Lưu ý hiệu năng

Với dự án lớn, nên loại trừ các thư mục sau để tăng tốc độ phân tích:

  • Thư viện phụ thuộc bên ngoài (ví dụ: Pods/)
  • Thư mục đầu ra build (ví dụ: build/)
  • Thư mục file tạm (ví dụ: /tmp)

Thẻ: Swift static code analysis YAML configuration command-line tools

Đăng vào ngày 10 tháng 6 lúc 05:01