mirror of
https://gitlab.com/components/sast.git
synced 2025-06-30 23:48:27 +02:00
Merge branch 'philipcunningham-make-php-support-available-in-glas-523657' into 'main'
Draft: Add PHP language support to gitlab-advanced-sast See merge request components/sast!21
This commit is contained in:
commit
eed7854bd0
1 changed files with 92 additions and 68 deletions
|
@ -21,6 +21,9 @@ spec:
|
||||||
type: boolean
|
type: boolean
|
||||||
include_experimental:
|
include_experimental:
|
||||||
default: 'false'
|
default: 'false'
|
||||||
|
ff_glas_enable_php_support:
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
---
|
---
|
||||||
.sast-analyzer:
|
.sast-analyzer:
|
||||||
stage: $[[ inputs.stage ]]
|
stage: $[[ inputs.stage ]]
|
||||||
|
@ -48,6 +51,77 @@ spec:
|
||||||
rules:
|
rules:
|
||||||
- when: never
|
- when: never
|
||||||
|
|
||||||
|
.gitlab-advanced-sast-exist-rules:
|
||||||
|
exists:
|
||||||
|
- '**/*.py'
|
||||||
|
- '**/*.go'
|
||||||
|
- '**/*.java'
|
||||||
|
- '**/*.jsp'
|
||||||
|
- '**/*.js'
|
||||||
|
- '**/*.jsx'
|
||||||
|
- '**/*.ts'
|
||||||
|
- '**/*.tsx'
|
||||||
|
- '**/*.cjs'
|
||||||
|
- '**/*.mjs'
|
||||||
|
- '**/*.cs'
|
||||||
|
- '**/*.rb'
|
||||||
|
- '**/*.php'
|
||||||
|
|
||||||
|
.semgrep-with-advanced-sast-exist-rules:
|
||||||
|
exists:
|
||||||
|
- '**/*.c'
|
||||||
|
- '**/*.cc'
|
||||||
|
- '**/*.cpp'
|
||||||
|
- '**/*.c++'
|
||||||
|
- '**/*.cp'
|
||||||
|
- '**/*.cxx'
|
||||||
|
- '**/*.h'
|
||||||
|
- '**/*.hpp'
|
||||||
|
- '**/*.scala'
|
||||||
|
- '**/*.sc'
|
||||||
|
- '**/*.php'
|
||||||
|
- '**/*.swift'
|
||||||
|
- '**/*.m'
|
||||||
|
- '**/*.kt'
|
||||||
|
- '**/*.properties'
|
||||||
|
- '**/application*.yml'
|
||||||
|
- '**/bootstrap*.yml'
|
||||||
|
- '**/application*.yaml'
|
||||||
|
- '**/bootstrap*.yaml'
|
||||||
|
|
||||||
|
.semgrep-exist-rules:
|
||||||
|
exists:
|
||||||
|
- '**/*.py'
|
||||||
|
- '**/*.js'
|
||||||
|
- '**/*.jsx'
|
||||||
|
- '**/*.ts'
|
||||||
|
- '**/*.tsx'
|
||||||
|
- '**/*.c'
|
||||||
|
- '**/*.cc'
|
||||||
|
- '**/*.cpp'
|
||||||
|
- '**/*.c++'
|
||||||
|
- '**/*.cp'
|
||||||
|
- '**/*.cxx'
|
||||||
|
- '**/*.h'
|
||||||
|
- '**/*.hpp'
|
||||||
|
- '**/*.go'
|
||||||
|
- '**/*.java'
|
||||||
|
- '**/*.cs'
|
||||||
|
- '**/*.scala'
|
||||||
|
- '**/*.sc'
|
||||||
|
- '**/*.php'
|
||||||
|
- '**/*.swift'
|
||||||
|
- '**/*.m'
|
||||||
|
- '**/*.rb'
|
||||||
|
- '**/*.kt'
|
||||||
|
- '**/*.cjs'
|
||||||
|
- '**/*.mjs'
|
||||||
|
- '**/*.properties'
|
||||||
|
- '**/application*.yml'
|
||||||
|
- '**/bootstrap*.yml'
|
||||||
|
- '**/application*.yaml'
|
||||||
|
- '**/bootstrap*.yaml'
|
||||||
|
|
||||||
gitlab-advanced-sast:
|
gitlab-advanced-sast:
|
||||||
extends: .sast-analyzer
|
extends: .sast-analyzer
|
||||||
image:
|
image:
|
||||||
|
@ -68,19 +142,7 @@ gitlab-advanced-sast:
|
||||||
when: never
|
when: never
|
||||||
- if: $CI_COMMIT_BRANCH &&
|
- if: $CI_COMMIT_BRANCH &&
|
||||||
$GITLAB_FEATURES =~ /\bsast_advanced\b/
|
$GITLAB_FEATURES =~ /\bsast_advanced\b/
|
||||||
exists:
|
exists: !reference [.gitlab-advanced-sast-exist-rules, exists]
|
||||||
- '**/*.py'
|
|
||||||
- '**/*.go'
|
|
||||||
- '**/*.java'
|
|
||||||
- '**/*.jsp'
|
|
||||||
- '**/*.js'
|
|
||||||
- '**/*.jsx'
|
|
||||||
- '**/*.ts'
|
|
||||||
- '**/*.tsx'
|
|
||||||
- '**/*.cjs'
|
|
||||||
- '**/*.mjs'
|
|
||||||
- '**/*.cs'
|
|
||||||
- '**/*.rb'
|
|
||||||
|
|
||||||
brakeman-sast:
|
brakeman-sast:
|
||||||
extends: .deprecated-16.8
|
extends: .deprecated-16.8
|
||||||
|
@ -138,71 +200,33 @@ semgrep-sast:
|
||||||
rules:
|
rules:
|
||||||
- if: '"$[[ inputs.excluded_analyzers ]]" =~ /semgrep/'
|
- if: '"$[[ inputs.excluded_analyzers ]]" =~ /semgrep/'
|
||||||
when: never
|
when: never
|
||||||
# In case gitlab-advanced-sast also runs, exclude files already scanned by gitlab-advanced-sast
|
# When advanced SAST runs with PHP support enabled
|
||||||
- if: '$CI_COMMIT_BRANCH &&
|
- if: '$CI_COMMIT_BRANCH &&
|
||||||
$GITLAB_FEATURES =~ /\bsast_advanced\b/ &&
|
$GITLAB_FEATURES =~ /\bsast_advanced\b/ &&
|
||||||
"$[[ inputs.excluded_analyzers ]]" !~ /gitlab-advanced-sast/ &&
|
"$[[ inputs.excluded_analyzers ]]" !~ /gitlab-advanced-sast/ &&
|
||||||
"$[[ inputs.run_advanced_sast ]]" == "true"'
|
"$[[ inputs.run_advanced_sast ]]" == "true" &&
|
||||||
|
"$[[ inputs.ff_glas_enable_php_support ]]" == "true"'
|
||||||
|
variables:
|
||||||
|
SAST_EXCLUDED_PATHS: "$DEFAULT_SAST_EXCLUDED_PATHS, **/*.py, **/*.go, **/*.java, **/*.js, **/*.jsx, **/*.ts, **/*.tsx, **/*.cjs, **/*.mjs, **/*.cs, **/*.rb, **/*.php"
|
||||||
|
exists: !reference [.semgrep-with-advanced-sast-exist-rules, exists]
|
||||||
|
# When advanced SAST runs but PHP support is disabled
|
||||||
|
- if: '$CI_COMMIT_BRANCH &&
|
||||||
|
$GITLAB_FEATURES =~ /\bsast_advanced\b/ &&
|
||||||
|
"$[[ inputs.excluded_analyzers ]]" !~ /gitlab-advanced-sast/ &&
|
||||||
|
"$[[ inputs.run_advanced_sast ]]" == "true" &&
|
||||||
|
"$[[ inputs.ff_glas_enable_php_support ]]" != "true"'
|
||||||
variables:
|
variables:
|
||||||
SAST_EXCLUDED_PATHS: "$DEFAULT_SAST_EXCLUDED_PATHS, **/*.py, **/*.go, **/*.java, **/*.js, **/*.jsx, **/*.ts, **/*.tsx, **/*.cjs, **/*.mjs, **/*.cs, **/*.rb"
|
SAST_EXCLUDED_PATHS: "$DEFAULT_SAST_EXCLUDED_PATHS, **/*.py, **/*.go, **/*.java, **/*.js, **/*.jsx, **/*.ts, **/*.tsx, **/*.cjs, **/*.mjs, **/*.cs, **/*.rb"
|
||||||
exists:
|
exists: !reference [.semgrep-with-advanced-sast-exist-rules, exists]
|
||||||
- '**/*.c'
|
# Fallback when advanced SAST covers everything
|
||||||
- '**/*.cc'
|
|
||||||
- '**/*.cpp'
|
|
||||||
- '**/*.c++'
|
|
||||||
- '**/*.cp'
|
|
||||||
- '**/*.cxx'
|
|
||||||
- '**/*.h'
|
|
||||||
- '**/*.hpp'
|
|
||||||
- '**/*.scala'
|
|
||||||
- '**/*.sc'
|
|
||||||
- '**/*.php'
|
|
||||||
- '**/*.swift'
|
|
||||||
- '**/*.m'
|
|
||||||
- '**/*.kt'
|
|
||||||
- '**/*.properties'
|
|
||||||
- '**/application*.yml'
|
|
||||||
- '**/bootstrap*.yml'
|
|
||||||
- '**/application*.yaml'
|
|
||||||
- '**/bootstrap*.yaml'
|
|
||||||
## In case gitlab-advanced-sast already covers all the files that semgrep-sast would have scanned
|
|
||||||
- if: '$CI_COMMIT_BRANCH &&
|
- if: '$CI_COMMIT_BRANCH &&
|
||||||
$GITLAB_FEATURES =~ /\bsast_advanced\b/ &&
|
$GITLAB_FEATURES =~ /\bsast_advanced\b/ &&
|
||||||
"$[[ inputs.excluded_analyzers ]]" !~ /gitlab-advanced-sast/ &&
|
"$[[ inputs.excluded_analyzers ]]" !~ /gitlab-advanced-sast/ &&
|
||||||
"$[[ inputs.run_advanced_sast ]]" == "true"'
|
"$[[ inputs.run_advanced_sast ]]" == "true"'
|
||||||
when: never
|
when: never
|
||||||
|
# Default case - run for all supported files
|
||||||
- if: $CI_COMMIT_BRANCH
|
- if: $CI_COMMIT_BRANCH
|
||||||
exists:
|
exists: !reference [.semgrep-exist-rules, exists]
|
||||||
- '**/*.py'
|
|
||||||
- '**/*.js'
|
|
||||||
- '**/*.jsx'
|
|
||||||
- '**/*.ts'
|
|
||||||
- '**/*.tsx'
|
|
||||||
- '**/*.c'
|
|
||||||
- '**/*.cc'
|
|
||||||
- '**/*.cpp'
|
|
||||||
- '**/*.c++'
|
|
||||||
- '**/*.cp'
|
|
||||||
- '**/*.cxx'
|
|
||||||
- '**/*.h'
|
|
||||||
- '**/*.hpp'
|
|
||||||
- '**/*.go'
|
|
||||||
- '**/*.java'
|
|
||||||
- '**/*.cs'
|
|
||||||
- '**/*.scala'
|
|
||||||
- '**/*.sc'
|
|
||||||
- '**/*.php'
|
|
||||||
- '**/*.swift'
|
|
||||||
- '**/*.m'
|
|
||||||
- '**/*.rb'
|
|
||||||
- '**/*.kt'
|
|
||||||
- '**/*.cjs'
|
|
||||||
- '**/*.mjs'
|
|
||||||
- '**/*.properties'
|
|
||||||
- '**/application*.yml'
|
|
||||||
- '**/bootstrap*.yml'
|
|
||||||
- '**/application*.yaml'
|
|
||||||
- '**/bootstrap*.yaml'
|
|
||||||
|
|
||||||
sobelow-sast:
|
sobelow-sast:
|
||||||
extends: .sast-analyzer
|
extends: .sast-analyzer
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue