@@ -4,6 +4,11 @@ export EXTENSION_LOCATION="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
4
4
5
5
source $EXTENSION_LOCATION /bin/codeql-utils
6
6
7
+ # >> CodeQL Scan
8
+ export CODEQL_SCAN_VERSION=" 0.4.0"
9
+ # enabled by default
10
+ export CODEQL_SCAN_BANNER=1
11
+
7
12
# >> CodeQL
8
13
export CODEQL_DATABASES=" ${CODEQL_DATABASES:= $HOME / .codeql/ databases} "
9
14
# Override the database if it exists
@@ -21,11 +26,11 @@ export CODEQL_DATABASE_PATHS_FILE="${CODEQL_DATABASE_PATHS_FILE:=/tmp/codeql-dat
21
26
export WORKSPACE=" ${WORKSPACE:= $PWD } "
22
27
23
28
# >> GitHub
24
- export GITHUB_INSTANCE=" https://github.com"
29
+ export GITHUB_INSTANCE=${GITHUB_INSTANCE := " https://github.com" }
25
30
# upload by default
26
- export GITHUB_UPLOAD=1
27
- # do not auto-detect languages
28
- export GITHUB_AUTO_DETECT=0
31
+ export GITHUB_UPLOAD=${GITHUB_UPLOAD := 1}
32
+ # auto-detect languages
33
+ export GITHUB_AUTO_DETECT=${GITHUB_AUTO_DETECT := 1}
29
34
30
35
# Git Based metadata
31
36
export GIT_HASH=$( git rev-parse HEAD)
@@ -34,34 +39,17 @@ export GIT_HASH=$(git rev-parse HEAD)
34
39
export GIT_REF=" refs/heads/$( git branch --show-current) "
35
40
36
41
37
- codeql-scan-help () {
38
- cat << EOF
39
- GitHub CodeQL Scan tool
40
-
41
- gh codeql-scan {MODE} {ARGS}
42
-
43
- gh codeql-scan # default: "scan"
44
- gh codeql-scan init # initialise the scan
45
- gh codeql-scan analyze # run the analysis
46
- gh codeql-scan upload # upload present SARIF files
47
- gh codeql-scan scan # full end-to-end scan
48
- EOF
49
- }
50
-
51
-
52
-
53
42
# default: scan
54
43
MODE=" scan"
55
44
if [ -z ${1+x} ]; then
56
45
debug " Using default mode"
57
-
58
46
elif [[ " ${1} " = " --help" ]]; then
59
47
codeql-scan-help
60
48
exit 0
61
49
elif [[ " ${1} " =~ ^(init| analyze| scan| upload) ]]; then
62
50
MODE=" $1 "
51
+ debug " Using mode :: $MODE "
63
52
shift
64
-
65
53
fi
66
54
67
55
# parse other arguments
@@ -87,6 +75,10 @@ for i in "$@"; do
87
75
export GITHUB_UPLOAD=0
88
76
shift
89
77
;;
78
+ --disable-banner)
79
+ export CODEQL_SCAN_BANNER=0
80
+ shift
81
+ ;;
90
82
-l=* |--language=* )
91
83
export CODEQL_LANGUAGES=" ${i#* =} "
92
84
shift
@@ -122,6 +114,23 @@ for i in "$@"; do
122
114
done
123
115
124
116
117
+ display-banner
118
+
119
+ # Check if CodeQL is installed and have a version
120
+ CODEQL_VERSION=" $( $CODEQL_BINARY version --format=terse || echo ' ' ) "
121
+
122
+ if [ " $CODEQL_VERSION " = " " ]; then
123
+ warning " CodeQL is not installed, now installing automatically..."
124
+
125
+ codeql-install
126
+
127
+ export CODEQL_BINARY=" gh codeql"
128
+ export CODEQL_VERSION=$( $CODEQL_BINARY version --format=terse)
129
+ fi
130
+
131
+ debug " Using CodeQL binary :: $CODEQL_BINARY "
132
+ info " Using CodeQL version :: $CODEQL_VERSION "
133
+
125
134
# Output dirs
126
135
info " Storing CodeQL databases :: $CODEQL_DATABASES "
127
136
if [ ! -d $CODEQL_DATABASES ]; then
@@ -139,42 +148,42 @@ if [ -z ${GITHUB_REPOSITORY+x} ]; then
139
148
# TODO: support for ssh remotes
140
149
export GITHUB_REPOSITORY=$( echo $REMOTE | sed -e ' s/.*github.com[:\/]\(.*\)\.git/\1/' )
141
150
142
- echo " Using remote repository: $GITHUB_REPOSITORY "
151
+ info " Using remote repository: $GITHUB_REPOSITORY "
143
152
fi
144
153
145
154
155
+ # Running different modes
146
156
if [ $MODE = " init" ]; then
147
- echo " Running Init mode..."
148
-
149
- # $HERE/bin/codeql-config.sh
150
- $EXTENSION_LOCATION /bin/codeql-init
157
+ info " Running Init mode..."
158
+
159
+ $EXTENSION_LOCATION /bin/codeql-init $@
151
160
152
161
elif [ $MODE = " analyze" ]; then
153
- echo " Running Analyze mode..."
162
+ info " Running Analyze mode..."
154
163
155
164
$EXTENSION_LOCATION /bin/codeql-analyze $@
156
165
157
166
elif [ $MODE = " upload" ]; then
158
- echo " Uploading results to GitHub..."
167
+ info " Uploading results to GitHub..."
159
168
160
- $EXTENSION_LOCATION /bin/codeql-upload
169
+ $EXTENSION_LOCATION /bin/codeql-upload $@
161
170
162
171
elif [ $MODE = " scan" ]; then
163
- echo " Running Scan mode..."
172
+ info " Running Scan mode..."
164
173
165
174
debug " Disable build tracing as it can not be used in this mode"
166
175
export CODEQL_TRACING=0
167
-
176
+
168
177
$EXTENSION_LOCATION /bin/codeql-init $@
169
178
170
179
$EXTENSION_LOCATION /bin/codeql-analyze $@
171
180
172
181
if [ " $GITHUB_UPLOAD " = " 1" ]; then
173
- echo " Uploading results to GitHub..."
174
- $EXTENSION_LOCATION /bin/codeql-upload
182
+ info " Uploading results to GitHub..."
183
+ $EXTENSION_LOCATION /bin/codeql-upload $@
184
+ else
185
+ debug " Results are not uploaded to GitHub"
175
186
fi
176
- else
177
- echo " ERROR: Mode is not supported"
178
- codeql-scan-help
179
- exit 1
180
187
fi
188
+
189
+ info " Completed CodeQL Scan!"
0 commit comments