
Tree-sitter आधारित स्थिर भेद्यता स्कैनर जो पैटर्न मिलान और टेन्ट-फ्लो विश्लेषण के साथ बहु-भाषा स्रोत कोड की जाँच करता है। परिणामों को टेक्स्ट, JSON, CSV, या SARIF में आउटपुट करता है जो CI/CD एकीकरण के लिए उपयुक्त है।
| भाषा | एक्सटेंशन | पार्सर | बंडल किए गए नियम |
|---|---|---|---|
| Python | .py, .pyw, .pyi, .pyx | हाँ | हाँ |
| JavaScript | .js, .mjs, .cjs, .jsx, .vue, .svelte | हाँ | हाँ |
| TypeScript / TSX | .ts, .tsx, .mts, .cts | हाँ | हाँ (JS नियम) |
| Java | .java | हाँ | हाँ |
| PHP | .php, .phtml | हाँ | हाँ |
| C# | .cs, .csx | हाँ | हाँ |
| Go | .go | हाँ | हाँ |
| Ruby | .rb | हाँ | हाँ |
| HTML | .html, .htm, .twig, .ejs, .hbs, ... | हाँ | हाँ |
| Django टेम्पलेट | .html (Django सिंटैक्स) | हाँ | हाँ (HTML नियम) |
वर्तमान में समर्थित नहीं: Razor (.cshtml), C/C++ (.c, .h)।
पूर्वापेक्षाएँ:
स्रोत से निर्माण:
git clone https://github.com/Corgea/Sighthound.git
cd Sighthound
cargo build --release
बाइनरी पथ: target/release/sighthound
Linux-कंटेनर-संगत रिलीज़ निर्यात:
DOCKER_BUILDKIT=1 docker build \
--target export \
--output type=local,dest=./sighthound_release \
.
या ./build_all_platforms.sh चलाएँ।
# भाषाओं का स्वतः पता लगाएँ और एम्बेडेड नियम चलाएँ
cargo run --bin sighthound -- /path/to/project
# स्पष्ट भाषा + कस्टम नियम पथ
cargo run --bin sighthound -- /path/to/project python rules/python
# केवल टेंट स्कैन और JSON आउटपुट
cargo run --bin sighthound -- --taint-analysis --output-format json /path/to/project > findings.json
# GitHub कोड स्कैनिंग के लिए SARIF आउटपुट
cargo run --bin sighthound -- --output-format sarif /path/to/project > results.sarif
CLI आकार:
sighthound [OPTIONS] <ROOT_DIR> [LANGUAGE] [RULES_PATH]
पूर्ण विकल्प सूची के लिए sighthound --help चलाएँ।
sarif आउटपुट फ़ॉर्मेट SARIF 2.1.0 लिखता है, जिसे GitHub Code Scanning
सीधे ग्रहण करता है। इसे वर्कफ़्लो से अपलोड करें ताकि परिणाम पुल रिक्वेस्ट पर
इनलाइन और रिपॉज़िटरी के Security टैब में दिखाई दें:
रिपॉज़िटरी रूट से स्कैन चलाएँ और SARIF आर्टिफैक्ट URI को रिपॉज़िटरी-सापेक्ष रखने के लिए <ROOT_DIR> के रूप में . (या रिपॉज़िटरी रूट का पूर्ण पथ) का उपयोग करें।
- name: Sighthound चलाएँ
run: sighthound --output-format sarif . > results.sarif
- name: SARIF अपलोड करें
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
नियम RON में लिखे जाते हैं और दोनों का समर्थन करते हैं:
mode: "search"mode: "taint"यहाँ से शुरू करें:
मुख्य कमांड:
make check # fix + format + lint + test + suppression report
make pre-commit # staged Rust फ़ाइलें (hook)
make pre-push # पुश गेट जाँच
make ci # सख्त CI पाइपलाइन
अतिरिक्त गुणवत्ता गेट:
make complexity
make audit
make acceptance
cargo harness coverage --min=0
cargo harness crap --max=30