@codacy/tools-hadolint-2 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +143 -3
- package/dist/metadata.js +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -48,6 +48,7 @@ var patterns_default = [
|
|
|
48
48
|
severityLevel: "Info",
|
|
49
49
|
title: "Avoid Using Inline Ignore Pragmas",
|
|
50
50
|
enabled: false,
|
|
51
|
+
languages: ["Dockerfile"],
|
|
51
52
|
parameters: []
|
|
52
53
|
},
|
|
53
54
|
{
|
|
@@ -56,6 +57,7 @@ var patterns_default = [
|
|
|
56
57
|
severityLevel: "Warning",
|
|
57
58
|
title: "Enforce use of absolute WORKDIR",
|
|
58
59
|
enabled: true,
|
|
60
|
+
languages: ["Dockerfile"],
|
|
59
61
|
parameters: []
|
|
60
62
|
},
|
|
61
63
|
{
|
|
@@ -64,6 +66,7 @@ var patterns_default = [
|
|
|
64
66
|
severityLevel: "Warning",
|
|
65
67
|
title: "Avoid Running Inappropriate Commands in Docker Containers",
|
|
66
68
|
enabled: true,
|
|
69
|
+
languages: ["Dockerfile"],
|
|
67
70
|
parameters: []
|
|
68
71
|
},
|
|
69
72
|
{
|
|
@@ -72,6 +75,7 @@ var patterns_default = [
|
|
|
72
75
|
severityLevel: "High",
|
|
73
76
|
title: "Avoid using root as the last USER in Dockerfile",
|
|
74
77
|
enabled: true,
|
|
78
|
+
languages: ["Dockerfile"],
|
|
75
79
|
parameters: []
|
|
76
80
|
},
|
|
77
81
|
{
|
|
@@ -80,6 +84,7 @@ var patterns_default = [
|
|
|
80
84
|
severityLevel: "Warning",
|
|
81
85
|
title: "Use WORKDIR to Switch to a Directory",
|
|
82
86
|
enabled: true,
|
|
87
|
+
languages: ["Dockerfile"],
|
|
83
88
|
parameters: []
|
|
84
89
|
},
|
|
85
90
|
{
|
|
@@ -88,6 +93,7 @@ var patterns_default = [
|
|
|
88
93
|
severityLevel: "Warning",
|
|
89
94
|
title: "Avoid Using sudo in Dockerfiles",
|
|
90
95
|
enabled: true,
|
|
96
|
+
languages: ["Dockerfile"],
|
|
91
97
|
parameters: []
|
|
92
98
|
},
|
|
93
99
|
{
|
|
@@ -96,6 +102,7 @@ var patterns_default = [
|
|
|
96
102
|
severityLevel: "Warning",
|
|
97
103
|
title: "Avoid Using apt-get dist-upgrade",
|
|
98
104
|
enabled: true,
|
|
105
|
+
languages: ["Dockerfile"],
|
|
99
106
|
parameters: []
|
|
100
107
|
},
|
|
101
108
|
{
|
|
@@ -104,6 +111,7 @@ var patterns_default = [
|
|
|
104
111
|
severityLevel: "Warning",
|
|
105
112
|
title: "Enforce Explicit Version Tag on Docker Image",
|
|
106
113
|
enabled: true,
|
|
114
|
+
languages: ["Dockerfile"],
|
|
107
115
|
parameters: []
|
|
108
116
|
},
|
|
109
117
|
{
|
|
@@ -112,6 +120,7 @@ var patterns_default = [
|
|
|
112
120
|
severityLevel: "Warning",
|
|
113
121
|
title: "Avoid Using 'latest' Tag in Docker Images",
|
|
114
122
|
enabled: true,
|
|
123
|
+
languages: ["Dockerfile"],
|
|
115
124
|
parameters: []
|
|
116
125
|
},
|
|
117
126
|
{
|
|
@@ -120,6 +129,7 @@ var patterns_default = [
|
|
|
120
129
|
severityLevel: "Warning",
|
|
121
130
|
title: "Enforce Pinning Versions in apt-get install",
|
|
122
131
|
enabled: true,
|
|
132
|
+
languages: ["Dockerfile"],
|
|
123
133
|
parameters: []
|
|
124
134
|
},
|
|
125
135
|
{
|
|
@@ -128,6 +138,7 @@ var patterns_default = [
|
|
|
128
138
|
severityLevel: "Warning",
|
|
129
139
|
title: "Delete apt-get lists after installing packages",
|
|
130
140
|
enabled: true,
|
|
141
|
+
languages: ["Dockerfile"],
|
|
131
142
|
parameters: []
|
|
132
143
|
},
|
|
133
144
|
{
|
|
@@ -136,6 +147,7 @@ var patterns_default = [
|
|
|
136
147
|
severityLevel: "Info",
|
|
137
148
|
title: "Use ADD for Extracting Archives into an Image",
|
|
138
149
|
enabled: true,
|
|
150
|
+
languages: ["Dockerfile"],
|
|
139
151
|
parameters: []
|
|
140
152
|
},
|
|
141
153
|
{
|
|
@@ -144,6 +156,7 @@ var patterns_default = [
|
|
|
144
156
|
severityLevel: "High",
|
|
145
157
|
title: "Enforce valid UNIX port range in Dockerfile EXPOSE instruction",
|
|
146
158
|
enabled: true,
|
|
159
|
+
languages: ["Dockerfile"],
|
|
147
160
|
parameters: []
|
|
148
161
|
},
|
|
149
162
|
{
|
|
@@ -152,6 +165,7 @@ var patterns_default = [
|
|
|
152
165
|
severityLevel: "Warning",
|
|
153
166
|
title: "Avoid Multiple HEALTHCHECK Instructions in Dockerfile",
|
|
154
167
|
enabled: true,
|
|
168
|
+
languages: ["Dockerfile"],
|
|
155
169
|
parameters: []
|
|
156
170
|
},
|
|
157
171
|
{
|
|
@@ -160,6 +174,7 @@ var patterns_default = [
|
|
|
160
174
|
severityLevel: "Warning",
|
|
161
175
|
title: "Pin Versions in pip Installations",
|
|
162
176
|
enabled: true,
|
|
177
|
+
languages: ["Dockerfile"],
|
|
163
178
|
parameters: []
|
|
164
179
|
},
|
|
165
180
|
{
|
|
@@ -168,6 +183,7 @@ var patterns_default = [
|
|
|
168
183
|
severityLevel: "Warning",
|
|
169
184
|
title: "Enforce Use of -y Switch in apt-get Install",
|
|
170
185
|
enabled: true,
|
|
186
|
+
languages: ["Dockerfile"],
|
|
171
187
|
parameters: []
|
|
172
188
|
},
|
|
173
189
|
{
|
|
@@ -176,6 +192,7 @@ var patterns_default = [
|
|
|
176
192
|
severityLevel: "Warning",
|
|
177
193
|
title: "Enforce Use of --no-install-recommends with apt-get install",
|
|
178
194
|
enabled: true,
|
|
195
|
+
languages: ["Dockerfile"],
|
|
179
196
|
parameters: []
|
|
180
197
|
},
|
|
181
198
|
{
|
|
@@ -184,6 +201,7 @@ var patterns_default = [
|
|
|
184
201
|
severityLevel: "Warning",
|
|
185
202
|
title: "Pin Versions in npm Install",
|
|
186
203
|
enabled: false,
|
|
204
|
+
languages: ["Dockerfile"],
|
|
187
205
|
parameters: []
|
|
188
206
|
},
|
|
189
207
|
{
|
|
@@ -192,6 +210,7 @@ var patterns_default = [
|
|
|
192
210
|
severityLevel: "Warning",
|
|
193
211
|
title: "Pin Versions in apk add",
|
|
194
212
|
enabled: false,
|
|
213
|
+
languages: ["Dockerfile"],
|
|
195
214
|
parameters: []
|
|
196
215
|
},
|
|
197
216
|
{
|
|
@@ -200,6 +219,7 @@ var patterns_default = [
|
|
|
200
219
|
severityLevel: "Warning",
|
|
201
220
|
title: "Use --no-cache Switch for apk Package Installation",
|
|
202
221
|
enabled: false,
|
|
222
|
+
languages: ["Dockerfile"],
|
|
203
223
|
parameters: []
|
|
204
224
|
},
|
|
205
225
|
{
|
|
@@ -208,6 +228,7 @@ var patterns_default = [
|
|
|
208
228
|
severityLevel: "Info",
|
|
209
229
|
title: "Use COPY Instead of ADD for Files and Folders",
|
|
210
230
|
enabled: true,
|
|
231
|
+
languages: ["Dockerfile"],
|
|
211
232
|
parameters: []
|
|
212
233
|
},
|
|
213
234
|
{
|
|
@@ -216,6 +237,7 @@ var patterns_default = [
|
|
|
216
237
|
severityLevel: "High",
|
|
217
238
|
title: "Enforce COPY Destination Ends with Slash for Multiple Sources",
|
|
218
239
|
enabled: true,
|
|
240
|
+
languages: ["Dockerfile"],
|
|
219
241
|
parameters: []
|
|
220
242
|
},
|
|
221
243
|
{
|
|
@@ -224,6 +246,7 @@ var patterns_default = [
|
|
|
224
246
|
severityLevel: "High",
|
|
225
247
|
title: "Enforce COPY --from References Defined FROM Alias",
|
|
226
248
|
enabled: true,
|
|
249
|
+
languages: ["Dockerfile"],
|
|
227
250
|
parameters: []
|
|
228
251
|
},
|
|
229
252
|
{
|
|
@@ -232,6 +255,7 @@ var patterns_default = [
|
|
|
232
255
|
severityLevel: "High",
|
|
233
256
|
title: "Avoid COPY --from referencing its own FROM alias",
|
|
234
257
|
enabled: true,
|
|
258
|
+
languages: ["Dockerfile"],
|
|
235
259
|
parameters: []
|
|
236
260
|
},
|
|
237
261
|
{
|
|
@@ -240,6 +264,7 @@ var patterns_default = [
|
|
|
240
264
|
severityLevel: "High",
|
|
241
265
|
title: "Enforce Unique FROM Aliases (Stage Names) in Dockerfiles",
|
|
242
266
|
enabled: true,
|
|
267
|
+
languages: ["Dockerfile"],
|
|
243
268
|
parameters: []
|
|
244
269
|
},
|
|
245
270
|
{
|
|
@@ -248,6 +273,7 @@ var patterns_default = [
|
|
|
248
273
|
severityLevel: "Warning",
|
|
249
274
|
title: "Use JSON Array Notation for CMD and ENTRYPOINT Arguments",
|
|
250
275
|
enabled: false,
|
|
276
|
+
languages: ["Dockerfile"],
|
|
251
277
|
parameters: []
|
|
252
278
|
},
|
|
253
279
|
{
|
|
@@ -256,6 +282,7 @@ var patterns_default = [
|
|
|
256
282
|
severityLevel: "High",
|
|
257
283
|
title: "Enforce Use of Allowed Registry in FROM Image",
|
|
258
284
|
enabled: false,
|
|
285
|
+
languages: ["Dockerfile"],
|
|
259
286
|
parameters: []
|
|
260
287
|
},
|
|
261
288
|
{
|
|
@@ -264,6 +291,7 @@ var patterns_default = [
|
|
|
264
291
|
severityLevel: "Warning",
|
|
265
292
|
title: "Avoid Using apt in Dockerfiles; Use apt-get or apt-cache Instead",
|
|
266
293
|
enabled: false,
|
|
294
|
+
languages: ["Dockerfile"],
|
|
267
295
|
parameters: []
|
|
268
296
|
},
|
|
269
297
|
{
|
|
@@ -272,6 +300,7 @@ var patterns_default = [
|
|
|
272
300
|
severityLevel: "Warning",
|
|
273
301
|
title: "Pin Versions in gem install",
|
|
274
302
|
enabled: false,
|
|
303
|
+
languages: ["Dockerfile"],
|
|
275
304
|
parameters: []
|
|
276
305
|
},
|
|
277
306
|
{
|
|
@@ -280,6 +309,7 @@ var patterns_default = [
|
|
|
280
309
|
severityLevel: "Warning",
|
|
281
310
|
title: "Avoid Using --platform Flag with FROM Instruction",
|
|
282
311
|
enabled: false,
|
|
312
|
+
languages: ["Dockerfile"],
|
|
283
313
|
parameters: []
|
|
284
314
|
},
|
|
285
315
|
{
|
|
@@ -288,6 +318,7 @@ var patterns_default = [
|
|
|
288
318
|
severityLevel: "High",
|
|
289
319
|
title: "Enforce using -y switch with yum install",
|
|
290
320
|
enabled: false,
|
|
321
|
+
languages: ["Dockerfile"],
|
|
291
322
|
parameters: []
|
|
292
323
|
},
|
|
293
324
|
{
|
|
@@ -296,6 +327,7 @@ var patterns_default = [
|
|
|
296
327
|
severityLevel: "Warning",
|
|
297
328
|
title: "Enforce yum clean all after yum command",
|
|
298
329
|
enabled: false,
|
|
330
|
+
languages: ["Dockerfile"],
|
|
299
331
|
parameters: []
|
|
300
332
|
},
|
|
301
333
|
{
|
|
@@ -304,6 +336,7 @@ var patterns_default = [
|
|
|
304
336
|
severityLevel: "Warning",
|
|
305
337
|
title: "Specify Version When Installing Packages with yum",
|
|
306
338
|
enabled: false,
|
|
339
|
+
languages: ["Dockerfile"],
|
|
307
340
|
parameters: []
|
|
308
341
|
},
|
|
309
342
|
{
|
|
@@ -312,6 +345,7 @@ var patterns_default = [
|
|
|
312
345
|
severityLevel: "High",
|
|
313
346
|
title: "Enforce Non-Interactive Switch in zypper Install Commands",
|
|
314
347
|
enabled: false,
|
|
348
|
+
languages: ["Dockerfile"],
|
|
315
349
|
parameters: []
|
|
316
350
|
},
|
|
317
351
|
{
|
|
@@ -320,6 +354,7 @@ var patterns_default = [
|
|
|
320
354
|
severityLevel: "Warning",
|
|
321
355
|
title: "Avoid Using zypper dist-upgrade",
|
|
322
356
|
enabled: false,
|
|
357
|
+
languages: ["Dockerfile"],
|
|
323
358
|
parameters: []
|
|
324
359
|
},
|
|
325
360
|
{
|
|
@@ -328,6 +363,7 @@ var patterns_default = [
|
|
|
328
363
|
severityLevel: "Warning",
|
|
329
364
|
title: "Enforce zypper clean after zypper use",
|
|
330
365
|
enabled: false,
|
|
366
|
+
languages: ["Dockerfile"],
|
|
331
367
|
parameters: []
|
|
332
368
|
},
|
|
333
369
|
{
|
|
@@ -336,6 +372,7 @@ var patterns_default = [
|
|
|
336
372
|
severityLevel: "Warning",
|
|
337
373
|
title: "Enforce Version Pinning with zypper install",
|
|
338
374
|
enabled: false,
|
|
375
|
+
languages: ["Dockerfile"],
|
|
339
376
|
parameters: []
|
|
340
377
|
},
|
|
341
378
|
{
|
|
@@ -344,6 +381,7 @@ var patterns_default = [
|
|
|
344
381
|
severityLevel: "Warning",
|
|
345
382
|
title: "Enforce Use of -y Switch in dnf install",
|
|
346
383
|
enabled: false,
|
|
384
|
+
languages: ["Dockerfile"],
|
|
347
385
|
parameters: []
|
|
348
386
|
},
|
|
349
387
|
{
|
|
@@ -352,6 +390,7 @@ var patterns_default = [
|
|
|
352
390
|
severityLevel: "Warning",
|
|
353
391
|
title: "Enforce dnf clean all After dnf Command",
|
|
354
392
|
enabled: false,
|
|
393
|
+
languages: ["Dockerfile"],
|
|
355
394
|
parameters: []
|
|
356
395
|
},
|
|
357
396
|
{
|
|
@@ -360,6 +399,7 @@ var patterns_default = [
|
|
|
360
399
|
severityLevel: "Warning",
|
|
361
400
|
title: "Enforce Version Pinning with dnf install",
|
|
362
401
|
enabled: false,
|
|
402
|
+
languages: ["Dockerfile"],
|
|
363
403
|
parameters: []
|
|
364
404
|
},
|
|
365
405
|
{
|
|
@@ -368,6 +408,7 @@ var patterns_default = [
|
|
|
368
408
|
severityLevel: "Warning",
|
|
369
409
|
title: "Avoid Using pip Cache Directory with pip install",
|
|
370
410
|
enabled: false,
|
|
411
|
+
languages: ["Dockerfile"],
|
|
371
412
|
parameters: []
|
|
372
413
|
},
|
|
373
414
|
{
|
|
@@ -376,6 +417,7 @@ var patterns_default = [
|
|
|
376
417
|
severityLevel: "Error",
|
|
377
418
|
title: "Avoid ONBUILD Triggering ONBUILD, FROM, or MAINTAINER",
|
|
378
419
|
enabled: false,
|
|
420
|
+
languages: ["Dockerfile"],
|
|
379
421
|
parameters: []
|
|
380
422
|
},
|
|
381
423
|
{
|
|
@@ -384,6 +426,7 @@ var patterns_default = [
|
|
|
384
426
|
severityLevel: "Warning",
|
|
385
427
|
title: "Avoid referring to environment variables within the same ENV statement where they are defined",
|
|
386
428
|
enabled: false,
|
|
429
|
+
languages: ["Dockerfile"],
|
|
387
430
|
parameters: []
|
|
388
431
|
},
|
|
389
432
|
{
|
|
@@ -392,6 +435,7 @@ var patterns_default = [
|
|
|
392
435
|
severityLevel: "Warning",
|
|
393
436
|
title: "Avoid COPY to Relative Destination Without WORKDIR Set",
|
|
394
437
|
enabled: false,
|
|
438
|
+
languages: ["Dockerfile"],
|
|
395
439
|
parameters: []
|
|
396
440
|
},
|
|
397
441
|
{
|
|
@@ -400,6 +444,7 @@ var patterns_default = [
|
|
|
400
444
|
severityLevel: "Warning",
|
|
401
445
|
title: "Enforce useradd with -l flag for high UID",
|
|
402
446
|
enabled: false,
|
|
447
|
+
languages: ["Dockerfile"],
|
|
403
448
|
parameters: []
|
|
404
449
|
},
|
|
405
450
|
{
|
|
@@ -408,6 +453,7 @@ var patterns_default = [
|
|
|
408
453
|
severityLevel: "Info",
|
|
409
454
|
title: "Enforce wget Progress Flag Usage",
|
|
410
455
|
enabled: false,
|
|
456
|
+
languages: ["Dockerfile"],
|
|
411
457
|
parameters: []
|
|
412
458
|
},
|
|
413
459
|
{
|
|
@@ -416,6 +462,7 @@ var patterns_default = [
|
|
|
416
462
|
severityLevel: "High",
|
|
417
463
|
title: "Enforce Valid Label Key",
|
|
418
464
|
enabled: false,
|
|
465
|
+
languages: ["Dockerfile"],
|
|
419
466
|
parameters: []
|
|
420
467
|
},
|
|
421
468
|
{
|
|
@@ -424,6 +471,7 @@ var patterns_default = [
|
|
|
424
471
|
severityLevel: "Warning",
|
|
425
472
|
title: "Enforce Required Label Presence",
|
|
426
473
|
enabled: false,
|
|
474
|
+
languages: ["Dockerfile"],
|
|
427
475
|
parameters: []
|
|
428
476
|
},
|
|
429
477
|
{
|
|
@@ -432,6 +480,7 @@ var patterns_default = [
|
|
|
432
480
|
severityLevel: "Warning",
|
|
433
481
|
title: "Avoid Superfluous Labels in Dockerfile",
|
|
434
482
|
enabled: false,
|
|
483
|
+
languages: ["Dockerfile"],
|
|
435
484
|
parameters: []
|
|
436
485
|
},
|
|
437
486
|
{
|
|
@@ -440,6 +489,7 @@ var patterns_default = [
|
|
|
440
489
|
severityLevel: "Warning",
|
|
441
490
|
title: "Avoid Empty Labels in Dockerfile",
|
|
442
491
|
enabled: false,
|
|
492
|
+
languages: ["Dockerfile"],
|
|
443
493
|
parameters: []
|
|
444
494
|
},
|
|
445
495
|
{
|
|
@@ -448,6 +498,7 @@ var patterns_default = [
|
|
|
448
498
|
severityLevel: "Warning",
|
|
449
499
|
title: "Enforce Valid URL in Label",
|
|
450
500
|
enabled: false,
|
|
501
|
+
languages: ["Dockerfile"],
|
|
451
502
|
parameters: []
|
|
452
503
|
},
|
|
453
504
|
{
|
|
@@ -456,6 +507,7 @@ var patterns_default = [
|
|
|
456
507
|
severityLevel: "Warning",
|
|
457
508
|
title: "Enforce RFC3339 Time Format in Labels",
|
|
458
509
|
enabled: false,
|
|
510
|
+
languages: ["Dockerfile"],
|
|
459
511
|
parameters: []
|
|
460
512
|
},
|
|
461
513
|
{
|
|
@@ -464,6 +516,7 @@ var patterns_default = [
|
|
|
464
516
|
severityLevel: "Warning",
|
|
465
517
|
title: "Enforce Valid SPDX License Identifier in Label",
|
|
466
518
|
enabled: false,
|
|
519
|
+
languages: ["Dockerfile"],
|
|
467
520
|
parameters: []
|
|
468
521
|
},
|
|
469
522
|
{
|
|
@@ -472,6 +525,7 @@ var patterns_default = [
|
|
|
472
525
|
severityLevel: "Warning",
|
|
473
526
|
title: "Enforce Valid Git Hash in Label",
|
|
474
527
|
enabled: false,
|
|
528
|
+
languages: ["Dockerfile"],
|
|
475
529
|
parameters: []
|
|
476
530
|
},
|
|
477
531
|
{
|
|
@@ -480,6 +534,7 @@ var patterns_default = [
|
|
|
480
534
|
severityLevel: "Warning",
|
|
481
535
|
title: "Enforce Semantic Versioning in Label",
|
|
482
536
|
enabled: false,
|
|
537
|
+
languages: ["Dockerfile"],
|
|
483
538
|
parameters: []
|
|
484
539
|
},
|
|
485
540
|
{
|
|
@@ -488,6 +543,7 @@ var patterns_default = [
|
|
|
488
543
|
severityLevel: "Warning",
|
|
489
544
|
title: "Enforce HEALTHCHECK Instruction Presence",
|
|
490
545
|
enabled: false,
|
|
546
|
+
languages: ["Dockerfile"],
|
|
491
547
|
parameters: []
|
|
492
548
|
},
|
|
493
549
|
{
|
|
@@ -496,6 +552,7 @@ var patterns_default = [
|
|
|
496
552
|
severityLevel: "Warning",
|
|
497
553
|
title: "Enforce Valid Email Format in Label",
|
|
498
554
|
enabled: false,
|
|
555
|
+
languages: ["Dockerfile"],
|
|
499
556
|
parameters: []
|
|
500
557
|
},
|
|
501
558
|
{
|
|
@@ -504,6 +561,7 @@ var patterns_default = [
|
|
|
504
561
|
severityLevel: "Warning",
|
|
505
562
|
title: "Consolidate Multiple Consecutive RUN Instructions",
|
|
506
563
|
enabled: false,
|
|
564
|
+
languages: ["Dockerfile"],
|
|
507
565
|
parameters: []
|
|
508
566
|
},
|
|
509
567
|
{
|
|
@@ -512,6 +570,7 @@ var patterns_default = [
|
|
|
512
570
|
severityLevel: "Warning",
|
|
513
571
|
title: "Enforce yarn cache clean after yarn install",
|
|
514
572
|
enabled: false,
|
|
573
|
+
languages: ["Dockerfile"],
|
|
515
574
|
parameters: []
|
|
516
575
|
},
|
|
517
576
|
{
|
|
@@ -520,6 +579,7 @@ var patterns_default = [
|
|
|
520
579
|
severityLevel: "High",
|
|
521
580
|
title: "Enforce Valid Instruction Order in Dockerfile",
|
|
522
581
|
enabled: false,
|
|
582
|
+
languages: ["Dockerfile"],
|
|
523
583
|
parameters: []
|
|
524
584
|
},
|
|
525
585
|
{
|
|
@@ -528,6 +588,7 @@ var patterns_default = [
|
|
|
528
588
|
severityLevel: "Warning",
|
|
529
589
|
title: "Avoid Deprecated MAINTAINER Instruction",
|
|
530
590
|
enabled: true,
|
|
591
|
+
languages: ["Dockerfile"],
|
|
531
592
|
parameters: []
|
|
532
593
|
},
|
|
533
594
|
{
|
|
@@ -536,6 +597,7 @@ var patterns_default = [
|
|
|
536
597
|
severityLevel: "Info",
|
|
537
598
|
title: "Enforce Consistent Use of Wget or Curl",
|
|
538
599
|
enabled: true,
|
|
600
|
+
languages: ["Dockerfile"],
|
|
539
601
|
parameters: []
|
|
540
602
|
},
|
|
541
603
|
{
|
|
@@ -544,6 +606,7 @@ var patterns_default = [
|
|
|
544
606
|
severityLevel: "Warning",
|
|
545
607
|
title: "Avoid Multiple CMD Instructions in Dockerfile",
|
|
546
608
|
enabled: true,
|
|
609
|
+
languages: ["Dockerfile"],
|
|
547
610
|
parameters: []
|
|
548
611
|
},
|
|
549
612
|
{
|
|
@@ -552,6 +615,7 @@ var patterns_default = [
|
|
|
552
615
|
severityLevel: "Warning",
|
|
553
616
|
title: "Avoid Multiple ENTRYPOINT Instructions",
|
|
554
617
|
enabled: true,
|
|
618
|
+
languages: ["Dockerfile"],
|
|
555
619
|
parameters: []
|
|
556
620
|
},
|
|
557
621
|
{
|
|
@@ -560,6 +624,7 @@ var patterns_default = [
|
|
|
560
624
|
severityLevel: "Info",
|
|
561
625
|
title: "Use SHELL Instruction to Change Default Shell",
|
|
562
626
|
enabled: true,
|
|
627
|
+
languages: ["Dockerfile"],
|
|
563
628
|
parameters: []
|
|
564
629
|
},
|
|
565
630
|
{
|
|
@@ -568,6 +633,7 @@ var patterns_default = [
|
|
|
568
633
|
severityLevel: "High",
|
|
569
634
|
title: "Set SHELL option -o pipefail before RUN with pipe",
|
|
570
635
|
enabled: false,
|
|
636
|
+
languages: ["Dockerfile"],
|
|
571
637
|
parameters: []
|
|
572
638
|
},
|
|
573
639
|
{
|
|
@@ -576,6 +642,7 @@ var patterns_default = [
|
|
|
576
642
|
severityLevel: "Info",
|
|
577
643
|
title: "Escape Literal Dollar Signs in Double Quotes",
|
|
578
644
|
enabled: true,
|
|
645
|
+
languages: ["Dockerfile"],
|
|
579
646
|
parameters: []
|
|
580
647
|
},
|
|
581
648
|
{
|
|
@@ -584,6 +651,7 @@ var patterns_default = [
|
|
|
584
651
|
severityLevel: "Info",
|
|
585
652
|
title: "Avoid Unnecessary Escape Sequences in Shell Scripts",
|
|
586
653
|
enabled: true,
|
|
654
|
+
languages: ["Dockerfile"],
|
|
587
655
|
parameters: []
|
|
588
656
|
},
|
|
589
657
|
{
|
|
@@ -592,6 +660,7 @@ var patterns_default = [
|
|
|
592
660
|
severityLevel: "High",
|
|
593
661
|
title: "Remove Space After '=' in Variable Assignment",
|
|
594
662
|
enabled: true,
|
|
663
|
+
languages: ["Dockerfile"],
|
|
595
664
|
parameters: []
|
|
596
665
|
},
|
|
597
666
|
{
|
|
@@ -600,6 +669,7 @@ var patterns_default = [
|
|
|
600
669
|
severityLevel: "High",
|
|
601
670
|
title: "Enforce Semicolon or Linefeed Before Shell Keywords like done",
|
|
602
671
|
enabled: true,
|
|
672
|
+
languages: ["Dockerfile"],
|
|
603
673
|
parameters: []
|
|
604
674
|
},
|
|
605
675
|
{
|
|
@@ -608,6 +678,7 @@ var patterns_default = [
|
|
|
608
678
|
severityLevel: "High",
|
|
609
679
|
title: "Avoid Unicode Non-Breaking and Zero-Width Spaces",
|
|
610
680
|
enabled: true,
|
|
681
|
+
languages: ["Dockerfile"],
|
|
611
682
|
parameters: []
|
|
612
683
|
},
|
|
613
684
|
{
|
|
@@ -616,6 +687,7 @@ var patterns_default = [
|
|
|
616
687
|
severityLevel: "High",
|
|
617
688
|
title: "Enforce Space After Negation in Shell Conditionals",
|
|
618
689
|
enabled: true,
|
|
690
|
+
languages: ["Dockerfile"],
|
|
619
691
|
parameters: []
|
|
620
692
|
},
|
|
621
693
|
{
|
|
@@ -624,6 +696,7 @@ var patterns_default = [
|
|
|
624
696
|
severityLevel: "Warning",
|
|
625
697
|
title: "Avoid Using Both '&' and ';' to Terminate Commands",
|
|
626
698
|
enabled: true,
|
|
699
|
+
languages: ["Dockerfile"],
|
|
627
700
|
parameters: []
|
|
628
701
|
},
|
|
629
702
|
{
|
|
@@ -632,6 +705,7 @@ var patterns_default = [
|
|
|
632
705
|
severityLevel: "High",
|
|
633
706
|
title: "Avoid Declaring Parameters in Shell Functions",
|
|
634
707
|
enabled: true,
|
|
708
|
+
languages: ["Dockerfile"],
|
|
635
709
|
parameters: []
|
|
636
710
|
},
|
|
637
711
|
{
|
|
@@ -640,6 +714,7 @@ var patterns_default = [
|
|
|
640
714
|
severityLevel: "High",
|
|
641
715
|
title: "Avoid Using $ on Left Side of Assignments",
|
|
642
716
|
enabled: true,
|
|
717
|
+
languages: ["Dockerfile"],
|
|
643
718
|
parameters: []
|
|
644
719
|
},
|
|
645
720
|
{
|
|
@@ -648,6 +723,7 @@ var patterns_default = [
|
|
|
648
723
|
severityLevel: "High",
|
|
649
724
|
title: "Avoid Spaces Around '=' in Shell Variable Assignments",
|
|
650
725
|
enabled: true,
|
|
726
|
+
languages: ["Dockerfile"],
|
|
651
727
|
parameters: []
|
|
652
728
|
},
|
|
653
729
|
{
|
|
@@ -656,6 +732,7 @@ var patterns_default = [
|
|
|
656
732
|
severityLevel: "High",
|
|
657
733
|
title: "Enforce Correct Use of Backticks for Command Expansion",
|
|
658
734
|
enabled: true,
|
|
735
|
+
languages: ["Dockerfile"],
|
|
659
736
|
parameters: []
|
|
660
737
|
},
|
|
661
738
|
{
|
|
@@ -664,6 +741,7 @@ var patterns_default = [
|
|
|
664
741
|
severityLevel: "High",
|
|
665
742
|
title: "Detect Unclosed Double-Quoted Strings",
|
|
666
743
|
enabled: true,
|
|
744
|
+
languages: ["Dockerfile"],
|
|
667
745
|
parameters: []
|
|
668
746
|
},
|
|
669
747
|
{
|
|
@@ -672,6 +750,7 @@ var patterns_default = [
|
|
|
672
750
|
severityLevel: "Warning",
|
|
673
751
|
title: "Detect Suspected Misplaced End Quote in Dockerfile",
|
|
674
752
|
enabled: true,
|
|
753
|
+
languages: ["Dockerfile"],
|
|
675
754
|
parameters: []
|
|
676
755
|
},
|
|
677
756
|
{
|
|
@@ -680,6 +759,7 @@ var patterns_default = [
|
|
|
680
759
|
severityLevel: "High",
|
|
681
760
|
title: "Enforce lowercase shell script keywords",
|
|
682
761
|
enabled: true,
|
|
762
|
+
languages: ["Dockerfile"],
|
|
683
763
|
parameters: []
|
|
684
764
|
},
|
|
685
765
|
{
|
|
@@ -688,6 +768,7 @@ var patterns_default = [
|
|
|
688
768
|
severityLevel: "Warning",
|
|
689
769
|
title: "Avoid Literal Curly Braces Without Proper Syntax or Quoting",
|
|
690
770
|
enabled: true,
|
|
771
|
+
languages: ["Dockerfile"],
|
|
691
772
|
parameters: []
|
|
692
773
|
},
|
|
693
774
|
{
|
|
@@ -696,6 +777,7 @@ var patterns_default = [
|
|
|
696
777
|
severityLevel: "High",
|
|
697
778
|
title: "Avoid Using Dollar Sign on Iterator Variable in For Loops",
|
|
698
779
|
enabled: true,
|
|
780
|
+
languages: ["Dockerfile"],
|
|
699
781
|
parameters: []
|
|
700
782
|
},
|
|
701
783
|
{
|
|
@@ -704,6 +786,7 @@ var patterns_default = [
|
|
|
704
786
|
severityLevel: "Warning",
|
|
705
787
|
title: "Enforce Braces When Expanding Arrays",
|
|
706
788
|
enabled: true,
|
|
789
|
+
languages: ["Dockerfile"],
|
|
707
790
|
parameters: []
|
|
708
791
|
},
|
|
709
792
|
{
|
|
@@ -712,6 +795,7 @@ var patterns_default = [
|
|
|
712
795
|
severityLevel: "High",
|
|
713
796
|
title: "Enforce Space Between Function Name and Body in Shell Scripts",
|
|
714
797
|
enabled: true,
|
|
798
|
+
languages: ["Dockerfile"],
|
|
715
799
|
parameters: []
|
|
716
800
|
},
|
|
717
801
|
{
|
|
@@ -720,6 +804,7 @@ var patterns_default = [
|
|
|
720
804
|
severityLevel: "High",
|
|
721
805
|
title: "Avoid Using Unexpected '==' in Shell Scripts",
|
|
722
806
|
enabled: true,
|
|
807
|
+
languages: ["Dockerfile"],
|
|
723
808
|
parameters: []
|
|
724
809
|
},
|
|
725
810
|
{
|
|
@@ -728,6 +813,7 @@ var patterns_default = [
|
|
|
728
813
|
severityLevel: "Warning",
|
|
729
814
|
title: "Quote or Escape Special Characters in eval",
|
|
730
815
|
enabled: true,
|
|
816
|
+
languages: ["Dockerfile"],
|
|
731
817
|
parameters: []
|
|
732
818
|
},
|
|
733
819
|
{
|
|
@@ -736,6 +822,7 @@ var patterns_default = [
|
|
|
736
822
|
severityLevel: "Info",
|
|
737
823
|
title: "Enforce Space Before Comment Hash",
|
|
738
824
|
enabled: true,
|
|
825
|
+
languages: ["Dockerfile"],
|
|
739
826
|
parameters: []
|
|
740
827
|
},
|
|
741
828
|
{
|
|
@@ -744,6 +831,7 @@ var patterns_default = [
|
|
|
744
831
|
severityLevel: "Info",
|
|
745
832
|
title: "Avoid Useless Use of cat",
|
|
746
833
|
enabled: true,
|
|
834
|
+
languages: ["Dockerfile"],
|
|
747
835
|
parameters: []
|
|
748
836
|
},
|
|
749
837
|
{
|
|
@@ -752,6 +840,7 @@ var patterns_default = [
|
|
|
752
840
|
severityLevel: "High",
|
|
753
841
|
title: "Avoid Using 'A && B || C' Instead of If-Then-Else",
|
|
754
842
|
enabled: true,
|
|
843
|
+
languages: ["Dockerfile"],
|
|
755
844
|
parameters: []
|
|
756
845
|
},
|
|
757
846
|
{
|
|
@@ -760,6 +849,7 @@ var patterns_default = [
|
|
|
760
849
|
severityLevel: "High",
|
|
761
850
|
title: "Avoid Unescaped Single Quotes Outside of Quotes in Shell Commands",
|
|
762
851
|
enabled: true,
|
|
852
|
+
languages: ["Dockerfile"],
|
|
763
853
|
parameters: []
|
|
764
854
|
},
|
|
765
855
|
{
|
|
@@ -768,6 +858,7 @@ var patterns_default = [
|
|
|
768
858
|
severityLevel: "Warning",
|
|
769
859
|
title: "Avoid Using echo for Escape Sequences; Use printf Instead",
|
|
770
860
|
enabled: true,
|
|
861
|
+
languages: ["Dockerfile"],
|
|
771
862
|
parameters: []
|
|
772
863
|
},
|
|
773
864
|
{
|
|
@@ -776,6 +867,7 @@ var patterns_default = [
|
|
|
776
867
|
severityLevel: "High",
|
|
777
868
|
title: "Enforce Safe Glob Usage to Avoid Misinterpretation as Options",
|
|
778
869
|
enabled: true,
|
|
870
|
+
languages: ["Dockerfile"],
|
|
779
871
|
parameters: []
|
|
780
872
|
},
|
|
781
873
|
{
|
|
@@ -784,6 +876,7 @@ var patterns_default = [
|
|
|
784
876
|
severityLevel: "High",
|
|
785
877
|
title: "Avoid Using Undefined Features in POSIX sh",
|
|
786
878
|
enabled: false,
|
|
879
|
+
languages: ["Dockerfile"],
|
|
787
880
|
parameters: []
|
|
788
881
|
},
|
|
789
882
|
{
|
|
@@ -792,6 +885,7 @@ var patterns_default = [
|
|
|
792
885
|
severityLevel: "Warning",
|
|
793
886
|
title: "Quote to Prevent Word Splitting",
|
|
794
887
|
enabled: true,
|
|
888
|
+
languages: ["Dockerfile"],
|
|
795
889
|
parameters: []
|
|
796
890
|
},
|
|
797
891
|
{
|
|
@@ -800,6 +894,7 @@ var patterns_default = [
|
|
|
800
894
|
severityLevel: "High",
|
|
801
895
|
title: "Enforce double quoting to prevent globbing and word splitting",
|
|
802
896
|
enabled: true,
|
|
897
|
+
languages: ["Dockerfile"],
|
|
803
898
|
parameters: []
|
|
804
899
|
},
|
|
805
900
|
{
|
|
@@ -808,6 +903,7 @@ var patterns_default = [
|
|
|
808
903
|
severityLevel: "Warning",
|
|
809
904
|
title: "Avoid Incorrectly Nested or Unnecessary Double Quotes in Shell Scripts",
|
|
810
905
|
enabled: true,
|
|
906
|
+
languages: ["Dockerfile"],
|
|
811
907
|
parameters: []
|
|
812
908
|
},
|
|
813
909
|
{
|
|
@@ -816,6 +912,7 @@ var patterns_default = [
|
|
|
816
912
|
severityLevel: "High",
|
|
817
913
|
title: "Detect Unassigned Variable References in Shell Scripts",
|
|
818
914
|
enabled: true,
|
|
915
|
+
languages: ["Dockerfile"],
|
|
819
916
|
parameters: []
|
|
820
917
|
},
|
|
821
918
|
{
|
|
@@ -824,6 +921,7 @@ var patterns_default = [
|
|
|
824
921
|
severityLevel: "High",
|
|
825
922
|
title: "Declare and Assign Separately to Avoid Masking Return Values",
|
|
826
923
|
enabled: false,
|
|
924
|
+
languages: ["Dockerfile"],
|
|
827
925
|
parameters: []
|
|
828
926
|
},
|
|
829
927
|
{
|
|
@@ -832,6 +930,7 @@ var patterns_default = [
|
|
|
832
930
|
severityLevel: "High",
|
|
833
931
|
title: "Ensure cd Command Failure is Handled",
|
|
834
932
|
enabled: true,
|
|
933
|
+
languages: ["Dockerfile"],
|
|
835
934
|
parameters: []
|
|
836
935
|
}
|
|
837
936
|
];
|
|
@@ -842,7 +941,7 @@ var descriptor = {
|
|
|
842
941
|
displayName: "Hadolint",
|
|
843
942
|
preferredVersion: "2.14.0",
|
|
844
943
|
languages: ["Dockerfile"],
|
|
845
|
-
filePatterns: ["**/Dockerfile", "**/*.dockerfile", "**/Dockerfile.*"],
|
|
944
|
+
filePatterns: ["**/Dockerfile", "**/*.dockerfile", "**/*.Dockerfile", "**/Dockerfile.*"],
|
|
846
945
|
supportedOS: ["linux", "darwin", "win32"],
|
|
847
946
|
supportedArch: ["x64", "arm64"],
|
|
848
947
|
supportedRunners: ["local", "container"]
|
|
@@ -864,6 +963,39 @@ function ruleMetadata(code) {
|
|
|
864
963
|
return PATTERN_META.get(patternId) ?? { category: "BestPractice", severity: "Info" };
|
|
865
964
|
}
|
|
866
965
|
var BINARY = "hadolint";
|
|
966
|
+
var SHELLCHECK_CODE_RENAMES = {
|
|
967
|
+
SC1072: "SC1010",
|
|
968
|
+
// semicolon before `done`
|
|
969
|
+
SC2281: "SC1066",
|
|
970
|
+
// `$` on LHS of assignment
|
|
971
|
+
SC2283: "SC1068",
|
|
972
|
+
// spaces around `=`
|
|
973
|
+
SC1089: "SC1081",
|
|
974
|
+
// lowercase keywords
|
|
975
|
+
SC2128: "SC1087",
|
|
976
|
+
// `${arr[0]}` braces
|
|
977
|
+
SC2284: "SC1097",
|
|
978
|
+
// unexpected `==`
|
|
979
|
+
SC3009: "SC1098",
|
|
980
|
+
// quote/escape in `eval`
|
|
981
|
+
SC3046: "SC2039"
|
|
982
|
+
// POSIX `source`
|
|
983
|
+
};
|
|
984
|
+
function resolveRuleCode(code) {
|
|
985
|
+
return SHELLCHECK_CODE_RENAMES[code] ?? code;
|
|
986
|
+
}
|
|
987
|
+
function severityToHadolintFlag(severity) {
|
|
988
|
+
switch (severity) {
|
|
989
|
+
case "Error":
|
|
990
|
+
return "--error";
|
|
991
|
+
case "Info":
|
|
992
|
+
return "--info";
|
|
993
|
+
case "High":
|
|
994
|
+
case "Warning":
|
|
995
|
+
default:
|
|
996
|
+
return "--warning";
|
|
997
|
+
}
|
|
998
|
+
}
|
|
867
999
|
var PLATFORM_MAP = {
|
|
868
1000
|
"darwin-arm64": "macos-arm64",
|
|
869
1001
|
"darwin-x64": "macos-x86_64",
|
|
@@ -1051,6 +1183,13 @@ var adapter = {
|
|
|
1051
1183
|
const args = ["--format", "json"];
|
|
1052
1184
|
if (codacyConfig.useLocalConfigurationFile && codacyConfig.localConfigurationFile) {
|
|
1053
1185
|
args.push("--config", codacyConfig.localConfigurationFile);
|
|
1186
|
+
} else {
|
|
1187
|
+
for (const pattern of codacyConfig.patterns) {
|
|
1188
|
+
if (!pattern.patternId.startsWith(`${TOOL_ID}_`)) continue;
|
|
1189
|
+
const code = pattern.patternId.slice(TOOL_ID.length + 1);
|
|
1190
|
+
const flag = severityToHadolintFlag(PATTERN_META.get(pattern.patternId)?.severity);
|
|
1191
|
+
args.push(flag, code);
|
|
1192
|
+
}
|
|
1054
1193
|
}
|
|
1055
1194
|
args.push(...absoluteFiles);
|
|
1056
1195
|
try {
|
|
@@ -1096,11 +1235,12 @@ var adapter = {
|
|
|
1096
1235
|
const lines = await (0, import_tooling.readFileLines)(absoluteFilePath);
|
|
1097
1236
|
const relPath = import_path.default.isAbsolute(filePath) ? import_path.default.relative(ctx.repositoryRoot, filePath) : filePath;
|
|
1098
1237
|
for (const finding of fileFindings) {
|
|
1099
|
-
const
|
|
1238
|
+
const canonicalCode = resolveRuleCode(finding.code);
|
|
1239
|
+
const patternId = `${TOOL_ID}_${canonicalCode}`;
|
|
1100
1240
|
if (enabledPatterns.size > 0 && !enabledPatterns.has(patternId)) {
|
|
1101
1241
|
continue;
|
|
1102
1242
|
}
|
|
1103
|
-
const meta = ruleMetadata(
|
|
1243
|
+
const meta = ruleMetadata(canonicalCode);
|
|
1104
1244
|
issues.push({
|
|
1105
1245
|
filePath: relPath,
|
|
1106
1246
|
patternId,
|
package/dist/metadata.js
CHANGED
|
@@ -28,7 +28,7 @@ var descriptor = {
|
|
|
28
28
|
displayName: "Hadolint",
|
|
29
29
|
preferredVersion: "2.14.0",
|
|
30
30
|
languages: ["Dockerfile"],
|
|
31
|
-
filePatterns: ["**/Dockerfile", "**/*.dockerfile", "**/Dockerfile.*"],
|
|
31
|
+
filePatterns: ["**/Dockerfile", "**/*.dockerfile", "**/*.Dockerfile", "**/Dockerfile.*"],
|
|
32
32
|
supportedOS: ["linux", "darwin", "win32"],
|
|
33
33
|
supportedArch: ["x64", "arm64"],
|
|
34
34
|
supportedRunners: ["local", "container"]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codacy/tools-hadolint-2",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Hadolint adapter — CLI-mode Dockerfile linter",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"dist"
|
|
9
9
|
],
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@codacy/tooling": "0.
|
|
11
|
+
"@codacy/tooling": "0.6.0"
|
|
12
12
|
},
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"author": "Codacy <support@codacy.com> (https://www.codacy.com)",
|