ๅ ณไบ SARIF ๆฏๆ
SARIF๏ผ้ๆๅๆ็ปๆไบคๆขๆ ผๅผ๏ผๆฏไธ็งๅฎไน่พๅบๆไปถๆ ผๅผ็ OASIS ๆ ๅใ SARIF ๆ ๅ็จไบ็ฎๅ้ๆๅๆๅทฅๅ ทๅไบซๅ ถ็ปๆ็ๆนๅผใ Code scanning ๆฏๆ SARIF 2.1.0 JSON ๆถๆ็ๅญ้ใ
่ฆไป็ฌฌไธๆน้ๆไปฃ็ ๅๆๅผๆไธไผ SARIF ๆไปถ๏ผ้็กฎไฟไธไผ ็ๆไปถไฝฟ็จ SARIF 2.1.0 ็ๆฌใ GitHub ๅฐๅๆ SARIF ๆไปถ๏ผๅนถๅจ code scanning ่ฟ็จไธญไฝฟ็จไปๅบไธญ็็ปๆๆพ็คบ่ญฆๆฅใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
โๅฐ SARIF ๆไปถไธไผ ๅฐ GitHubโใ ๆๅ
ณ SARIF 2.1.0 JSON ๆถๆ็่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
sarif-schema-2.1.0.json
ใ
ๅฆๆ็ปๅไฝฟ็จ GitHub Actions ๅ CodeQL ๅๆๅทฅไฝๆต็จ๏ผๆ่ ไฝฟ็จ CodeQL CLI๏ผๅ code scanning ็ปๆๅฐ่ชๅจไฝฟ็จๅๆฏๆ็ SARIF 2.1.0 ๅญ้ใ ๆๅ ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้ โ้ ็ฝฎไปฃ็ ๆซๆ็้ซ็บง่ฎพ็ฝฎโๆโๅจ็ฐๆ CI ็ณป็ปไธไฝฟ็จไปฃ็ ๆซๆโใ
GitHub ไฝฟ็จ SARIF ๆไปถไธญ็ๅฑๆงๆฅๆพ็คบ่ญฆๆฅใ ไพๅฆ๏ผshortDescription
ๅ fullDescription
ๅบ็ฐๅจ code scanning ่ญฆๆฅ็้กถ้จใ location
ๅ
่ฎธ GitHub ๅจไปฃ็ ๆไปถไธญๆพ็คบๆณจ้ใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
โๅ
ณไบไปฃ็ ๆซๆ่ญฆๆฅโใ
ๅฆๆไฝ ไธ็ๆ SARIF ๅนถๆณ่ฆไบ่งฃ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
Microsoft ็ SARIF tutorials
ๅญๅจๅบใ
ๆไพ็จไบ่ทจ่ฟ่ก่ท่ธช code scanning ่ญฆๆฅ็ๆฐๆฎ
ๆฏๆฌกไธไผ ๆฐไปฃ็ ๆซๆ็็ปๆๆถ๏ผ้ฝไผๅค็็ปๆๅนถๅฐ่ญฆๆฅๆทปๅ ๅฐๅญๅจๅบไธญใ ไธบ้ฒๆญขๅบ็ฐ้ๅฏนๅไธ้ฎ้ข็้ๅค่ญฆๆฅ๏ผcode scanning ไฝฟ็จๆ็บนๅน้
ๅไธช่ฟ่ก็็ปๆ๏ผไฝฟๅฎไปฌๅชไผๅบ็ฐๅจๆ้ๅๆฏ็ๆๆฐ่ฟ่กไธญๅบ็ฐไธๆฌกใ ่ฟๆ ทๅฏไปฅๅจ็ผ่พๆไปถๆถๅฐ่ญฆๆฅไธๆญฃ็กฎ็ไปฃ็ ่กๅน้
ใ ็ปๆ็ ruleId
ๅฟ
้กปๅจๅๆไธญ็ธๅใ
ๆฅๅไธ่ด็ๆไปถ่ทฏๅพ
ๆไปถ่ทฏๅพๅฟ ้กปๅจ่ฟ่ก้ดไฟๆไธ่ด๏ผไปฅๅฎ็ฐ็จณๅฎๆ็บน็่ฎก็ฎใ ๅฆๆๆไปถ่ทฏๅพๅฏนไบ็ธๅ็ปๆๆๆไธๅ๏ผๅๆฏๆฌก่ฟ่กๆฐๅๆๆถ๏ผ้ฝไผๅๅปบๆฐ่ญฆๆฅ๏ผๅนถๅ ณ้ญๆง่ญฆๆฅใ ่ฟไผๅฏผ่ด็ธๅ็ปๆๅ ทๆๅคไธช่ญฆๆฅใ
ๅ ๅซ็จไบ็ๆๆ็บน็ๆฐๆฎ
GitHub ไฝฟ็จ OASIS ๆ ๅไธญ็ partialFingerprints
ๅฑๆงๆฅๆฃๆตไธคไธช็ปๆๅจ้ป่พไธๆฏๅฆ็ธๅใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
OASIS ๆๆกฃไธญ็โpartialFingerprints ๅฑๆงโๆก็ฎใ
้่ฟ CodeQL ๅๆๅทฅไฝๆต็จ ๆ CodeQL CLI ๅๅปบ็ SARIF ๆไปถๅ
ๅซๆ็บนๆฐๆฎใ ๅฆๆไฝฟ็จ upload-sarif
ๆไฝไธไผ SARIF ๆไปถๅนถไธๆญคๆฐๆฎไธขๅคฑ๏ผGitHub ไผๅฐ่ฏไปๆบๆไปถๅกซๅ
partialFingerprints
ๅญๆฎตใ ๆๅ
ณไธไผ ็ปๆ็่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
โๅฐ SARIF ๆไปถไธไผ ๅฐ GitHubโใ
ๅฆๆไฝฟ็จ /code-scanning/sarifs
API ็ป็ป็นไธไผ ๆ ๆ็บนๆฐๆฎ็ SARIF ๆไปถ๏ผcode scanning ่ญฆๆฅๅฐ่ขซๅค็ๅนถๆพ็คบ๏ผไฝ็จๆทๅฏ่ฝไผ็ๅฐ้ๅค็่ญฆๆฅใ ไธบ้ฟๅ
็ๅฐ้ๅค่ญฆๆฅ๏ผๅบๅจไธไผ SARIF ๆไปถไนๅ่ฎก็ฎๆ็บนๆฐๆฎๅนถๅกซๅ
partialFingerprints
ๅฑๆงใ ไฝ ๅฏ่ฝไผๅ็ฐ upload-sarif
ๆไฝไฝฟ็จไธไธชๆ็จ็่ตท็น็่ๆฌ๏ผ https://github.com/github/codeql-action/blob/main/src/fingerprints.ts ใ ๆๅ
ณ API ็่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
โ้็จไบไปฃ็ ๆซๆ็ REST API ็ป็ป็นโใ
ไบ่งฃ่งๅๅ็ปๆ
SARIF ๆไปถๆฏๆ่งๅๅ็ปๆใ ่ฟไบๅ ็ด ไธญๅญๅจ็ไฟกๆฏ็ธไผผ๏ผไฝ็จ้ไธๅใ
-
่งๅๆฏๅ ๅซๅจ
toolComponent
ๅฏน่ฑกไธญ็reportingDescriptor
ๅฏน่ฑกๆฐ็ปใ ๅฏๅจๆญคๅคๅญๅจๅๆ่ฟ็จไธญ่ฟ่ก็่งๅ็่ฏฆ็ปไฟกๆฏใ ่ฟไบๅฏน่ฑกไธญ็ไฟกๆฏๅบ่ฏฅๅพๅฐๆดๆน๏ผ้ๅธธๅจๆดๆฐๅทฅๅ ทๆถๆดๆนใ -
็ปๆๅญๅจไธบ
run
ๅฏน่ฑกไธญresults
ไธ็ไธ็ณปๅresult
ๅฏน่ฑกใ ๆฏไธชresult
ๅฏน่ฑก้ฝๅ ๅซไปฃ็ ๅบไธญไธไธช่ญฆๆฅ็่ฏฆ็ปไฟกๆฏใ ๅจresults
ๅฏน่ฑกไธญ๏ผๅฏไปฅๅผ็จๆฃๆตๅฐ่ญฆๆฅ็่งๅใ
ๅฝๆฏ่พ้่ฟไฝฟ็จ็ธๅๅทฅๅ ทๅ่งๅๅๆไธๅไปฃ็ ๅบ็ๆ็ SARIF ๆไปถๆถ๏ผไฝ ๅบไผ็ๅฐๅๆ็ปๆ๏ผ่ไธๆฏ่งๅ๏ผๅญๅจๅทฎๅผใ
ๆๅฎๆบๆไปถ็ไฝ็ฝฎ
ๆๅฎๆบๆไปถไฝ็ฝฎๅไปฃ็ ่กๅฏ็กฎไฟไปฃ็ ๆซๆ่ญฆๆฅๅ็กฎๆพ็คบๅจๅ ๅซๅทฒ่ฏๅซ้ฎ้ข็ๆไปถๅ ๏ผไปฅไพฟๆ้ๅฏนๆงๅฐ่งฃๅณ้ฎ้ขใ
่ฟ็ง็ฒพๅ็ๆ้ซไบไปฃ็ ่ฏๅฎกๅ่งฃๅณ่ฟ็จ็ๆ็๏ผ็ฎๅไบๅผๅๅทฅไฝๆต๏ผไฝฟๅผๅไบบๅ่ฝๅคๅจไปไปฌ็ไปฃ็ ๅบไธไธๆไธญ็ดๆฅ่งฃๅณ้ฎ้ขใ
ๅฝ่ญฆๆฅๆ ่ฏ็ๆๆไปฃ็ ่ก้ฝๅญๅจไบๆๅ่ฏทๆฑๅทฎๅผไธญๆถ๏ผCode scanning ่ฟๅฐๅจๆๅ่ฏทๆฑๆฃๆฅ็ปๆไธญๆพ็คบ่ญฆๆฅใ
่ฅ่ฆๅจๆๅ่ฏทๆฑๆฃๆฅไธญๆพ็คบ๏ผ่ญฆๆฅๅฟ ้กปๆปก่ถณไปฅไธๆๆๆกไปถ๏ผ
- ่ญฆๆฅๆ ่ฏ็ๆๆไปฃ็ ่ก๏ผๅ ๆฌ่ญฆๆฅ็็ฌฌไธ่ก๏ผ้ฝๅญๅจไบๆๅ่ฏทๆฑๅทฎๅผไธญใ
- ่ญฆๆฅๅฟ ้กปๅญๅจไบๆๅ่ฏทๆฑไธญๆทปๅ ๆ็ผ่พ็ไปฃ็ ่กไธญ๏ผ่ไธๆฏๅทฒๅ ้ค็่กไธญใ
ๆไบค็ SARIF ๆไปถไธญ็ physicalLocation
ๅฏน่ฑกๆ ่ฏ่ญฆๆฅ็ไปฃ็ ่กใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
โphysicalLocation
ๅฏน่ฑกโใ
ๆๅฎๆบๆไปถ็ๆ น
Code scanning ๅฐไฝฟ็จ็ธๅฏน่ทฏๅพๆฅๅ็็ปๆ่งฃ้ไธบ็ธๅฏนไบๆๅๆ็ๅญๅจๅบ็ๆ นใ ๅฆๆ็ปๆๅ ๅซ็ปๅฏน URI๏ผๅ URI ไผ่ฝฌๆขไธบ็ธๅฏน URIใ ้ๅๅฏไปฅๅฐ็ธๅฏน URI ไธๆไบคๅฐๅญๅจๅบ็ๆไปถ่ฟ่กๅน้ ใ
ๅฏไปฅ้่ฟไปฅไธๆนๆณไนไธๆไพๆบๆ น๏ผ็จไบไป็ปๅฏน URI ่ฝฌๆขไธบ็ธๅฏน URIใ
github/codeql-action/analyze
ๆไฝ็checkout_path
่พๅ ฅ- SARIF ไธไผ API ็ป็ป็น็
checkout_uri
ๅๆฐใ ๆๅ ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้ โ้็จไบไปฃ็ ๆซๆ็ REST API ็ป็ป็นโใ - SARIF ๆไปถไธญ
run
ๅฏน่ฑก็invocations[0].workingDirectory.uri
ๅฑๆง
ๅฆๆๆไพๆบๆ น๏ผๅไฝฟ็จ็ปๅฏน URI ๆๅฎ็้กน็ฎ็ไปปไฝไฝ็ฝฎ้ฝๅฟ ้กปไฝฟ็จ็ธๅ URI ๆนๆกใ ๅฆๆๆบๆ น็ URI ๆนๆกไธไธไธชๆๅคไธช็ปๅฏน URI ไธๅน้ ๏ผๅไธไผ ไผ่ขซๆ็ปใ
ไพๅฆ๏ผไฝฟ็จ file:///github/workspace
็ๆบๆ นไธไผ SARIF ๆไปถใ
# Conversion of absolute URIs to relative URIs for location artifacts
file:///github/workspace/src/main.go -> src/main.go
file:///tmp/go-build/tmp.go -> file:///tmp/go-build/tmp.go
ๆไปถไผๆๅไธไผ ๏ผๅ ไธบไธคไธช็ปๅฏน URI ้ฝไฝฟ็จไธๆบๆ น็ธๅ็ URI ๆนๆกใ
่ฏทๅจ็ๆ SARIF ็ปๆไนๅ่งฃๆ็ฌฆๅท้พๆฅ
ๅฆๆ็ปๆ็็ธๅฏน URI ไธไฝฟ็จ็ฌฆๅท้พๆฅๅฎไน็ๆไปถ็ธๅน้ ๏ผๅไปฃ็ ๆซๆๅฐๆ ๆณๆพ็คบ็ปๆใ ๅ ๆญค๏ผไฝ ้่ฆ่งฃๆไปปไฝ็ฌฆๅท้พๆฅ็ๆไปถ๏ผๅนถไฝฟ็จ่งฃๆ็ URI ๆฅๅ่ฟไบๆไปถไธญ็ไปปไฝ็ปๆใ
้ช่ฏ SARIF ๆไปถ
ๆจๅฏไปฅๆ นๆฎ GitHub ๅผๅ ฅ่งๅๆต่ฏ SARIF ๆไปถๆฏๅฆๅ ผๅฎน code scanningใ ๆๅ ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏท่ฎฟ้ฎ Microsoft SARIF ้ช่ฏ็จๅบใ
ๅฏนไบๆฏไธช gzip ๅ็ผฉ SARIF ๆไปถ๏ผSARIF ไธไผ ๆฏๆ็ๆๅคงๅคงๅฐไธบ 10 MBใ ไปปไฝ่ถ ่ฟๆญค้ๅถ็ไธไผ ้ฝๅฐ่ขซๆ็ปใ ๅฆๆ SARIF ๆไปถ็ฑไบๅ ๅซๅคชๅค็ปๆ่่ฟๅคง๏ผๅๅบๆดๆฐ้ ็ฝฎ๏ผไปฅๅฐ้็นๆพๅจๆ้่ฆ็่งๅๆๆฅ่ฏข็็ปๆไธใ ๆๅ ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้ โSARIF ็ปๆๆไปถๅคชๅคงโใ
Code scanning ๆฏๆไธไผ ไธ่กจไธญๆฐๆฎๅฏน่ฑก็ๆๅคงๆก็ฎๆฐใ ๅฆๆ่ฟไบๅฏน่ฑกไธญ็ไปปไฝไธไธช่ถ ่ฟๅ ถๆๅคงๅผ๏ผๅ SARIF ๆไปถๅฐ้ญๅฐๆ็ปใ ๅฏนไบๆไบๅฏน่ฑก๏ผๅฐๆพ็คบ็ๅผ็ๆฐ้่ฟๆ้ขๅค้ๅถใ ๅฐฝๅฏ่ฝๆพ็คบๆ้่ฆ็ๅผใ ๅฝๅๆๅ ๅซ็ๆฐๆฎ่ถ ๅบๆฏๆ็้ๅถๆถ๏ผ่ฆๅ ๅๅฉ็จๅๆ๏ผ่ฏทๅฐ่ฏไผๅๅๆ้ ็ฝฎ๏ผไพๅฆๅฏนไบ CodeQL ๅทฅๅ ท๏ผ่ฏๅซๅนถ็ฆ็จๅนฒๆฐๆงๆๅผบ็ๆฅ่ฏข๏ผใ ๆๅ ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้ โSARIF ็ปๆ่ถ ๅบไธไธชๆๅคไธช้ๅถโใ
SARIF ๆฐๆฎ | ๆๅคงๅผ | ๆฐๆฎๆชๆญ้ๅถ |
---|---|---|
ๆฏไธชๆไปถ็่ฟ่กๆฌกๆฐ | 20 | ๆ |
ๆฏๆฌก่ฟ่ก็็ปๆๆฐ | 25,000 | ๅชๅ ๆฌๅ 5,000 ๆก็ปๆ๏ผๅนถๆไธฅ้ๆง็กฎๅฎไผๅ ็บงใ |
ๆฏๆฌก่ฟ่ก็่งๅๆฐ | 25,000 | ๆ |
ๆฏๆฌก่ฟ่ก็ๅทฅๅ ทๆฉๅฑๆฐ | 100 | ๆ |
ๆฏไธช็ปๆ็็บฟ็จๆตไฝ็ฝฎๆฐ | 10,000 | ๅชๅ ๆฌๅ 1,000 ไธช็บฟ็จๆตไฝ็ฝฎ๏ผๆไผๅ ็บงๆๅบใ |
ๆฏไธช็ปๆ็ไฝ็ฝฎๆฐ | 1,000 | ๅชๅ ๆฌ 100 ไธชไฝ็ฝฎใ |
ๆฏไธช่งๅ็ๆ ่ฎฐๆฐ | 20 | ๅชๅ ๆฌ 10 ไธชๆ ่ฎฐใ |
่ญฆๆฅ้ๅถ | 1,000,000 | ๆ |
ๆๅ ณๅ ถไป้่ฏฏ็ไฟกๆฏ๏ผ่ฏทๅ้ โๆๆฅ SARIF ไธไผ ้ฎ้ขโใ
ไธบๆไบคไธไผ ๅคไธช SARIF ๆไปถ
ๆจๅฏไปฅไธบ็ธๅ็ๆไบคไธไผ ๅคไธช SARIF ๆไปถ๏ผๅนถๅฐๆฏไธชๆไปถไธญ็ๆฐๆฎๆพ็คบไธบ code scanning ็ปๆใ ไธบไธไธชๆไบคไธไผ ๅคไธช SARIF ๆไปถๆถ๏ผๅฟ ้กปไธบๆฏไธชๅๆๆๅฎไธไธชโ็ฑปๅซโใ ๆๅฎ็ฑปๅซ็ๆนๅผๅ ๅๆๆนๆณ่ๅผ๏ผ
- ็ดๆฅไฝฟ็จ CodeQL CLI๏ผๅจ็ๆ SARIF ๆไปถๆถๅฐ
--sarif-category
ๅๆฐไผ ้็ปcodeql database analyze
ๅฝไปคใ ๆๅ ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้ โๅ ณไบ CodeQL CLIโใ - ๅฐ GitHub Actions ไธ
codeql-action/analyze
็ปๅไฝฟ็จ๏ผ็ฑปๅซ่ชๅจไปๅทฅไฝๆต็จๅ็งฐๅไปปไฝ็ฉ้ตๅ้๏ผ้ๅธธๆฏlanguage
๏ผ่ฎพ็ฝฎใ ๅฏไปฅ้่ฟไธบๆไฝๆๅฎcategory
่พๅ ฅๆฅ่ฆ็ๆญคๅผ๏ผ่ฟๅจๅไธชๅทฅไฝๆต็จไธญๅๆๅไธๅญๅจๅบ็ไธๅ้จๅๆถ้ๅธธๆ็จใ - ไฝฟ็จ GitHub Actions ไปๅ
ถไป้ๆๅๆๅทฅๅ
ทไธไผ ็ปๆ๏ผๅฆๆๅจไธไธชๅทฅไฝๆต็จไธญไธบๅไธๅทฅๅ
ทไธไผ ๅคไธช็ปๆๆไปถ๏ผๅๅฟ
้กปๆๅฎ
category
่พๅ ฅใ ๆๅ ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้ โๅฐ SARIF ๆไปถไธไผ ๅฐ GitHubโใ - ๅฆๆไธไฝฟ็จ่ฟไธค็งๆนๆณไธญ็ไปปไฝไธ็ง๏ผๅๅฟ
้กปๅจๆฏไธช SARIF ๆไปถไธญๆๅฎ่ฆไธไผ ็ๅฏไธ
runAutomationDetails.id
ใ ๆๅ ณๆญคๅฑๆง็่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้ โrunAutomationDetails
ๅฏน่ฑกโใ
ๅฆๆไธบๅ ทๆ็ธๅ็ฑปๅซๅๆฅ่ชๅไธๅทฅๅ ท็ๆไบคไธไผ ็ฌฌไบไธช SARIF ๆไปถ๏ผๅไนๅ็็ปๆๅฐ่ขซ่ฆ็ใ ไฝๆฏ๏ผๅฆๆๅฐ่ฏๅจๅไธช GitHub Actions ๅทฅไฝๆต็จ่ฟ่กไธญไธบๅไธๅทฅๅ ทๅ็ฑปๅซไธไผ ๅคไธช SARIF ๆไปถ๏ผๅไผๆฃๆตๅฐ้ ็ฝฎ้่ฏฏ๏ผๅนถไธ่ฟ่กๅฐๅคฑ่ดฅใ
ๆฏๆ็ SARIF ่พๅบๆไปถๅฑๆง
ๅฆๆๆจไฝฟ็จ CodeQL ไปฅๅค็ไปฃ็ ๅๆๅผๆ๏ผๅๅฏไปฅๆฅ็ๅๆฏๆ็ SARIF ๅฑๆงๆฅไผๅๆจ็ๅๆ็ปๆๅจ GitHub ไธญ็ๆพ็คบๆนๅผใ
ๆณจๆ
ๅฟ ้กปไธบๆ ่ฎฐไธบโrequiredโ็ไปปไฝๅฑๆงๆไพๆพๅผๅผใ ๅฟ ๅกซๅฑๆงไธๆฏๆ็ฉบๅญ็ฌฆไธฒใ
ไปปไฝๆๆ็ SARIF 2.1.0 ่พๅบๆไปถ้ฝๅฏไปฅไธไผ ๏ผไฝ code scanning ๅชไฝฟ็จไปฅไธๅๆฏๆ็ๅฑๆงใ
๏ผๅฑไบsarifLog
ๅฏน่ฑก๏ผ็็ถ็บงใ
ๅ็งฐ | ๅฟ ้ | ่ฏดๆ |
---|---|---|
$schema | ็ๆฌ 2.1.0 ็ SARIF JSON ๆถๆ็ URIใ ไพๅฆ๏ผhttps://json.schemastore.org/sarif-2.1.0.json ใ | |
version | Code scanning ไป
ๆฏๆ SARIF ็ๆฌ 2.1.0 ใ | |
runs[] | SARIF ๆไปถๅ
ๅซไธไธชๆๅคไธช่ฟ่ก็ๆฐ็ปใ ๆฏไธช่ฟ่กไปฃ่กจๅๆๅทฅๅ
ท็ไธๆฌก่ฟ่กใ ๆๅ
ณ run ็่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
run ๅฏน่ฑกใ |
๏ผๅฑไบrun
ๅฏน่ฑก๏ผ็็ถ็บงใ
Code scanning ไฝฟ็จ run
ๅฏน่ฑกๆๅทฅๅ
ท็ญ้็ปๆๅนถๆไพๅ
ณไบ็ปๆๆฅๆบ็ไฟกๆฏใ run
ๅฏน่ฑกๅ
ๅซ tool.driver
ๅทฅๅ
ท็ปไปถๅฏน่ฑก๏ผ่ฏฅๅฏน่ฑกๅ
ๅซๆๅ
ณ็ๆ็ปๆ็ๅทฅๅ
ท็ไฟกๆฏใ ๆฏไธช run
ๅช่ฝ่ทๅพไธไธชๅๆๅทฅๅ
ท็็ปๆใ
ๅ็งฐ | ๅฟ ้ | ่ฏดๆ |
---|---|---|
tool.driver | ๆ่ฟฐๅๆๅทฅๅ
ท็ toolComponent ๅฏน่ฑกใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
toolComponent ๅฏน่ฑกใ | |
tool.extensions[] | ่กจ็คบๅทฅๅ
ทๅจๅๆๆ้ดไฝฟ็จ็ไปปไฝๆไปถๆๆฉๅฑ็ toolComponent ๅฏน่ฑกๆฐ็ปใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
toolComponent ๅฏน่ฑกใ | |
invocation.workingDirectory.uri | ไป
ๅฝๆชๆไพ checkout_uri ๏ผไป
้ SARIF ไธไผ API๏ผๆ checkout_path ๏ผไป
้ GitHub Actions๏ผๆถ๏ผๆไฝฟ็จๆญคๅญๆฎตใ ่ฏฅๅผ็จไบๅฐ physicalLocation ๅฏน่ฑกไธญไฝฟ็จ็็ปๅฏน URI ่ฝฌๆขไธบ็ธๅฏน URIใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
โๆๅฎๆบๆไปถ็ๆ นโใ | |
results[] | ๅๆๅทฅๅ
ท็็ปๆใ Code scanning ๅจ GitHub ไธๆพ็คบ็ปๆใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
result ๅฏน่ฑกใ |
๏ผๅฑไบtoolComponent
ๅฏน่ฑก๏ผ็็ถ็บงใ
ๅ็งฐ | ๅฟ ้ | ่ฏดๆ |
---|---|---|
name | ๅๆๅทฅๅ ท็ๅ็งฐใ Code scanning ๅจ GitHub ไธๆพ็คบๅ็งฐ๏ผไปฅๅ ่ฎธๆๅทฅๅ ท็ญ้็ปๆใ | |
version | ๅๆๅทฅๅ
ท็็ๆฌใ Code scanning ไฝฟ็จ็ๆฌๅทๆฅ่ท่ธช็ปๆไฝๆถๅฏ่ฝ็ฑไบๅทฅๅ
ท็ๆฌๆดๆน่ไธๆฏๆๅๆไปฃ็ ็ๆดๆน่ๅ็ๆดๆนใ ๅฆๆ SARIF ๆไปถๅ
ๅซ semanticVersion ๅญๆฎต๏ผๅ code scanning ไธไฝฟ็จ version ใ | |
semanticVersion | ไปฅ่ฏญไน็ๆฌ 2.0 ๆ ผๅผๆๅฎ็ๅๆๅทฅๅ
ท็ๆฌใ Code scanning ไฝฟ็จ็ๆฌๅทๆฅ่ท่ธช็ปๆไฝๆถๅฏ่ฝ็ฑไบๅทฅๅ
ท็ๆฌๆดๆน่ไธๆฏๆๅๆไปฃ็ ็ๆดๆน่ๅ็ๆดๆนใ ๅฆๆ SARIF ๆไปถๅ
ๅซ semanticVersion ๅญๆฎต๏ผๅ code scanning ไธไฝฟ็จ version ใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
่ฏญไน็ๆฌๆงๅถๆๆกฃไธญ็โ่ฏญไน็ๆฌๆงๅถ 2.0.0โใ | |
rules[] | ่กจ็คบ่งๅ็ reportingDescriptor ๅฏน่ฑกๆฐ็ปใ ๅๆๅทฅๅ
ทไฝฟ็จ่งๅๆฅๆฅๆพๆๅๆไปฃ็ ไธญ็้ฎ้ขใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
reportingDescriptor ๅฏน่ฑกใ |
๏ผๅฑไบreportingDescriptor
ๅฏน่ฑก๏ผ็็ถ็บงใ
ๅฏๅจๆญคๅคๅญๅจๅๆ่ฟ็จไธญ่ฟ่ก็่งๅ็่ฏฆ็ปไฟกๆฏใ ่ฟไบๅฏน่ฑกไธญ็ไฟกๆฏๅบ่ฏฅๅพๅฐๆดๆน๏ผ้ๅธธๅจๆดๆฐๅทฅๅ ทๆถๆดๆนใ ๆๅ ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้ ไธ้ข็โไบ่งฃ่งๅๅ็ปๆโใ
ๅ็งฐ | ๅฟ ้ | ่ฏดๆ |
---|---|---|
id | ่งๅ็ๅฏไธๆ ่ฏ็ฌฆใ id ๆฏไป SARIF ๆไปถ็ๅ
ถไป้จๅๅผ็จ็๏ผๅฏ่ฝ่ขซ code scanning ็จไบๅจ GitHub ไธๆพ็คบ URLใ | |
name | ่งๅ็ๅ็งฐใ Code scanning ๆพ็คบๅ็งฐ๏ผไปฅๅ ่ฎธๅจ GitHub ไธๆ่งๅ็ญ้็ปๆใ ้ๅถไธบ 255 ไธชๅญ็ฌฆใ | |
shortDescription.text | ่งๅ็็ฎไปใ Code scanning ๅจ GitHub ไธ็็ธๅ ณ็ปๆๆ่พนๆพ็คบ็ฎ็ญ่ฏดๆใ ้ๅถไธบ 1024 ไธชๅญ็ฌฆใ | |
fullDescription.text | ่งๅ็ๆ่ฟฐใ Code scanning ๅจ GitHub ไธ็็ธๅ ณ็ปๆๆ่พนๆพ็คบๅฎๆด่ฏดๆใ ้ๅถไธบ 1024 ไธชๅญ็ฌฆใ | |
defaultConfiguration.level | ่งๅ็้ป่ฎคไธฅ้ๆง็บงๅซใ Code scanning ไฝฟ็จไธฅ้ๆง็บงๅซๆฅๅธฎๅฉไฝ ไบ่งฃ็ปๆๅฏนไบ็ปๅฎ่งๅ็้่ฆ็จๅบฆใ ้ป่ฎคๆ
ๅตไธ๏ผdefaultConfiguration.level ่ฎพ็ฝฎไธบ warning ใ ไฝๆฏ๏ผๅฏไปฅ้่ฟๅจไธ็ปๆๅ
ณ่็ๅฏน่ฑก result ไธญ่ฎพ็ฝฎ level ๅฑๆง๏ผๆฟไปฃ้ป่ฎค็่งๅ็บงๅซใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ่ไธ result ๅฏน่ฑกๆๅ
ณ็ๆๆกฃใ defaultConfiguration.level ็ๆๆๅผไธบ๏ผnote ใwarning ๅ error ใ | |
help.text | ไฝฟ็จๆๆฌๆ ผๅผ็่งๅ็ๆๆกฃใ Code scanning ๅจ็ธๅ ณ็ปๆๆ่พนๆพ็คบๆญคๅธฎๅฉๆๆกฃใ | |
help.markdown | ๏ผๅปบ่ฎฎ๏ผไฝฟ็จ Markdown ๆ ผๅผ็่งๅ็ๆๆกฃใ Code scanning ๅจ็ธๅ
ณ็ปๆๆ่พนๆพ็คบๆญคๅธฎๅฉๆๆกฃใ ๅฝ help.markdown ๅฏ็จๆถ๏ผๅฐๆพ็คบๅฎ๏ผ่ไธๆฏ help.text ใ | |
properties.tags[] | ๅญ็ฌฆไธฒๆฐ็ปใ Code scanning ไฝฟ็จ tags ๅ
่ฎธไฝ ๅจ GitHub ไธ็ญ้็ปๆใ ไพๅฆ๏ผๅฏไปฅ็ญ้ๅธฆๆ ่ฎฐ security ็ๆๆ็ปๆใ | |
properties.precision | ๏ผๅปบ่ฎฎ๏ผไธไธชๅญ็ฌฆไธฒ๏ผๆ็คบๆญค่งๅๆ็คบ็็ปๆไธบ true ็้ข็ใ ไพๅฆ๏ผๅฆๆๅทฒ็ฅๆ้กน่งๅ็่ฏฏๆฅ็่พ้ซ๏ผๅๅ
ถๅ็กฎๆงๅบไธบ low ใ Code scanning ๅจ GitHub ไธๆๅ็กฎๆงๅฏน็ปๆ่ฟ่กๆๅบ๏ผไฝฟๅ
ทๆๆ้ซ level ๅๆ้ซ precision ็็ปๆๆพ็คบๅจๆๅ้ขใ ๅฏไปฅๆฏไธ่ฟฐไนไธ๏ผvery-high ใhigh ใmedium ๆ low ใ | |
properties.problem.severity | ๏ผๅปบ่ฎฎ๏ผไธไธชๅญ็ฌฆไธฒ๏ผๆ็คบ็ฑ้ๅฎๅ
จๆฅ่ฏข็ๆ็ไปปไฝ่ญฆๆฅ็ไธฅ้ๆง็บงๅซใ ่ฟไธ properties.precision ๅฑๆงไธ่ตท็กฎๅฎ็ปๆๆฏๅฆ้ป่ฎคๆพ็คบๅจ GitHub ไธ๏ผไฝฟๅ
ทๆๆ้ซ problem.severity ๅๆ้ซ precision ็็ปๆๆพ็คบๅจๆๅ้ขใ ๅฏไปฅๆฏไปฅไธ้้กนไนไธ๏ผerror ใwarning ๆ recommendation ใ | |
properties.security-severity | ๏ผๅปบ่ฎฎไป
็จไบๅฎๅ
จ่งๅ๏ผๅฆๆๅ
ๅซๆญคๅญๆฎต็ๅผ๏ผ่งๅ็็ปๆๅฐ่ขซ่งไธบๅฎๅ
จ็ปๆใ ไธไธช่กจ็คบๅๆฐ็ๅญ็ฌฆไธฒ๏ผ่ฏฅๅๆฐๆ็คบๅฎๅ
จๆฅ่ฏข็ไธฅ้ๆง็บงๅซ๏ผ่ฏฅๅผไปไบ 0.0 ๅฐ 10.0 ไน้ด๏ผ@tags ๅ
ๆฌ security ๏ผใ ่ฟไธ properties.precision ๅฑๆงไธ่ตท็กฎๅฎ็ปๆๆฏๅฆ้ป่ฎคๆพ็คบๅจ GitHub ไธ๏ผไฝฟๅ
ทๆๆ้ซ security-severity ๅๆ้ซ precision ็็ปๆๆพ็คบๅจๆๅ้ขใ Code scanning ่ฝฌๆขๆฐๅผๅๆฐๅฆไธ๏ผ่ถ
่ฟ 9.0 ไธบ critical ๏ผ7.0 ่ณ 8.9 ไธบ high ๏ผ4.0 ่ณ 6.9 ไธบ medium ๏ผ0.1 ่ณ 3.9 ไธบ low ใ ๅผ 0.0 ๆ็ปๅฎ่ๅดไนๅค็ไปปไฝๅ
ถไปๅผ่ขซ่งไธบๆฒกๆๅฎๅ
จไธฅ้ๆงใ |
๏ผๅฑไบresult
ๅฏน่ฑก๏ผ็็ถ็บงใ
ๆฏไธช result
ๅฏน่ฑก้ฝๅ
ๅซไปฃ็ ๅบไธญไธไธช่ญฆๆฅ็่ฏฆ็ปไฟกๆฏใ ๅจ results
ๅฏน่ฑกไธญ๏ผๅฏไปฅๅผ็จๆฃๆตๅฐ่ญฆๆฅ็่งๅใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
ไธ้ข็โไบ่งฃ่งๅๅ็ปๆโใ
ๅฏไปฅๆฃๆฅ SARIF ๅฑๆงๆฏๅฆๅ ทๆๆฏๆไธไผ ็ๅคงๅฐ๏ผไปฅๅ่ฏฅๆไปถๆฏๅฆไธไปฃ็ ๆซๆๅ ผๅฎนใ ๆๅ ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้ โๅฏนไปฃ็ ๆซๆ็ SARIF ๆฏๆโใ
ๅ็งฐ | ๅฟ ้ | ่ฏดๆ |
---|---|---|
ruleId | ่งๅ็ๅฏไธๆ ่ฏ็ฌฆ (reportingDescriptor.id )ใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
reportingDescriptor ๅฏน่ฑกใ Code scanning ไฝฟ็จ่งๅๆ ่ฏ็ฌฆๅจ GitHub ไธๆ่งๅ็ญ้็ปๆใ | |
ruleIndex | ๅทฅๅ
ท็ปไปถ rules ๆฐ็ปไธญๅ
ณ่่งๅ๏ผreportingDescriptor ๅฏน่ฑก๏ผ็็ดขๅผใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
run ๅฏน่ฑกใ ๆญคๅฑๆง็ๅ
่ฎธ่ๅด 0 ๅฐ 2^63 - 1ใ | |
rule | ็จไบๅฎไฝๆญค็ปๆ็่งๅ๏ผๆฅๅๆ่ฟฐ็ฌฆ๏ผ็ๅผ็จใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
reportingDescriptor ๅฏน่ฑกใ | |
level | ็ปๆ็ไธฅ้ๆงใ ๆญค็บงๅซ่ฆ็่งๅๅฎไน็้ป่ฎคไธฅ้็จๅบฆใ Code scanning ไฝฟ็จ็บงๅซๅจ GitHub ไธๆไธฅ้ๆง็ญ้็ปๆใ | |
message.text | ๆ่ฟฐ็ปๆ็ๆถๆฏใ Code scanning ๆพ็คบๆถๆฏๆๆฌไฝไธบ็ปๆ็ๆ ้ขใ ๅฝๅฏ่ง็ฉบ้ดๆ้ๆถ๏ผไป ๆพ็คบๆถๆฏ็็ฌฌไธๅฅใ | |
locations[] | ๆๅคๅฏไปฅๆฃๆตๅฐ 10 ไธช็ปๆ็ไฝ็ฝฎ้ใ ๅบๅชๅ ๅซไธไธชไฝ็ฝฎ๏ผ้ค้ๅช่ฝ้่ฟๅจๆฏไธชๆๅฎไฝ็ฝฎ่ฟ่กๆดๆนๆฅๆดๆญฃ้ฎ้ขใ ๆณจๆ๏ผ code scanning ่ณๅฐ้่ฆไธไธชไฝ็ฝฎๆ่ฝๆพ็คบ็ปๆใ Code scanning ๅฐไฝฟ็จๆญคๅฑๆงๆฅๅณๅฎ่ฆ็จ็ปๆๆณจ้ๅชไธชๆไปถใ ไป ไฝฟ็จๆญคๆฐ็ป็็ฌฌไธไธชๅผใ ๆๆๅ ถไปๅผ้ฝ่ขซๅฟฝ็ฅใ | |
partialFingerprints | ไธ็ปๅญ็ฌฆไธฒ๏ผ็จไบ่ท่ธช็ปๆ็ๅฏไธๆ ่ฏใ Code scanning ไฝฟ็จ partialFingerprints ๅ็กฎๅฐ่ฏๅซๅจๆไบคๅๅๆฏไน้ด็ธๅ็็ปๆใ Code scanning ๅฐๅฐ่ฏไฝฟ็จ partialFingerprints ๏ผๅฆๆๅญๅจ๏ผใ ๅฆๆไฝฟ็จ upload-action ไธไผ ็ฌฌไธๆน SARIF ๆไปถ๏ผๅฝ่ฟไบๆไปถๆชๅ
ๅซๅจ SARIF ๆไปถไธญๆถ๏ผ่ฏฅๆไฝๅฐไธบไฝ ๅๅปบ partialFingerprints ใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
โๆไพ็จไบ่ทจ่ฟ่ก่ท่ธชไปฃ็ ๆซๆ่ญฆๆฅ็ๆฐๆฎโใ ๆณจๆ๏ผCode scanning ไป
ไฝฟ็จ primaryLocationLineHash ใ | |
codeFlows[].threadFlows[].locations[] | threadFlow ๅฏน่ฑก็ location ๅฏน่ฑกๆฐ็ป๏ผ้่ฟๆง่ก็บฟ็จๆ่ฟฐ็จๅบ่ฟๅบฆใ codeFlow ๅฏน่ฑกๆ่ฟฐ็จไบๆฃๆต็ปๆ็ไปฃ็ ๆง่กๆจกๅผใ ๅฆๆๆไพไบไปฃ็ ๆต๏ผcode scanning ๅฐๅจ GitHub ไธๆฉๅฑไปฃ็ ๆตไปฅ่ทๅ็ธๅ
ณ็ปๆใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
location ๅฏน่ฑกใ | |
relatedLocations[] | ไธๆญค็ปๆ็ธๅ
ณ็ไธ็ปไฝ็ฝฎใ ๅฝ็ธๅ
ณไฝ็ฝฎๅตๅ
ฅๅจ็ปๆๆถๆฏไธญๆถ๏ผCode scanning ๅฐ้พๆฅๅฐ่ฟไบไฝ็ฝฎใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
location ๅฏน่ฑกใ |
๏ผๅฑไบlocation
ๅฏน่ฑก๏ผ็็ถ็บงใ
็ผ็จๆไปถไธญ็ไฝ็ฝฎ๏ผไพๅฆไปๅบไธญ็ๆไปถๆๅจๆๅปบ่ฟ็จไธญ็ๆ็ๆไปถใ
ๅ็งฐ | ๅฟ ้ | ่ฏดๆ |
---|---|---|
location.id | ็จไบๅจๅไธช็ปๆๅฏน่ฑกไธญๅบๅๆญคไฝ็ฝฎไธๆๆๅ ถไปไฝ็ฝฎ็ๅฏไธๆ ่ฏ็ฌฆใ ๆญคๅฑๆง็ๅ ่ฎธ่ๅด 0 ๅฐ 2^63 - 1ใ | |
location.physicalLocation | ๆ ่ฏๆไปถๅๅบๅใ ๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
physicalLocation ใ | |
location.message.text | ไธไฝ็ฝฎ็ธๅ ณ็ๆถๆฏใ |
๏ผๅฑไบphysicalLocation
ๅฏน่ฑก๏ผ็็ถ็บงใ
ๅ็งฐ | ๅฟ ้ | ่ฏดๆ |
---|---|---|
artifactLocation.uri | ่กจ็คบๆไปถไฝ็ฝฎ็ URI๏ผ้ๅธธๆฏๅญๅจๅบไธญๆๅจๆๅปบๆ้ด็ๆ็ๆไปถใ ไธบไบ่ทๅพๆไฝณ็ปๆ๏ผๅปบ่ฎฎ่ฟๆฏๆๅๆ็ GitHub ๅญๅจๅบๆ น็็ธๅฏน่ทฏๅพใ ไพๅฆ๏ผsrc/main.js ใ ๆๅ
ณ้กน็ฎ URI ็่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
โๆๅฎๆบๆไปถ็ๆ นโใ | |
region.startLine | ๅบๅไธญ็ฌฌไธไธชๅญ็ฌฆ็่กๅทใ | |
region.startColumn | ๅบๅไธญ็ฌฌไธไธชๅญ็ฌฆ็ๅๅทใ | |
region.endLine | ๅบๅไธญๆๅไธไธชๅญ็ฌฆ็่กๅทใ | |
region.endColumn | ๅบๅๆซๅฐพๅ้ข็ๅญ็ฌฆ็ๅๅทใ |
๏ผๅฑไบrunAutomationDetails
ๅฏน่ฑก๏ผ็็ถ็บงใ
runAutomationDetails
ๅฏน่ฑกๅ
ๅซๆๅฎ่ฟ่กๆ ่ฏ็ไฟกๆฏใ
ๅ็งฐ | ๅฟ ้ | ่ฏดๆ |
---|---|---|
id | ๆ ่ฏๅๆๅ่ฟ่ก ID ็ฑปๅซ็ๅญ็ฌฆไธฒใ ๅฆๆๆจๆณ่ฆไธบๅไธๅทฅๅ ทไธไผ ๅคไธช SARIF ๆไปถ๏ผไฝๅจไธๅ่ฏญ่จๆไปฃ็ ็ไธๅ้จๅๆง่ก๏ผ่ฏทไฝฟ็จใ |
ไฝฟ็จ runAutomationDetails
ๅฏน่ฑกๆฏๅฏ้็ใ
id
ๅญๆฎตๅฏไปฅๅ
ๅซๅๆ็ฑปๅซๅ่ฟ่ก IDใ ๆไปฌไธไฝฟ็จ id
ๅญๆฎต็่ฟ่ก ID ้จๅ๏ผไฝไผๅญๅจๅฎใ
ไฝฟ็จ็ฑปๅซๆฅๅบๅๅไธๅทฅๅ ทๆๆไบค็ๅคๆฌกๅๆ๏ผไฝๆฏๅจไธๅ่ฏญ่จๆไปฃ็ ็ไธๅ้จๅ่ฟ่กใ ไฝฟ็จ่ฟ่ก ID ๆฅ่ฏๅซๅๆ็็นๅฎ่ฟ่ก๏ผไพๅฆๅๆ็่ฟ่กๆฅๆใ
id
่งฃ้ไธบ category/run-id
ใ ๅฆๆ id
ไธๅ
ๅซๆญฃๆๆ (/
)๏ผๅๆดไธชๅญ็ฌฆไธฒไธบ run_id
๏ผ่ category
ไธบ็ฉบใ ๅฆๅ๏ผcategory
ๆฏๅญ็ฌฆไธฒไธญ็ดๅฐๆๅไธไธชๆญฃๆๆ ็ๆๆๅ
ๅฎน๏ผ่ run_id
ๆฏไนๅ็ๆๆๅ
ๅฎนใ
id | category | run_id |
---|---|---|
my-analysis/tool1/2022-01-02 | my-analysis/tool1 | 2022-01-02 |
my-analysis/tool1/ | my-analysis/tool1 | ๆ |
my-analysis for tool1 | ๆ | my-analysis for tool1 |
id
ไธบโmy-analysis/tool1/2021-02-01โ็่ฟ่กๅฑไบ็ฑปๅซโmy-analysis/tool1โใid
ไธบโmy-analysis/tool1/โ็่ฟ่กๅฑไบ็ฑปๅซโmy-analysis/tool1โ๏ผไฝๆชไธ่ฏฅ็ฑปๅซไธญ็ๅ ถไป่ฟ่กๅบๅใid
ไธบโmy-analysis for tool1โ็่ฟ่กๅ ทๆๅฏไธ็ๆ ่ฏ็ฌฆ๏ผไฝๆ ๆณๆจๆญๅฑไบไปปไฝ็ฑปๅซใ
ๆๅ
ณ runAutomationDetails
ๅฏน่ฑกๅ id
ๅญๆฎต็่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
OASIS ๆๆกฃไธญ็ runAutomationDetails ๅฏน่ฑกใ
่ฏทๆณจๆ๏ผๅฐๅฟฝ็ฅๅ ถไฝๆฏๆ็ๅญๆฎตใ
SARIF ่พๅบๆไปถ็คบไพ
่ฟไบ็คบไพ SARIF ่พๅบๆไปถๆพ็คบๆฏๆ็ๅฑๆงๅ็คบไพๅผใ
ๅ ทๆๆๅฐๅฟ ้ๅฑๆง็็คบไพ
ๆญค SARIF ่พๅบๆไปถ็็คบไพๅผๆพ็คบไบ code scanning ็ปๆๆญฃๅธธ่ฟ่กๆ้็ๆๅฐๅฑๆงใ ๅฆๆ็งป้คไปปไฝๅฑๆงใ็็ฅๅผๆไฝฟ็จ็ฉบๅญ็ฌฆไธฒ๏ผๆญคๆฐๆฎๅฐๆ ๆณๆญฃ็กฎๆพ็คบๆๅจ GitHub ไธๅๆญฅใ
{
"$schema": "https://json.schemastore.org/sarif-2.1.0.json",
"version": "2.1.0",
"runs": [
{
"tool": {
"driver": {
"name": "Tool Name",
"rules": [
{
"id": "R01"
...
"properties" : {
"id" : "java/unsafe-deserialization",
"kind" : "path-problem",
"name" : "...",
"problem.severity" : "error",
"security-severity" : "9.8",
}
}
]
}
},
"results": [
{
"ruleId": "R01",
"message": {
"text": "Result text. This result does not have a rule associated."
},
"locations": [
{
"physicalLocation": {
"artifactLocation": {
"uri": "fileURI"
},
"region": {
"startLine": 2,
"startColumn": 7,
"endColumn": 10
}
}
}
],
"partialFingerprints": {
"primaryLocationLineHash": "39fa2ee980eb94b0:1"
}
}
]
}
]
}
SARIF ็ๆ่ ็็ธๅฏน URI ๆๅ
ๆญค SARIF ่พๅบๆไปถๆไพไบๅญๆฎต originalUriBaseIds
็ๅผ็คบไพ๏ผๅ
ถไธญๆพ็คบไบไฝฟ็จ็ธๅฏน URI ๅผ็จๆถ SARIF ็ๆ่
ๅบๅ
ๅซ็ๆไฝ่ฆๆฑๅฑๆงใ
ๆณจๆ
่ฝ็ถ GitHub ไธ้่ฆๆญคๅฑๆงไพฟ่ฝๆญฃ็กฎๆพ็คบ code scanning ็ปๆ๏ผไฝๅจไฝฟ็จ็ธๅฏน URI ๅผ็จๆถๅฟ ้ๆๆญคๅฑๆงๆ่ฝ็ๆๆๆ็ SARIF ่พๅบใ
{
"$schema": "https://json.schemastore.org/sarif-2.1.0.json",
"version": "2.1.0",
"runs": [
{
"tool": {
"driver": {
"name": "Tool Name",
"rules": [
{
"id": "R01"
...
"properties" : {
"id" : "java/unsafe-deserialization",
"kind" : "path-problem",
"name" : "...",
"problem.severity" : "error",
"security-severity" : "9.8",
}
}
]
}
},
"originalUriBaseIds": {
"PROJECTROOT": {
"uri": "file:///C:/Users/Mary/code/TheProject/",
"description": {
"text": "The root directory for all project files."
}
},
"%SRCROOT%": {
"uri": "src/",
"uriBaseId": "PROJECTROOT",
"description": {
"text": "The root of the source tree."
}
}
},
"results": [
{
"ruleId": "R01",
"message": {
"text": "Result text. This result does not have a rule associated."
},
"locations": [
{
"physicalLocation": {
"artifactLocation": {
"uri": "fileURI",
"uriBaseId": "%SRCROOT%"
},
"region": {
"startLine": 2,
"startColumn": 7,
"endColumn": 10
}
}
}
],
"partialFingerprints": {
"primaryLocationLineHash": "39fa2ee980eb94b0:1"
}
}
]
}
]
}
ๆพ็คบๆๆๆฏๆ็ SARIF ๅฑๆง็็คบไพ
ๆญค SARIF ่พๅบๆไปถ็็คบไพๅผๆพ็คบไบ code scanning ็ๆๆๅๆฏๆ SARIF ๅฑๆงใ
{
"$schema": "https://json.schemastore.org/sarif-2.1.0.json",
"version": "2.1.0",
"runs": [
{
"tool": {
"driver": {
"name": "Tool Name",
"semanticVersion": "2.0.0",
"rules": [
{
"id": "3f292041e51d22005ce48f39df3585d44ce1b0ad",
"name": "js/unused-local-variable",
"shortDescription": {
"text": "Unused variable, import, function or class"
},
"fullDescription": {
"text": "Unused variables, imports, functions or classes may be a symptom of a bug and should be examined carefully."
},
"defaultConfiguration": {
"level": "note"
},
"properties": {
"tags": [
"maintainability"
],
"precision": "very-high"
}
},
{
"id": "d5b664aefd5ca4b21b52fdc1d744d7d6ab6886d0",
"name": "js/inconsistent-use-of-new",
"shortDescription": {
"text": "Inconsistent use of 'new'"
},
"fullDescription": {
"text": "If a function is intended to be a constructor, it should always be invoked with 'new'. Otherwise, it should always be invoked as a normal function, that is, without 'new'."
},
"properties": {
"tags": [
"reliability",
"correctness",
"language-features"
],
"precision": "very-high"
}
},
{
"id": "R01"
}
]
}
},
"automationDetails": {
"id": "my-category/"
},
"results": [
{
"ruleId": "3f292041e51d22005ce48f39df3585d44ce1b0ad",
"ruleIndex": 0,
"message": {
"text": "Unused variable foo."
},
"locations": [
{
"physicalLocation": {
"artifactLocation": {
"uri": "main.js",
"uriBaseId": "%SRCROOT%"
},
"region": {
"startLine": 2,
"startColumn": 7,
"endColumn": 10
}
}
}
],
"partialFingerprints": {
"primaryLocationLineHash": "39fa2ee980eb94b0:1",
"primaryLocationStartColumnFingerprint": "4"
}
},
{
"ruleId": "d5b664aefd5ca4b21b52fdc1d744d7d6ab6886d0",
"ruleIndex": 1,
"message": {
"text": "Function resolvingPromise is sometimes invoked as a constructor (for example [here](1)), and sometimes as a normal function (for example [here](2))."
},
"locations": [
{
"physicalLocation": {
"artifactLocation": {
"uri": "src/promises.js",
"uriBaseId": "%SRCROOT%"
},
"region": {
"startLine": 2
}
}
}
],
"partialFingerprints": {
"primaryLocationLineHash": "5061c3315a741b7d:1",
"primaryLocationStartColumnFingerprint": "7"
},
"relatedLocations": [
{
"id": 1,
"physicalLocation": {
"artifactLocation": {
"uri": "src/ParseObject.js",
"uriBaseId": "%SRCROOT%"
},
"region": {
"startLine": 2281,
"startColumn": 33,
"endColumn": 55
}
},
"message": {
"text": "here"
}
},
{
"id": 2,
"physicalLocation": {
"artifactLocation": {
"uri": "src/LiveQueryClient.js",
"uriBaseId": "%SRCROOT%"
},
"region": {
"startLine": 166
}
},
"message": {
"text": "here"
}
}
]
},
{
"ruleId": "R01",
"message": {
"text": "Specifying both [ruleIndex](1) and [ruleId](2) might lead to inconsistencies."
},
"level": "error",
"locations": [
{
"physicalLocation": {
"artifactLocation": {
"uri": "full.sarif",
"uriBaseId": "%SRCROOT%"
},
"region": {
"startLine": 54,
"startColumn": 10,
"endLine": 55,
"endColumn": 25
}
}
}
],
"relatedLocations": [
{
"id": 1,
"physicalLocation": {
"artifactLocation": {
"uri": "full.sarif"
},
"region": {
"startLine": 81,
"startColumn": 10,
"endColumn": 18
}
},
"message": {
"text": "here"
}
},
{
"id": 2,
"physicalLocation": {
"artifactLocation": {
"uri": "full.sarif"
},
"region": {
"startLine": 82,
"startColumn": 10,
"endColumn": 21
}
},
"message": {
"text": "here"
}
}
],
"codeFlows": [
{
"threadFlows": [
{
"locations": [
{
"location": {
"physicalLocation": {
"region": {
"startLine": 11,
"endLine": 29,
"startColumn": 10,
"endColumn": 18
},
"artifactLocation": {
"uriBaseId": "%SRCROOT%",
"uri": "full.sarif"
}
},
"message": {
"text": "Rule has index 0"
}
}
},
{
"location": {
"physicalLocation": {
"region": {
"endColumn": 47,
"startColumn": 12,
"startLine": 12
},
"artifactLocation": {
"uriBaseId": "%SRCROOT%",
"uri": "full.sarif"
}
}
}
}
]
}
]
}
],
"partialFingerprints": {
"primaryLocationLineHash": "ABC:2"
}
}
],
"columnKind": "utf16CodeUnits"
}
]
}