diff --git a/.github/workflows/scan.yaml b/.github/workflows/scan.yaml index fe4205e718..0a5d41c09e 100644 --- a/.github/workflows/scan.yaml +++ b/.github/workflows/scan.yaml @@ -14,10 +14,12 @@ jobs: scan-type: 'fs' exit-code: '1' severity: 'CRITICAL' + skip-dirs: integration - name: Run Trivy vulnerability scanner to scan for Medium and High Vulnerabilities uses: aquasecurity/trivy-action@master with: scan-type: 'fs' exit-code: '0' - severity: 'HIGH,MEDIUM' \ No newline at end of file + severity: 'HIGH,MEDIUM' + skip-dirs: integration diff --git a/.gitignore b/.gitignore index 3d9bfb5d95..91a37fcddf 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,7 @@ thumbs.db # test fixtures coverage.txt -integration/testdata/fixtures/ +integration/testdata/fixtures/images # SBOMs generated during CI /bom.json diff --git a/.golangci.yaml b/.golangci.yaml index 26f4cc1f89..591d6cbb42 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -6,12 +6,10 @@ linters-settings: check-shadowing: false gofmt: simplify: false - golint: - min-confidence: 0 + revive: + ignore-generated-header: true gocyclo: min-complexity: 10 - maligned: - suggest-new: true dupl: threshold: 100 goconst: @@ -32,14 +30,13 @@ linters: - errcheck - varcheck - deadcode - - golint + - revive - gosec - unconvert - goconst - gocyclo - gofmt - goimports - - maligned - misspell run: diff --git a/Makefile b/Makefile index cadf564078..e83a277e9e 100644 --- a/Makefile +++ b/Makefile @@ -33,11 +33,11 @@ $(GOBIN)/golangci-lint: test: go test -v -short -coverprofile=coverage.txt -covermode=atomic ./... -integration/testdata/fixtures/*.tar.gz: - git clone https://github.com/aquasecurity/trivy-test-images.git integration/testdata/fixtures +integration/testdata/fixtures/images/*.tar.gz: + git clone https://github.com/aquasecurity/trivy-test-images.git integration/testdata/fixtures/images .PHONY: test-integration -test-integration: integration/testdata/fixtures/*.tar.gz +test-integration: integration/testdata/fixtures/images/*.tar.gz go test -v -tags=integration ./integration/... .PHONY: lint @@ -62,7 +62,7 @@ install: .PHONY: clean clean: - rm -rf integration/testdata/fixtures/ + rm -rf integration/testdata/fixtures/images $(GOBIN)/labeler: go install github.com/knqyf263/labeler@latest diff --git a/docs/imgs/excalidraw/overview.excalidraw b/docs/imgs/excalidraw/overview.excalidraw index 3354c56373..99f3e44d1b 100644 --- a/docs/imgs/excalidraw/overview.excalidraw +++ b/docs/imgs/excalidraw/overview.excalidraw @@ -5,8 +5,8 @@ "elements": [ { "type": "rectangle", - "version": 560, - "versionNonce": 1400582380, + "version": 935, + "versionNonce": 180530023, "isDeleted": false, "id": "zULZ64ij5HLsp2cFZILSX", "fillStyle": "hachure", @@ -15,8 +15,8 @@ "roughness": 1, "opacity": 50, "angle": 0, - "x": 904.2628784179688, - "y": 99.2658462524414, + "x": 746.177734375, + "y": 61.82862091064453, "strokeColor": "#000000", "backgroundColor": "#15aabf", "width": 130.58160400390628, @@ -28,8 +28,8 @@ }, { "type": "rectangle", - "version": 283, - "versionNonce": 431858644, + "version": 430, + "versionNonce": 255860615, "isDeleted": false, "id": "BkXuq_6BxgqZGZWc8oCtu", "fillStyle": "hachure", @@ -38,11 +38,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 760.100830078125, + "x": 599.211669921875, "y": 376.32061767578125, "strokeColor": "#000000", "backgroundColor": "#fd7e14", - "width": 792.3008422851561, + "width": 1045.4533081054688, "height": 151.39703369140625, "seed": 1632394695, "groupIds": [], @@ -51,8 +51,8 @@ }, { "type": "text", - "version": 217, - "versionNonce": 605539564, + "version": 369, + "versionNonce": 790795625, "isDeleted": false, "id": "YQURTHNPSe05RPSlYRcok", "fillStyle": "hachure", @@ -61,8 +61,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 1106.6643676757812, - "y": 411.25714111328125, + "x": 1067.8125610351562, + "y": 403.56756591796875, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 86, @@ -80,8 +80,8 @@ }, { "type": "text", - "version": 222, - "versionNonce": 1855404140, + "version": 602, + "versionNonce": 603965447, "isDeleted": false, "id": "6dpF2EyZBtYgO6MrvGj0-", "fillStyle": "hachure", @@ -90,11 +90,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 941.25830078125, - "y": 471.68231201171875, + "x": 938.380615234375, + "y": 468.73248291015625, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 474, + "width": 362, "height": 25, "seed": 687997545, "groupIds": [], @@ -102,15 +102,15 @@ "boundElementIds": [], "fontSize": 20, "fontFamily": 1, - "text": "A Simple and Comprehensive Vulnerability Scanner", + "text": "Vulnerability/Misconfiguration Scanner", "baseline": 18, "textAlign": "left", "verticalAlign": "top" }, { "type": "rectangle", - "version": 297, - "versionNonce": 239159404, + "version": 438, + "versionNonce": 2111716775, "isDeleted": false, "id": "cpnTMy7L2AUg9IDJppF4H", "fillStyle": "hachure", @@ -119,8 +119,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 759.0067749023438, - "y": 192.9658660888672, + "x": 599.87158203125, + "y": 191.0224151611328, "strokeColor": "#000000", "backgroundColor": "#fa5252", "width": 283.0587768554687, @@ -132,8 +132,8 @@ }, { "type": "text", - "version": 527, - "versionNonce": 1738982484, + "version": 697, + "versionNonce": 74126409, "isDeleted": false, "id": "9-blmNVtLesthMSY_f60t", "fillStyle": "hachure", @@ -142,8 +142,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 851.9727783203125, - "y": 206.49542236328125, + "x": 692.8375854492188, + "y": 204.55197143554688, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 94, @@ -161,8 +161,8 @@ }, { "type": "rectangle", - "version": 475, - "versionNonce": 1582652140, + "version": 726, + "versionNonce": 448131271, "isDeleted": false, "id": "gugZxhi7ThlcjWY_MFO7q", "fillStyle": "hachure", @@ -171,11 +171,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 1052.2297973632812, - "y": 191.91817474365234, + "x": 893.0946044921875, + "y": 189.97472381591797, "strokeColor": "#000000", "backgroundColor": "#be4bdb", - "width": 272.31054687500006, + "width": 425.07891845703125, "height": 79.7976837158203, "seed": 1232790121, "groupIds": [], @@ -184,8 +184,8 @@ }, { "type": "text", - "version": 705, - "versionNonce": 1618155988, + "version": 948, + "versionNonce": 141796137, "isDeleted": false, "id": "K48gtpesBxIGJxLTnI2CB", "fillStyle": "hachure", @@ -194,8 +194,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 1137.923828125, - "y": 218.9615020751953, + "x": 1062.8621215820312, + "y": 215.2126922607422, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 98, @@ -213,8 +213,8 @@ }, { "type": "rectangle", - "version": 509, - "versionNonce": 1528748884, + "version": 720, + "versionNonce": 610942951, "isDeleted": false, "id": "La6f87LDZ0uEIZB947bXo", "fillStyle": "hachure", @@ -223,11 +223,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 1342.2451782226562, - "y": 190.3844223022461, + "x": 1331.4758911132812, + "y": 190.11858367919922, "strokeColor": "#000000", "backgroundColor": "#12b886", - "width": 202.7937011718749, + "width": 314.085205078125, "height": 79.7976837158203, "seed": 2005637801, "groupIds": [], @@ -236,8 +236,8 @@ }, { "type": "text", - "version": 866, - "versionNonce": 27928788, + "version": 973, + "versionNonce": 1454543305, "isDeleted": false, "id": "aOgRPVQ81jhOfkvzjWTMF", "fillStyle": "hachure", @@ -246,8 +246,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 1380.880859375, - "y": 202.2483367919922, + "x": 1419.43701171875, + "y": 202.31263732910156, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 122, @@ -265,8 +265,8 @@ }, { "type": "text", - "version": 247, - "versionNonce": 653112532, + "version": 590, + "versionNonce": 218606343, "isDeleted": false, "id": "p_mUPP7FjgXD4cyuwbbDb", "fillStyle": "hachure", @@ -275,11 +275,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 918.9429321289062, - "y": 104.1267318725586, + "x": 760.8577880859375, + "y": 66.68950653076172, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 106, + "width": 100, "height": 80, "seed": 2021123719, "groupIds": [], @@ -288,14 +288,14 @@ "fontSize": 16, "fontFamily": 1, "text": "Programming\nLanguage\nDependencies\n", - "baseline": 75, + "baseline": 74, "textAlign": "center", "verticalAlign": "middle" }, { "type": "rectangle", - "version": 223, - "versionNonce": 1335079532, + "version": 364, + "versionNonce": 1759620329, "isDeleted": false, "id": "JPMgfRuI6H4FPW8-vegMJ", "fillStyle": "hachure", @@ -304,8 +304,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 759.9201354980469, - "y": 286.07564544677734, + "x": 600.7849426269531, + "y": 284.13219451904297, "strokeColor": "#000000", "backgroundColor": "#868e96", "width": 157.08227539062494, @@ -316,38 +316,38 @@ "boundElementIds": [] }, { - "id": "i6l1cTY8BN5dM9gV3TY1q", "type": "text", - "x": 774.47998046875, - "y": 303.88873291015625, - "width": 127, - "height": 50, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 229, + "versionNonce": 1359655463, + "isDeleted": false, + "id": "i6l1cTY8BN5dM9gV3TY1q", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 615.3447875976562, + "y": 301.9452819824219, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 127, + "height": 50, + "seed": 1614647380, "groupIds": [], "strokeSharpness": "sharp", - "seed": 1614647380, - "version": 88, - "versionNonce": 1787296340, - "isDeleted": false, - "boundElementIds": null, - "text": "Client/Server\nMode", + "boundElementIds": [], "fontSize": 20, "fontFamily": 1, + "text": "Client/Server\nMode", + "baseline": 43, "textAlign": "center", - "verticalAlign": "top", - "baseline": 43 + "verticalAlign": "top" }, { "type": "rectangle", - "version": 298, - "versionNonce": 1573553388, + "version": 451, + "versionNonce": 1001419497, "isDeleted": false, "id": "zmjzAP9R7DY9tKjqvFBoB", "fillStyle": "hachure", @@ -356,11 +356,11 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 927.6312561035156, + "x": 771.3252868652344, "y": 285.23946380615234, "strokeColor": "#000000", "backgroundColor": "#ced4da", - "width": 621.8212890625001, + "width": 870.6315307617186, "height": 79.7976837158203, "seed": 1660611796, "groupIds": [], @@ -368,38 +368,38 @@ "boundElementIds": [] }, { - "id": "cvVouJIyT22r3RP8klygl", "type": "text", - "x": 1137.06494140625, - "y": 312.9378967285156, - "width": 164, - "height": 25, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 344, + "versionNonce": 694146375, + "isDeleted": false, + "id": "cvVouJIyT22r3RP8klygl", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 1033.6552734375, + "y": 309.35919189453125, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 164, + "height": 25, + "seed": 1325348180, "groupIds": [], "strokeSharpness": "sharp", - "seed": 1325348180, - "version": 130, - "versionNonce": 498962388, - "isDeleted": false, - "boundElementIds": null, - "text": "Standalone Mode", + "boundElementIds": [], "fontSize": 20, "fontFamily": 1, + "text": "Standalone Mode", + "baseline": 18, "textAlign": "left", - "verticalAlign": "top", - "baseline": 18 + "verticalAlign": "top" }, { "type": "rectangle", - "version": 452, - "versionNonce": 1384318828, + "version": 812, + "versionNonce": 2099791529, "isDeleted": false, "id": "uZJjI0NYZ64gKin-_7cR5", "fillStyle": "hachure", @@ -408,8 +408,8 @@ "roughness": 1, "opacity": 100, "angle": 0, - "x": 761.1866760253906, - "y": 100.00330352783203, + "x": 608.9493103027344, + "y": 62.73688507080078, "strokeColor": "#000000", "backgroundColor": "#4c6ef5", "width": 128.17041015625003, @@ -420,276 +420,640 @@ "boundElementIds": [] }, { + "type": "text", + "version": 497, + "versionNonce": 2103678055, + "isDeleted": false, "id": "zeDNXaEe6KkqqNB6hWn2v", - "type": "text", - "x": 778.9382934570312, - "y": 115.62533569335938, - "width": 91, - "height": 50, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", + "angle": 0, + "x": 626.700927734375, + "y": 78.35891723632812, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 91, + "height": 50, "seed": 2105824340, - "version": 137, - "versionNonce": 1352955220, - "isDeleted": false, - "boundElementIds": null, - "text": "OS\nPackages", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "center", - "verticalAlign": "top", - "baseline": 43 - }, - { - "type": "text", - "version": 332, - "versionNonce": 1376205292, - "isDeleted": false, - "id": "8af38RMLhE245Uzw94tk3", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1205.6143035888672, - "y": 103.33536529541016, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 106, - "height": 80, - "seed": 1813092204, "groupIds": [], "strokeSharpness": "sharp", "boundElementIds": [], - "fontSize": 16, - "fontFamily": 1, - "text": "Programming\nLanguage\nDependencies\n", - "baseline": 75, - "textAlign": "center", - "verticalAlign": "middle" - }, - { - "type": "rectangle", - "version": 523, - "versionNonce": 546482900, - "isDeleted": false, - "id": "EW10DZBtAPDl2g3lG4Khk", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1050.4884185791016, - "y": 98.33513641357422, - "strokeColor": "#000000", - "backgroundColor": "#4c6ef5", - "width": 128.3895263671875, - "height": 79.7976837158203, - "seed": 1225188692, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElementIds": [] - }, - { - "id": "rAQf9FyIl2L5AB1n9JzFk", - "type": "text", - "x": 1069.5552215576172, - "y": 113.51881408691406, - "width": 91, - "height": 50, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 1531169260, - "version": 213, - "versionNonce": 1734417516, - "isDeleted": false, - "boundElementIds": null, - "text": "OS\nPackages", "fontSize": 20, "fontFamily": 1, + "text": "OS\nPackages", + "baseline": 43, "textAlign": "center", - "verticalAlign": "top", - "baseline": 43 - }, - { - "type": "rectangle", - "version": 705, - "versionNonce": 270413908, - "isDeleted": false, - "id": "nMqoqCtyNfMXk8kWry8kH", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "angle": 0, - "x": 1191.5499114990234, - "y": 97.8214340209961, - "strokeColor": "#000000", - "backgroundColor": "#15aabf", - "width": 130.7032470703125, - "height": 79.7976837158203, - "seed": 1126636244, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElementIds": [] + "verticalAlign": "top" }, { "type": "text", - "version": 412, - "versionNonce": 1904079212, + "version": 199, + "versionNonce": 1077731783, "isDeleted": false, - "id": "J5C9c2LNI5fqAAEYp_jI2", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1385.1761474609375, - "y": 103.10254669189453, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 106, - "height": 80, - "seed": 546673900, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElementIds": [], - "fontSize": 16, - "fontFamily": 1, - "text": "Programming\nLanguage\nDependencies\n", - "baseline": 75, - "textAlign": "center", - "verticalAlign": "middle" - }, - { - "type": "rectangle", - "version": 701, - "versionNonce": 1654991700, - "isDeleted": false, - "id": "PFi9vxp5euUTYOTLNztVZ", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 50, - "angle": 0, - "x": 1344.9087524414062, - "y": 96.26885223388672, - "strokeColor": "#000000", - "backgroundColor": "#15aabf", - "width": 198.17065429687491, - "height": 79.7976837158203, - "seed": 216760276, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElementIds": [] - }, - { "id": "Uk7ac4Fk6B7eXS2IYB51e", - "type": "text", - "x": 1613.747314453125, - "y": 305.670166015625, + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1739.6856689453125, + "y": 299.6564636230469, + "strokeColor": "#000000", + "backgroundColor": "transparent", "width": 81, "height": 35, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "seed": 1115855212, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 28, + "fontFamily": 1, + "text": "Modes", + "baseline": 25, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 294, + "versionNonce": 399524393, + "isDeleted": false, + "id": "AP0rLiNYZgZh6NpOg7FQl", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 1115855212, - "version": 77, - "versionNonce": 1712645100, - "isDeleted": false, - "boundElementIds": null, - "text": "Modes", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "center", - "verticalAlign": "top", - "baseline": 25 - }, - { - "id": "AP0rLiNYZgZh6NpOg7FQl", - "type": "text", - "x": 1587.2977294921875, - "y": 214.689453125, + "angle": 0, + "x": 1713.236083984375, + "y": 208.67575073242188, + "strokeColor": "#000000", + "backgroundColor": "transparent", "width": 128, "height": 35, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, + "seed": 1133151724, "groupIds": [], "strokeSharpness": "sharp", - "seed": 1133151724, - "version": 172, - "versionNonce": 1561108692, - "isDeleted": false, - "boundElementIds": null, - "text": "Artifacts", + "boundElementIds": [], "fontSize": 28, "fontFamily": 1, + "text": "Artifacts", + "baseline": 25, "textAlign": "center", - "verticalAlign": "top", - "baseline": 25 + "verticalAlign": "top" }, { - "id": "hyBBGwYCM6J4CIKDn9IYh", "type": "text", - "x": 1592.9608154296875, - "y": 118.49179077148438, + "version": 408, + "versionNonce": 197703527, + "isDeleted": false, + "id": "hyBBGwYCM6J4CIKDn9IYh", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1723.7642822265625, + "y": 98.75241088867188, + "strokeColor": "#000000", + "backgroundColor": "transparent", "width": 110, "height": 35, + "seed": 733312980, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 28, + "fontFamily": 1, + "text": "Targets", + "baseline": 25, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "id": "mJ7-m9kNLQwqgfe4taBp0", + "type": "rectangle", + "x": 598.9845275878906, + "y": 50.866451263427734, + "width": 283.49920654296875, + "height": 128.85107421875, "angle": 0, "strokeColor": "#000000", "backgroundColor": "transparent", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 1233072999, + "version": 233, + "versionNonce": 356621737, + "isDeleted": false, + "boundElementIds": null + }, + { + "id": "yNbFL3Rjs2SB27c3sr_mR", + "type": "text", + "x": 683.9073181152344, + "y": 147.5669822692871, + "width": 114, + "height": 25, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "#e64980", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "strokeSharpness": "sharp", - "seed": 733312980, - "version": 248, - "versionNonce": 1076463212, + "seed": 791052647, + "version": 55, + "versionNonce": 354907113, "isDeleted": false, "boundElementIds": null, - "text": "Targets", - "fontSize": 28, + "text": "Vulnerability", + "fontSize": 20, "fontFamily": 1, "textAlign": "center", - "verticalAlign": "top", - "baseline": 25 + "verticalAlign": "middle", + "baseline": 18 + }, + { + "type": "rectangle", + "version": 464, + "versionNonce": 703090089, + "isDeleted": false, + "id": "ZYPN1h5PsmXsjclNo9sZw", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1151.3761596679688, + "y": 49.914730072021484, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 167.43066406249994, + "height": 130.36862182617188, + "seed": 1497161609, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "id": "xN70rcTHuHHdnGKNDNKCS", + "type": "text", + "x": 1157.3832702636719, + "y": 144.52407455444336, + "width": 155, + "height": 25, + "angle": 0, + "strokeColor": "#5c940d", + "backgroundColor": "#e64980", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 369060711, + "version": 74, + "versionNonce": 30113127, + "isDeleted": false, + "boundElementIds": null, + "text": "Misconfiguration", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 18 + }, + { + "type": "rectangle", + "version": 565, + "versionNonce": 1891807369, + "isDeleted": false, + "id": "_KUh50bZ634k3T1gFnOX3", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1165.8448486328125, + "y": 68.56609725952148, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 130.22613525390614, + "height": 52.83825683593751, + "seed": 1476809129, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "id": "6IwhMDQpiH5zlwCj4HIS8", + "type": "text", + "x": 1176.3838806152344, + "y": 68.91337203979492, + "width": 106, + "height": 50, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 1664707527, + "version": 68, + "versionNonce": 1986345095, + "isDeleted": false, + "boundElementIds": null, + "text": "IaC \nconfig files", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 43 + }, + { + "type": "rectangle", + "version": 1103, + "versionNonce": 840229449, + "isDeleted": false, + "id": "5wdF-YC8lik0qChrEA3T_", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 50, + "angle": 0, + "x": 1031.2846374511719, + "y": 64.3414077758789, + "strokeColor": "#000000", + "backgroundColor": "#15aabf", + "width": 107.58721923828128, + "height": 79.7976837158203, + "seed": 514552009, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 739, + "versionNonce": 1339556551, + "isDeleted": false, + "id": "nklf64f47gudcclS8Jcmp", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1037.9355773925781, + "y": 73.19860076904297, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 100, + "height": 80, + "seed": 144153671, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 16, + "fontFamily": 1, + "text": "Programming\nLanguage\nDependencies\n", + "baseline": 74, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "rectangle", + "version": 923, + "versionNonce": 1001632041, + "isDeleted": false, + "id": "bO8E4iVFRG22suGmcEKL1", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 908.0567626953125, + "y": 62.454444885253906, + "strokeColor": "#000000", + "backgroundColor": "#4c6ef5", + "width": 110.58636474609378, + "height": 79.7976837158203, + "seed": 594833321, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 608, + "versionNonce": 1333400039, + "isDeleted": false, + "id": "JBtJENnp3_lAvNdQGjdtK", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 916.1587219238281, + "y": 77.54486083984375, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 91, + "height": 50, + "seed": 1342864231, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "OS\nPackages", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 336, + "versionNonce": 87063081, + "isDeleted": false, + "id": "mbriU4YzwkFP-hJXnTdGL", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 897.5603637695312, + "y": 50.31820297241211, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 246.40802001953136, + "height": 128.85107421875, + "seed": 1752863369, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 205, + "versionNonce": 709704967, + "isDeleted": false, + "id": "-6sUoo21WgzBV7_h4WmzN", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 966.8457641601562, + "y": 148.11477279663086, + "strokeColor": "#c92a2a", + "backgroundColor": "#e64980", + "width": 114, + "height": 25, + "seed": 1611953799, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "Vulnerability", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "rectangle", + "version": 1241, + "versionNonce": 1509309161, + "isDeleted": false, + "id": "1VK5z7K3N0v0uTskx_8-_", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 50, + "angle": 0, + "x": 1341.1490783691406, + "y": 60.64173126220703, + "strokeColor": "#000000", + "backgroundColor": "#15aabf", + "width": 107.58721923828128, + "height": 79.7976837158203, + "seed": 1014047689, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 877, + "versionNonce": 332268583, + "isDeleted": false, + "id": "02TmJqZpvws8gZMos_D0P", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1347.8000183105469, + "y": 69.4989242553711, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 100, + "height": 80, + "seed": 1501206855, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 16, + "fontFamily": 1, + "text": "Programming\nLanguage\nDependencies\n", + "baseline": 74, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "rectangle", + "version": 466, + "versionNonce": 552686761, + "isDeleted": false, + "id": "7z5F_0hiUq7TP7xlklh7P", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 1333.009765625, + "y": 52.173152923583984, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 133.33843994140634, + "height": 128.85107421875, + "seed": 11502985, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 367, + "versionNonce": 553281127, + "isDeleted": false, + "id": "Kjmm3N18p-C4unaiA7H2J", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1341.913330078125, + "y": 149.35754013061523, + "strokeColor": "#c92a2a", + "backgroundColor": "#e64980", + "width": 114, + "height": 25, + "seed": 1209807751, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "Vulnerability", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "rectangle", + "version": 556, + "versionNonce": 1326634889, + "isDeleted": false, + "id": "UdlOhWK2edHkMe5-5AvKJ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1480.2673645019531, + "y": 50.74079513549805, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 167.43066406249994, + "height": 130.36862182617188, + "seed": 289447, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 166, + "versionNonce": 30343559, + "isDeleted": false, + "id": "u8EZnkMchCdYHt2uicTDy", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1486.2744750976562, + "y": 145.35013961791992, + "strokeColor": "#5c940d", + "backgroundColor": "#e64980", + "width": 155, + "height": 25, + "seed": 1086994249, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "Misconfiguration", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "rectangle", + "version": 657, + "versionNonce": 130088553, + "isDeleted": false, + "id": "7_hMiViio7NAAnRiasX7O", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1494.7360534667969, + "y": 69.39216232299805, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 130.22613525390614, + "height": 52.83825683593751, + "seed": 831421895, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 160, + "versionNonce": 262355111, + "isDeleted": false, + "id": "qghwzgH2yi0i59VhuZoeW", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1505.2750854492188, + "y": 69.73943710327148, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 106, + "height": 50, + "seed": 1391879721, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "IaC \nconfig files", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "middle" } ], "appState": { diff --git a/docs/imgs/overview.png b/docs/imgs/overview.png index 19a333bc5e..268dc0db10 100644 Binary files a/docs/imgs/overview.png and b/docs/imgs/overview.png differ diff --git a/go.mod b/go.mod index 399fa455d8..bd2dddfac8 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/Masterminds/sprig v2.22.0+incompatible github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 github.com/aquasecurity/bolt-fixtures v0.0.0-20200903104109-d34e7f983986 - github.com/aquasecurity/fanal v0.0.0-20210628083154-9556a040f4ad + github.com/aquasecurity/fanal v0.0.0-20210707195741-f86e1e4589eb github.com/aquasecurity/go-dep-parser v0.0.0-20210520015931-0dd56983cc62 github.com/aquasecurity/go-gem-version v0.0.0-20201115065557-8eed6fe000ce github.com/aquasecurity/go-npm-version v0.0.0-20201110091526-0b796d180798 @@ -21,6 +21,7 @@ require ( github.com/docker/docker v20.10.3+incompatible github.com/docker/go-connections v0.4.0 github.com/elazarl/goproxy v0.0.0-20200809112317-0581fc3aee2d // indirect + github.com/fatih/color v1.10.0 github.com/go-redis/redis/v8 v8.4.0 github.com/goccy/go-yaml v1.8.2 // indirect github.com/golang/protobuf v1.4.3 @@ -36,7 +37,7 @@ require ( github.com/kylelemons/godebug v1.1.0 github.com/masahiro331/go-mvn-version v0.0.0-20210429150710-d3157d602a08 github.com/mitchellh/copystructure v1.1.1 // indirect - github.com/olekukonko/tablewriter v0.0.4 + github.com/olekukonko/tablewriter v0.0.5 github.com/open-policy-agent/opa v0.25.2 github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/smartystreets/assertions v1.2.0 // indirect @@ -44,10 +45,9 @@ require ( github.com/stretchr/objx v0.3.0 // indirect github.com/stretchr/testify v1.7.0 github.com/testcontainers/testcontainers-go v0.9.1-0.20210218153226-c8e070a2f18d - github.com/twitchtv/twirp v8.0.0+incompatible + github.com/twitchtv/twirp v8.1.0+incompatible github.com/urfave/cli/v2 v2.3.0 go.uber.org/zap v1.16.0 - golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f // indirect golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 diff --git a/go.sum b/go.sum index 2c54789a9e..06d274e485 100644 --- a/go.sum +++ b/go.sum @@ -47,7 +47,6 @@ contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrL contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= -cuelang.org/go v0.0.15/go.mod h1:gehQASsTv+lFZknWIG0hANGVSBiHD7HyKWmAdEZL3No= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= git.apache.org/thrift.git v0.12.0/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= @@ -101,7 +100,6 @@ github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20191009163259-e802c2cb94ae github.com/GoogleCloudPlatform/docker-credential-gcr v1.5.0 h1:wykTgKwhVr2t2qs+xI020s6W5dt614QqCHV+7W9dg64= github.com/GoogleCloudPlatform/docker-credential-gcr v1.5.0/go.mod h1:BB1eHdMLYEFuFdBlRMb0N7YGVdM5s6Pt0njxgvfbGGs= github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20190822182118-27a4ced34534/go.mod h1:iroGtC8B3tQiqtds1l+mgk/BBOrxbqjH+eUfFQYRc14= -github.com/KeisukeYamashita/go-vcl v0.4.0/go.mod h1:af2qGlXbsHDQN5abN7hyGNKtGhcFSaDdbLl4sfud+AU= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= @@ -142,9 +140,9 @@ github.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdc github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/agext/levenshtein v1.2.1 h1:QmvMAjj2aEICytGiWzmxoE0x2KZvE0fvmqMOfy2tjT8= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= +github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= +github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7 h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE= @@ -157,7 +155,6 @@ github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZp github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= github.com/alicebob/miniredis/v2 v2.14.1 h1:GjlbSeoJ24bzdLRs13HoMEeaRZx9kg5nHoRW7QV/nCs= github.com/alicebob/miniredis/v2 v2.14.1/go.mod h1:uS970Sw5Gs9/iK3yBg0l9Uj9s25wXxSpQUE9EaJ/Blg= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= @@ -167,15 +164,18 @@ github.com/apex/log v1.3.0/go.mod h1:jd8Vpsr46WAe3EZSQ/IUMs2qQD/GOycT5rPWCO1yGcs github.com/apex/logs v0.0.4/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo= github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE= github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys= +github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU= +github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg v1.0.0 h1:rRmlIsPEEhUTIKQb7T++Nz/A5Q6C9IuX2wFoYVvnCs0= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= -github.com/apparentlymart/go-textseg/v12 v12.0.0 h1:bNEQyAGak9tojivJNkoqWErVCQbjdL7GzRt3F8NvfJ0= github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= +github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= +github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/aquasecurity/bolt-fixtures v0.0.0-20200903104109-d34e7f983986 h1:2a30xLN2sUZcMXl50hg+PJCIDdJgIvIbVcKqLJ/ZrtM= github.com/aquasecurity/bolt-fixtures v0.0.0-20200903104109-d34e7f983986/go.mod h1:NT+jyeCzXk6vXR5MTkdn4z64TgGfE5HMLC8qfj5unl8= -github.com/aquasecurity/fanal v0.0.0-20210628083154-9556a040f4ad h1:YnvGxCuiIQeXVpo4XO62vaaegXIRWz1+fl7bhTi/sU8= -github.com/aquasecurity/fanal v0.0.0-20210628083154-9556a040f4ad/go.mod h1:s4rJj8D45R28N3PNz5+hpjSHzD3YhaIbYrQtuYciGdY= +github.com/aquasecurity/fanal v0.0.0-20210707195741-f86e1e4589eb h1:sgCQk8pFttzZIN0w54SxSElNkrUYWBw1Xt3vQQBk4tQ= +github.com/aquasecurity/fanal v0.0.0-20210707195741-f86e1e4589eb/go.mod h1:zl2aczB7UrczEeMgKTRH6Xp/Lf+gxf0W7kXRjaOubrU= github.com/aquasecurity/go-dep-parser v0.0.0-20210520015931-0dd56983cc62 h1:aahEMQZXrwhpCMlDgXi2d7jJVNDTpYGJOgLyNptGQoY= github.com/aquasecurity/go-dep-parser v0.0.0-20210520015931-0dd56983cc62/go.mod h1:Cv/FOCXy6gwvDbz/KX48+y//SmbnKroFwW5hquXn5G4= github.com/aquasecurity/go-gem-version v0.0.0-20201115065557-8eed6fe000ce h1:QgBRgJvtEOBtUXilDb1MLi1p1MWoyFDXAu5DEUl5nwM= @@ -213,11 +213,11 @@ github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.25.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.31.6 h1:nKjQbpXhdImctBh1e0iLg9iQW/X297LPPuY/9f92R2k= github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.37.0 h1:GzFnhOIsrGyQ69s7VgqtrG2BG8v7X7vwB3Xpbd/DBBk= +github.com/aws/aws-sdk-go v1.37.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I= -github.com/basgys/goxml2json v1.1.0/go.mod h1:wH7a5Np/Q4QoECFIU8zTQlZwZkrilY0itPfecMw41Dw= github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= @@ -230,6 +230,8 @@ github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJm github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bmatcuk/doublestar v1.3.4 h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQrS0= +github.com/bmatcuk/doublestar v1.3.4/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bombsimon/wsl/v2 v2.0.0/go.mod h1:mf25kr/SqFEPhhcxW1+7pxzGlW+hIl/hYTKY95VwV8U= github.com/bombsimon/wsl/v2 v2.2.0/go.mod h1:Azh8c3XGEJl9LyX0/sFC+CKMc7Ssgua0g+6abzXN4Pg= @@ -271,8 +273,6 @@ github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= -github.com/cockroachdb/apd/v2 v2.0.1/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20160425231609-f8ad88b59a58/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= @@ -296,7 +296,6 @@ github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMX github.com/containerd/containerd v1.4.4 h1:rtRG4N6Ct7GNssATwgpvMGfnjnwfjnu/Zs9W3Ikzq+M= github.com/containerd/containerd v1.4.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20200107194136-26c1120b8d41/go.mod h1:Dq467ZllaHgAtVp4p1xUQWBrFXR9s/wyoTpG8zOJGkY= github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e h1:6JKvHHt396/qabvMhnhUZvWaHZzfVfldxE60TK8YLhg= github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= @@ -342,7 +341,6 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v1.7.1 h1:SCQV0S6gTtp6itiFrTqI+pfmJ4LN85S1YzhDf9rTHJQ= github.com/deckarep/golang-set v1.7.1/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deislabs/oras v0.8.1/go.mod h1:Mx0rMSbBNaNfY9hjpccEnxkOqJL6KGjtxNHPLC4G4As= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= @@ -355,11 +353,9 @@ github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQ github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/docker/cli v0.0.0-20190925022749-754388324470/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/cli v0.0.0-20200130152716-5d0cf8839492/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/cli v20.10.0-beta1.0.20201029214301-1d20b15adc38+incompatible h1:r99CiNpN5pxrSuSH36suYxrbLxFOhBvQ0sEH6624MHs= github.com/docker/cli v20.10.0-beta1.0.20201029214301-1d20b15adc38+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= -github.com/docker/distribution v0.0.0-20191216044856-a8371794149d/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.6.0-rc.1.0.20180327202408-83389a148052+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= @@ -368,7 +364,6 @@ github.com/docker/docker v0.0.0-20200511152416-a93e9eb0e95c/go.mod h1:eEKB0N0r5N github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v1.4.2-0.20180531152204-71cd53e4a197/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200203170920-46ec8731fbce/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v17.12.0-ce-rc1.0.20200730172259-9f28837c1d93+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.0-beta1.0.20201110211921-af34b94a78a1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.3+incompatible h1:+HS4XO73J41FpA260ztGujJ+0WibrA2TPJEnWNSyGNE= @@ -401,7 +396,6 @@ github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:gNh8 github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/proto v1.6.15/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= @@ -431,7 +425,6 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/go-akka/configuration v0.0.0-20200606091224-a002c0330665/go.mod h1:19bUnum2ZAeftfwwLZ/wRe7idyfoW2MfmXO464Hrfbw= github.com/go-critic/go-critic v0.4.1/go.mod h1:7/14rZGnZbY6E38VEGk2kVhoq6itzc1E68facVDK23g= github.com/go-critic/go-critic v0.4.3/go.mod h1:j4O3D4RoIwRqlZw5jJpx0BNfXWWbpcJoKu5cYSe4YmQ= github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4= @@ -446,7 +439,6 @@ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= @@ -507,7 +499,6 @@ github.com/goccy/go-yaml v1.8.2 h1:gDYrSN12XK/wQTFjxWIgcIqjNCV/Zb5V09M7cq+dbCs= github.com/goccy/go-yaml v1.8.2/go.mod h1:wS4gNoLalDSJxo/SpngzPQ2BN4uuZVLCmbM4S3vd4+Y= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godoctor/godoctor v0.0.0-20181123222458-69df17f3a6f6/go.mod h1:+tyhT8jBF8E0XvdlSXOSL7Iko7DlNiongHq3q+wcsPs= github.com/gofrs/flock v0.0.0-20190320160742-5135e617513b/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/flock v0.7.3/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= @@ -585,8 +576,9 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3 h1:x95R7cp+rSeeqAMI2knLtQ0DKlaBhv2NrtrOvafPHRo= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-containerregistry v0.0.0-20191010200024-a3d713f9b7f8/go.mod h1:KyKXa9ciM8+lgMXwOVsXi7UxGrsf9mM61Mzs+xKUrKE= github.com/google/go-containerregistry v0.0.0-20200331213917-3d03ed9b1ca2/go.mod h1:pD1UFYs7MCAx+ZLShBdttcaOSbyc8F9Na/9IZLNwJeA= github.com/google/go-containerregistry v0.1.2 h1:YjFNKqxzWUVZND8d4ItF9wuYlE75WQfECE7yKX/Nu3o= @@ -596,7 +588,6 @@ github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+u github.com/google/go-github/v28 v28.1.1/go.mod h1:bsqJWQX05omyWVmc00nEUql9mhQyv38lDZ8kPZcQVoM= github.com/google/go-github/v33 v33.0.0 h1:qAf9yP0qc54ufQxzwv+u9H0tiVOnPJxo0lI/JXqw3ZM= github.com/google/go-github/v33 v33.0.0/go.mod h1:GMdDnVZY/2TsWgp/lkYnpSAh6TrzhANBBwm6k6TTEXg= -github.com/google/go-jsonnet v0.17.0/go.mod h1:sOcuej3UW1vpPTZOr8L7RQimqai1a57bt5j22LzGZCw= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/go-replayers/grpcreplay v0.1.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE= @@ -680,20 +671,21 @@ github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoP github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-getter v1.5.2 h1:XDo8LiAcDisiqZdv0TKgz+HtX3WN7zA2JD1R1tjsabE= github.com/hashicorp/go-getter v1.5.2/go.mod h1:orNH3BTYLu/fIxGIdLjLoAJHWMDQ/UKQr5O4m3iBuoo= -github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v0.15.0 h1:qMuK0wxsoW4D0ddCCYwPSTm4KQv1X1ke3WmPWZ0Mvsk= +github.com/hashicorp/go-hclog v0.15.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-retryablehttp v0.6.4/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= @@ -707,18 +699,22 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pBJ3TkI= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.3.0 h1:McDWVJIU/y+u1BRV06dPaLfLCaT7fUTJLp5r04x7iNw= +github.com/hashicorp/go-version v1.3.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/hcl/v2 v2.6.0 h1:3krZOfGY6SziUXa6H9PJU6TyohHn7I+ARYnhbeNBz+o= github.com/hashicorp/hcl/v2 v2.6.0/go.mod h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY= +github.com/hashicorp/hcl/v2 v2.10.0 h1:1S1UnuhDGlv3gRFV4+0EdwB+znNP5HmcGbIqwnSCByg= +github.com/hashicorp/hcl/v2 v2.10.0/go.mod h1:FwWsfWEjyV/CMj8s/gqAuiviY72rJ1/oayI9WftqcKg= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= @@ -733,6 +729,7 @@ github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.9 h1:UauaLniWCFHWd+Jp9oCEkTBj8VO/9DKg3PV3VCNMDIg= github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf/go.mod h1:hyb9oH7vZsitZCiBt0ZvifOrB+qc8PS5IiilCIb87rg= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/ishidawataru/sctp v0.0.0-20191218070446-00ab2ac2db07/go.mod h1:co9pwDoBCm1kGxawmb4sPq0cSIOOWNPT4KnHotMP1Zg= @@ -748,8 +745,11 @@ github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.2.1-0.20190826204134-d7d95172beb5/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= @@ -769,7 +769,6 @@ github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/k0kubun/pp v3.0.1+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3tgzSScAn6HmfYukg= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= @@ -811,13 +810,15 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/liamg/clinch v1.5.6/go.mod h1:IXM+nLBuZ5sOQAYYf9+G51nkaA0WY9cszxE5nPXexhE= +github.com/liamg/tml v0.3.0/go.mod h1:0h4EAV/zBOsqI91EWONedjRpO8O0itjGJVd+wG5eC+E= +github.com/liamg/tml v0.4.0/go.mod h1:0h4EAV/zBOsqI91EWONedjRpO8O0itjGJVd+wG5eC+E= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= -github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= github.com/magefile/mage v1.11.0 h1:C/55Ywp9BpgVVclD3lRnSYCwXTYxmSppIgLeDYlNuls= @@ -856,9 +857,9 @@ github.com/mattn/go-jsonpointer v0.0.0-20180225143300-37667080efed/go.mod h1:SDJ github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.12 h1:Y41i/hVW3Pgwr8gV+J23B9YEY0zxjptBuCWEaxmAOow= +github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= @@ -876,8 +877,9 @@ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrk github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk= github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 h1:DpOJ2HYzCv8LZP15IdmG+YdwD2luVPHITV96TkirNBM= github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= +github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= @@ -912,7 +914,6 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mozilla/tls-observatory v0.0.0-20190404164649-a3c1b6cfecfd/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mozilla/tls-observatory v0.0.0-20200317151703-4fa42e1c2dee/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= -github.com/mpvl/unique v0.0.0-20150818121801-cbe035fff7de/go.mod h1:kJun4WP5gFuHZgRjZUWWuH1DTxCtxbHDOIJsudS8jzY= github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= @@ -938,8 +939,8 @@ github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn+Ejf/w8= -github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -962,8 +963,6 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.10.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA= github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/open-policy-agent/conftest v0.23.0 h1:i/cmUjNKDz973vR1cm+x3DqTei/jBPosPvjeot6+p9M= -github.com/open-policy-agent/conftest v0.23.0/go.mod h1:NA6+vKd93pb04H9jiV3WRGJKLj/pzYdQg7XCdoPPUDI= github.com/open-policy-agent/opa v0.25.2 h1:zTQuUMvB5xkYixKB9LFVbUd7DcUt1jfS0QKTo+/Vfyc= github.com/open-policy-agent/opa v0.25.2/go.mod h1:iGThTRECCfKQKICueOZkXUi0opN7BR3qiAnIrNHCmlI= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -998,6 +997,7 @@ github.com/openzipkin/zipkin-go v0.1.3/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTm github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/owenrumney/go-sarif v1.0.11/go.mod h1:hTBFbxU7GuVRUvwMx+eStp9M/Oun4xHCS3vqpPvket8= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/parnurzeal/gorequest v0.2.16 h1:T/5x+/4BT+nj+3eSknXmCTnEVGSzFzPGdpqmUVVZXHQ= github.com/parnurzeal/gorequest v0.2.16/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= @@ -1009,7 +1009,6 @@ github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9 github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/peterh/liner v0.0.0-20170211195444-bf27d3ba8e1d/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= -github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -1019,6 +1018,7 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/profile v1.5.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= +github.com/pkg/term v0.0.0-20190109203006-aa71e9d9e942/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -1066,12 +1066,14 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/testscript v1.1.0/go.mod h1:lzMlnW8LS56mcdJoQYkrlzqOoTFCOemzt5LusJ93bDM= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= @@ -1100,7 +1102,6 @@ github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNX github.com/serialx/hashring v0.0.0-20190422032157-8b2912629002/go.mod h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc= github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lzhCH5h/3YBfyVA3VbLYjlMZZAQcW9ojMexNc= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= -github.com/shteou/go-ignore v0.3.0/go.mod h1:+MO315cnlHh5qKX1xSa41OlWzOuAecXCNwcKUcbL+f0= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -1139,6 +1140,7 @@ github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKv github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1151,7 +1153,6 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -1163,7 +1164,6 @@ github.com/stretchr/objx v0.3.0 h1:NGXK3lHquSN08v5vWalVI/L8XU9hdzE/G6xsrze47As= github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -1181,6 +1181,8 @@ github.com/testcontainers/testcontainers-go v0.9.1-0.20210218153226-c8e070a2f18d github.com/testcontainers/testcontainers-go v0.9.1-0.20210218153226-c8e070a2f18d/go.mod h1:NTC1Ek1iJuUfxAM48lR8zKmXQTFIU5uMO12+ECWdIVc= github.com/tetafro/godot v0.3.7/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0= github.com/tetafro/godot v0.4.2/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0= +github.com/tfsec/tfsec v0.40.8-0.20210702100641-956c4f18a1b8 h1:DSuEJokSK+puvRQpspuutT34k3VeXqx8XrwreJxZmKo= +github.com/tfsec/tfsec v0.40.8-0.20210702100641-956c4f18a1b8/go.mod h1:ET0ZM78u5+tR4hwnQFAOGAlynJ71fxTJ4PnQ3UvEodA= github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0= @@ -1195,8 +1197,8 @@ github.com/tommy-muehle/go-mnd v1.1.1/go.mod h1:dSUh0FtTP8VhvkL1S+gUR1OKd9ZnSaoz github.com/tommy-muehle/go-mnd v1.3.1-0.20200224220436-e6f9a994e8fa/go.mod h1:dSUh0FtTP8VhvkL1S+gUR1OKd9ZnSaozuI6r3m6wOig= github.com/tonistiigi/fsutil v0.0.0-20201103201449-0834f99b7b85/go.mod h1:a7cilN64dG941IOXfhJhlH0qB92hxJ9A1ewrdUmJ6xo= github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea/go.mod h1:WPnis/6cRcDZSUvVmezrxJPkiO87ThFYsoUiMwWNDJk= -github.com/twitchtv/twirp v8.0.0+incompatible h1:uYHA8+9cit/+LUfQjL6zo/0QDKTo4U2H/WAnJ6LfhBU= -github.com/twitchtv/twirp v8.0.0+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A= +github.com/twitchtv/twirp v8.1.0+incompatible h1:KGXanpa9LXdVE/V5P/tA27rkKFmXRGCtSNT7zdeeVOY= +github.com/twitchtv/twirp v8.1.0+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A= github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -1222,7 +1224,6 @@ github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk github.com/valyala/quicktemplate v1.2.0/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOVRUAfrukLPuGJ4= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/vdemeester/k8s-pkg-credentialprovider v1.17.4/go.mod h1:inCTmtUdr5KJbreVojo06krnTgaeAz/Z7lynpPk/Q2c= -github.com/vektah/gqlparser v1.2.0/go.mod h1:bkVf0FX+Stjg/MHnm8mEyubuaArhNEqfQhF+OTiAL74= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= @@ -1231,7 +1232,6 @@ github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgq github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/wasmerio/go-ext-wasm v0.3.1 h1:G95XP3fE2FszQSwIU+fHPBYzD0Csmd2ef33snQXNA5Q= github.com/wasmerio/go-ext-wasm v0.3.1/go.mod h1:VGyarTzasuS7k5KhSIGpM3tciSZlkP31Mp9VJTHMMeI= -github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/xanzy/go-gitlab v0.31.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= github.com/xanzy/go-gitlab v0.32.0/go.mod h1:sPLojNBn68fMUWSxIJtdVVIP8uSBYqesTfDUseX11Ug= @@ -1254,9 +1254,15 @@ github.com/yuin/gopher-lua v0.0.0-20191220021717-ab39c6098bdb/go.mod h1:gqRgreBU github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= +github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= -github.com/zclconf/go-cty v1.6.1 h1:wHtZ+LSSQVwUSb+XIJ5E9hgAQxyWATZsAWT+ESJ9dQ0= github.com/zclconf/go-cty v1.6.1/go.mod h1:VDR4+I79ubFBGm1uJac1226K5yANQFHeauxPBoP54+o= +github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty v1.8.4 h1:pwhhz5P+Fjxse7S7UriBrMu6AUJSZM5pKqGem1PjGAs= +github.com/zclconf/go-cty v1.8.4/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= +github.com/zclconf/go-cty-yaml v1.0.2 h1:dNyg4QLTrv2IfJpm7Wtxi55ed5gLGOlPrZ6kMd51hY0= +github.com/zclconf/go-cty-yaml v1.0.2/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= @@ -1304,6 +1310,7 @@ golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190506204251-e1dfcc566284/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -1311,13 +1318,12 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200128174031-69ecbb4d6d5d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f h1:aZp0e2vLN4MToVqnjNEYEtrEA8RH8U8FN1CU7JgqsPU= -golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1405,8 +1411,8 @@ golang.org/x/net v0.0.0-20200927032502-5d4f70055728/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d h1:1aflnvSoWWLI2k/dMUAl5lvU1YO4Mb4hz0gh+1rjcxU= -golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/oauth2 v0.0.0-20180724155351-3d292e4d0cdc/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1417,6 +1423,7 @@ golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5 h1:Lm4OryKCca1vehdsWogr9N4t7NfZxLbJoc/H0w4K4S4= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= @@ -1454,6 +1461,7 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1514,18 +1522,21 @@ golang.org/x/sys v0.0.0-20201013081832-0aaa2718063a/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43 h1:SgQ6LNaYJU0JIuEHv9+s6EbhSCwYeAf5Yvj6lpYlqAE= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 h1:RqytpXGR1iVNX7psjB3ff8y7sNFinVFvkx1c8SjBkio= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf h1:MZ2shdL+ZM/XzY3ZGOnh4Nlpnxz5GSOhOmtHo3iPU6M= +golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1542,7 +1553,6 @@ golang.org/x/tools v0.0.0-20181117154741-2ddaf7f79a09/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20181219222714-6e267b5cc78e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -1555,6 +1565,7 @@ golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190422233926-fe54fb35175b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190509153222-73554e0f7805/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190521203540-521d6ed310dd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -1579,7 +1590,6 @@ golang.org/x/tools v0.0.0-20191113232020-e2727e816f5a/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191127201027-ecd32218bd7f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1843,10 +1853,8 @@ mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIa mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw= mvdan.cc/unparam v0.0.0-20200501210554-b37ab49443f7/go.mod h1:HGC5lll35J70Y5v7vCGb9oLhHoScFwkHDJm/05RdSTc= -olympos.io/encoding/edn v0.0.0-20200308123125-93e3b8dd0e24/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw= pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/letsencrypt v0.0.3/go.mod h1:buyQKZ6IXrRnB7TdkHP0RyEybLx18HHyOSoTyoOLqNY= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= diff --git a/integration/client_server_test.go b/integration/client_server_test.go index 215e526bee..b4b48535f0 100644 --- a/integration/client_server_test.go +++ b/integration/client_server_test.go @@ -45,7 +45,7 @@ func TestClientServer(t *testing.T) { name: "alpine 3.10 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310.json.golden", }, @@ -54,7 +54,7 @@ func TestClientServer(t *testing.T) { testArgs: args{ Version: "dev", IgnoreUnfixed: true, - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310-ignore-unfixed.json.golden", }, @@ -64,7 +64,7 @@ func TestClientServer(t *testing.T) { Version: "dev", IgnoreUnfixed: true, Severity: []string{"MEDIUM", "HIGH"}, - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310-medium-high.json.golden", }, @@ -74,7 +74,7 @@ func TestClientServer(t *testing.T) { Version: "dev", IgnoreUnfixed: false, IgnoreIDs: []string{"CVE-2019-1549", "CVE-2019-1563"}, - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310-ignore-cveids.json.golden", }, @@ -84,7 +84,7 @@ func TestClientServer(t *testing.T) { Format: "template", TemplatePath: "@../contrib/gitlab.tpl", Version: "dev", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310.gitlab.golden", }, @@ -94,7 +94,7 @@ func TestClientServer(t *testing.T) { Format: "template", TemplatePath: "@../contrib/gitlab-codequality.tpl", Version: "dev", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310.gitlab-codequality.golden", }, @@ -104,7 +104,7 @@ func TestClientServer(t *testing.T) { Format: "template", TemplatePath: "@../contrib/sarif.tpl", Version: "dev", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310.sarif.golden", }, @@ -112,7 +112,7 @@ func TestClientServer(t *testing.T) { name: "alpine 3.9 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/alpine-39.tar.gz", + Input: "testdata/fixtures/images/alpine-39.tar.gz", }, golden: "testdata/alpine-39.json.golden", }, @@ -120,7 +120,7 @@ func TestClientServer(t *testing.T) { name: "debian buster integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/debian-buster.tar.gz", + Input: "testdata/fixtures/images/debian-buster.tar.gz", }, golden: "testdata/debian-buster.json.golden", }, @@ -129,7 +129,7 @@ func TestClientServer(t *testing.T) { testArgs: args{ Version: "dev", IgnoreUnfixed: true, - Input: "testdata/fixtures/debian-buster.tar.gz", + Input: "testdata/fixtures/images/debian-buster.tar.gz", }, golden: "testdata/debian-buster-ignore-unfixed.json.golden", }, @@ -137,7 +137,7 @@ func TestClientServer(t *testing.T) { name: "debian stretch integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/debian-stretch.tar.gz", + Input: "testdata/fixtures/images/debian-stretch.tar.gz", }, golden: "testdata/debian-stretch.json.golden", }, @@ -145,7 +145,7 @@ func TestClientServer(t *testing.T) { name: "ubuntu 18.04 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/ubuntu-1804.tar.gz", + Input: "testdata/fixtures/images/ubuntu-1804.tar.gz", }, golden: "testdata/ubuntu-1804.json.golden", }, @@ -154,7 +154,7 @@ func TestClientServer(t *testing.T) { testArgs: args{ Version: "dev", IgnoreUnfixed: true, - Input: "testdata/fixtures/ubuntu-1804.tar.gz", + Input: "testdata/fixtures/images/ubuntu-1804.tar.gz", }, golden: "testdata/ubuntu-1804-ignore-unfixed.json.golden", }, @@ -162,7 +162,7 @@ func TestClientServer(t *testing.T) { name: "ubuntu 16.04 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/ubuntu-1604.tar.gz", + Input: "testdata/fixtures/images/ubuntu-1604.tar.gz", }, golden: "testdata/ubuntu-1604.json.golden", }, @@ -170,7 +170,7 @@ func TestClientServer(t *testing.T) { name: "centos 7 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/centos-7.tar.gz", + Input: "testdata/fixtures/images/centos-7.tar.gz", }, golden: "testdata/centos-7.json.golden", }, @@ -179,7 +179,7 @@ func TestClientServer(t *testing.T) { testArgs: args{ Version: "dev", IgnoreUnfixed: true, - Input: "testdata/fixtures/centos-7.tar.gz", + Input: "testdata/fixtures/images/centos-7.tar.gz", }, golden: "testdata/centos-7-ignore-unfixed.json.golden", }, @@ -189,7 +189,7 @@ func TestClientServer(t *testing.T) { Version: "dev", IgnoreUnfixed: true, Severity: []string{"LOW", "HIGH"}, - Input: "testdata/fixtures/centos-7.tar.gz", + Input: "testdata/fixtures/images/centos-7.tar.gz", }, golden: "testdata/centos-7-low-high.json.golden", }, @@ -197,7 +197,7 @@ func TestClientServer(t *testing.T) { name: "centos 6 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/centos-6.tar.gz", + Input: "testdata/fixtures/images/centos-6.tar.gz", }, golden: "testdata/centos-6.json.golden", }, @@ -205,7 +205,7 @@ func TestClientServer(t *testing.T) { name: "ubi 7 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/ubi-7.tar.gz", + Input: "testdata/fixtures/images/ubi-7.tar.gz", }, golden: "testdata/ubi-7.json.golden", }, @@ -213,7 +213,7 @@ func TestClientServer(t *testing.T) { name: "distroless base integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/distroless-base.tar.gz", + Input: "testdata/fixtures/images/distroless-base.tar.gz", }, golden: "testdata/distroless-base.json.golden", }, @@ -222,7 +222,7 @@ func TestClientServer(t *testing.T) { testArgs: args{ Version: "dev", IgnoreUnfixed: true, - Input: "testdata/fixtures/distroless-base.tar.gz", + Input: "testdata/fixtures/images/distroless-base.tar.gz", }, golden: "testdata/distroless-base-ignore-unfixed.json.golden", }, @@ -230,7 +230,7 @@ func TestClientServer(t *testing.T) { name: "distroless python27 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/distroless-python27.tar.gz", + Input: "testdata/fixtures/images/distroless-python27.tar.gz", }, golden: "testdata/distroless-python27.json.golden", }, @@ -238,7 +238,7 @@ func TestClientServer(t *testing.T) { name: "amazon 1 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/amazon-1.tar.gz", + Input: "testdata/fixtures/images/amazon-1.tar.gz", }, golden: "testdata/amazon-1.json.golden", }, @@ -246,7 +246,7 @@ func TestClientServer(t *testing.T) { name: "amazon 2 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/amazon-2.tar.gz", + Input: "testdata/fixtures/images/amazon-2.tar.gz", }, golden: "testdata/amazon-2.json.golden", }, @@ -254,7 +254,7 @@ func TestClientServer(t *testing.T) { name: "oracle 6 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/oraclelinux-6-slim.tar.gz", + Input: "testdata/fixtures/images/oraclelinux-6-slim.tar.gz", }, golden: "testdata/oraclelinux-6-slim.json.golden", }, @@ -262,7 +262,7 @@ func TestClientServer(t *testing.T) { name: "oracle 7 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/oraclelinux-7-slim.tar.gz", + Input: "testdata/fixtures/images/oraclelinux-7-slim.tar.gz", }, golden: "testdata/oraclelinux-7-slim.json.golden", }, @@ -270,7 +270,7 @@ func TestClientServer(t *testing.T) { name: "oracle 8 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/oraclelinux-8-slim.tar.gz", + Input: "testdata/fixtures/images/oraclelinux-8-slim.tar.gz", }, golden: "testdata/oraclelinux-8-slim.json.golden", }, @@ -278,7 +278,7 @@ func TestClientServer(t *testing.T) { name: "opensuse leap 15.1 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/opensuse-leap-151.tar.gz", + Input: "testdata/fixtures/images/opensuse-leap-151.tar.gz", }, golden: "testdata/opensuse-leap-151.json.golden", }, @@ -286,7 +286,7 @@ func TestClientServer(t *testing.T) { name: "opensuse leap 42.3 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/opensuse-leap-423.tar.gz", + Input: "testdata/fixtures/images/opensuse-leap-423.tar.gz", }, golden: "testdata/opensuse-leap-423.json.golden", }, @@ -294,7 +294,7 @@ func TestClientServer(t *testing.T) { name: "photon 1.0 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/photon-10.tar.gz", + Input: "testdata/fixtures/images/photon-10.tar.gz", }, golden: "testdata/photon-10.json.golden", }, @@ -302,7 +302,7 @@ func TestClientServer(t *testing.T) { name: "photon 2.0 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/photon-20.tar.gz", + Input: "testdata/fixtures/images/photon-20.tar.gz", }, golden: "testdata/photon-20.json.golden", }, @@ -310,7 +310,7 @@ func TestClientServer(t *testing.T) { name: "photon 3.0 integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/photon-30.tar.gz", + Input: "testdata/fixtures/images/photon-30.tar.gz", }, golden: "testdata/photon-30.json.golden", }, @@ -318,7 +318,7 @@ func TestClientServer(t *testing.T) { name: "buxybox with Cargo.lock integration", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/busybox-with-lockfile.tar.gz", + Input: "testdata/fixtures/images/busybox-with-lockfile.tar.gz", }, golden: "testdata/busybox-with-lockfile.json.golden", }, @@ -328,7 +328,7 @@ func TestClientServer(t *testing.T) { Format: "template", TemplatePath: "@../contrib/asff.tpl", Version: "dev", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310.asff.golden", }, @@ -338,7 +338,7 @@ func TestClientServer(t *testing.T) { Format: "template", TemplatePath: "@../contrib/html.tpl", Version: "dev", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310.html.golden", }, @@ -376,7 +376,7 @@ func TestClientServerWithToken(t *testing.T) { name: "alpine 3.10 integration with token", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", ClientToken: "token", ClientTokenHeader: "Trivy-Token", }, @@ -386,7 +386,7 @@ func TestClientServerWithToken(t *testing.T) { name: "invalid token", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/distroless-base.tar.gz", + Input: "testdata/fixtures/images/distroless-base.tar.gz", ClientToken: "invalidtoken", ClientTokenHeader: "Trivy-Token", }, @@ -396,7 +396,7 @@ func TestClientServerWithToken(t *testing.T) { name: "invalid token header", testArgs: args{ Version: "dev", - Input: "testdata/fixtures/distroless-base.tar.gz", + Input: "testdata/fixtures/images/distroless-base.tar.gz", ClientToken: "valid-token", ClientTokenHeader: "Trivy-Token", }, @@ -445,7 +445,7 @@ func TestClientServerWithRedis(t *testing.T) { // Test parameters testArgs := args{ Version: "dev", - Input: "testdata/fixtures/centos-7.tar.gz", + Input: "testdata/fixtures/images/centos-7.tar.gz", } golden := "testdata/centos-7.json.golden" @@ -484,9 +484,8 @@ func setup(t *testing.T, options setupOptions) (*cli.App, string, string) { t.Helper() version := "dev" - // Copy DB file - cacheDir, err := gunzipDB() - assert.NoError(t, err) + // Set up testing DB + cacheDir := gunzipDB(t) port, err := getFreePort() assert.NoError(t, err) diff --git a/integration/docker_engine_test.go b/integration/docker_engine_test.go index 0a04145f08..d0ee57e043 100644 --- a/integration/docker_engine_test.go +++ b/integration/docker_engine_test.go @@ -38,21 +38,21 @@ func TestRun_WithDockerEngine(t *testing.T) { name: "happy path, valid image path, alpine:3.10", imageTag: "alpine:3.10", expectedOutputFile: "testdata/alpine-310.json.golden", - testfile: "testdata/fixtures/alpine-310.tar.gz", + testfile: "testdata/fixtures/images/alpine-310.tar.gz", }, { name: "happy path, valid image path, with image subcommand, alpine:3.10", withImageSubcommand: true, imageTag: "alpine:3.10", expectedOutputFile: "testdata/alpine-310.json.golden", - testfile: "testdata/fixtures/alpine-310.tar.gz", + testfile: "testdata/fixtures/images/alpine-310.tar.gz", }, { name: "happy path, valid image path, alpine:3.10, ignore unfixed", ignoreUnfixed: true, imageTag: "alpine:3.10", expectedOutputFile: "testdata/alpine-310-ignore-unfixed.json.golden", - testfile: "testdata/fixtures/alpine-310.tar.gz", + testfile: "testdata/fixtures/images/alpine-310.tar.gz", }, { name: "happy path, valid image path, alpine:3.10, ignore unfixed, with medium and high severity", @@ -60,51 +60,51 @@ func TestRun_WithDockerEngine(t *testing.T) { severity: []string{"MEDIUM", "HIGH"}, imageTag: "alpine:3.10", expectedOutputFile: "testdata/alpine-310-medium-high.json.golden", - testfile: "testdata/fixtures/alpine-310.tar.gz", + testfile: "testdata/fixtures/images/alpine-310.tar.gz", }, { name: "happy path, valid image path, alpine:3.10, with .trivyignore", imageTag: "alpine:3.10", ignoreIDs: []string{"CVE-2019-1549", "CVE-2019-1563"}, expectedOutputFile: "testdata/alpine-310-ignore-cveids.json.golden", - testfile: "testdata/fixtures/alpine-310.tar.gz", + testfile: "testdata/fixtures/images/alpine-310.tar.gz", }, { name: "happy path, valid image path, alpine:3.9", imageTag: "alpine:3.9", expectedOutputFile: "testdata/alpine-39.json.golden", - testfile: "testdata/fixtures/alpine-39.tar.gz", + testfile: "testdata/fixtures/images/alpine-39.tar.gz", }, { name: "happy path, valid image path, amazonlinux:1", imageTag: "amazonlinux:1", expectedOutputFile: "testdata/amazon-1.json.golden", - testfile: "testdata/fixtures/amazon-1.tar.gz", + testfile: "testdata/fixtures/images/amazon-1.tar.gz", }, { name: "happy path, valid image path, amazonlinux:2", imageTag: "amazonlinux:2", expectedOutputFile: "testdata/amazon-2.json.golden", - testfile: "testdata/fixtures/amazon-2.tar.gz", + testfile: "testdata/fixtures/images/amazon-2.tar.gz", }, { name: "happy path, valid image path, centos:6", imageTag: "centos:6", expectedOutputFile: "testdata/centos-6.json.golden", - testfile: "testdata/fixtures/centos-6.tar.gz", + testfile: "testdata/fixtures/images/centos-6.tar.gz", }, { name: "happy path, valid image path, centos:7", imageTag: "centos:7", expectedOutputFile: "testdata/centos-7.json.golden", - testfile: "testdata/fixtures/centos-7.tar.gz", + testfile: "testdata/fixtures/images/centos-7.tar.gz", }, { name: "happy path, valid image path, centos:7, with --ignore-unfixed option", imageTag: "centos:7", ignoreUnfixed: true, expectedOutputFile: "testdata/centos-7-ignore-unfixed.json.golden", - testfile: "testdata/fixtures/centos-7.tar.gz", + testfile: "testdata/fixtures/images/centos-7.tar.gz", }, { name: "happy path, valid image path, centos:7, with --ignore-unfixed option, with low and high severity", @@ -112,130 +112,130 @@ func TestRun_WithDockerEngine(t *testing.T) { ignoreUnfixed: true, severity: []string{"LOW", "HIGH"}, expectedOutputFile: "testdata/centos-7-low-high.json.golden", - testfile: "testdata/fixtures/centos-7.tar.gz", + testfile: "testdata/fixtures/images/centos-7.tar.gz", }, { name: "happy path, valid image path, debian:buster", imageTag: "debian:buster", expectedOutputFile: "testdata/debian-buster.json.golden", - testfile: "testdata/fixtures/debian-buster.tar.gz", + testfile: "testdata/fixtures/images/debian-buster.tar.gz", }, { name: "happy path, valid image path, debian:buster, with --ignore-unfixed option", ignoreUnfixed: true, imageTag: "debian:buster", expectedOutputFile: "testdata/debian-buster-ignore-unfixed.json.golden", - testfile: "testdata/fixtures/debian-buster.tar.gz", + testfile: "testdata/fixtures/images/debian-buster.tar.gz", }, { name: "happy path, valid image path, debian:stretch", imageTag: "debian:stretch", expectedOutputFile: "testdata/debian-stretch.json.golden", - testfile: "testdata/fixtures/debian-stretch.tar.gz", + testfile: "testdata/fixtures/images/debian-stretch.tar.gz", }, { name: "happy path, valid image path, distroless:base", imageTag: "gcr.io/distroless/base:latest", expectedOutputFile: "testdata/distroless-base.json.golden", - testfile: "testdata/fixtures/distroless-base.tar.gz", + testfile: "testdata/fixtures/images/distroless-base.tar.gz", }, { name: "happy path, valid image path, distroless:base", imageTag: "gcr.io/distroless/base:latest", expectedOutputFile: "testdata/distroless-base.json.golden", - testfile: "testdata/fixtures/distroless-base.tar.gz", + testfile: "testdata/fixtures/images/distroless-base.tar.gz", }, { name: "happy path, valid image path, distroless:base, with --ignore-unfixed option", imageTag: "gcr.io/distroless/base:latest", ignoreUnfixed: true, expectedOutputFile: "testdata/distroless-base-ignore-unfixed.json.golden", - testfile: "testdata/fixtures/distroless-base.tar.gz", + testfile: "testdata/fixtures/images/distroless-base.tar.gz", }, { name: "happy path, valid image path, distroless:python2.7", imageTag: "gcr.io/distroless/python2.7:latest", expectedOutputFile: "testdata/distroless-python27.json.golden", - testfile: "testdata/fixtures/distroless-python27.tar.gz", + testfile: "testdata/fixtures/images/distroless-python27.tar.gz", }, { name: "happy path, valid image path, oraclelinux:6-slim", imageTag: "oraclelinux:6-slim", expectedOutputFile: "testdata/oraclelinux-6-slim.json.golden", - testfile: "testdata/fixtures/oraclelinux-6-slim.tar.gz", + testfile: "testdata/fixtures/images/oraclelinux-6-slim.tar.gz", }, { name: "happy path, valid image path, oraclelinux:7-slim", imageTag: "oraclelinux:7-slim", expectedOutputFile: "testdata/oraclelinux-7-slim.json.golden", - testfile: "testdata/fixtures/oraclelinux-7-slim.tar.gz", + testfile: "testdata/fixtures/images/oraclelinux-7-slim.tar.gz", }, { name: "happy path, valid image path, oraclelinux:8-slim", imageTag: "oraclelinux:8-slim", expectedOutputFile: "testdata/oraclelinux-8-slim.json.golden", - testfile: "testdata/fixtures/oraclelinux-8-slim.tar.gz", + testfile: "testdata/fixtures/images/oraclelinux-8-slim.tar.gz", }, { name: "happy path, valid image path, ubuntu:16.04", imageTag: "ubuntu:16.04", expectedOutputFile: "testdata/ubuntu-1604.json.golden", - testfile: "testdata/fixtures/ubuntu-1604.tar.gz", + testfile: "testdata/fixtures/images/ubuntu-1604.tar.gz", }, { name: "happy path, valid image path, ubuntu:18.04", imageTag: "ubuntu:18.04", expectedOutputFile: "testdata/ubuntu-1804.json.golden", - testfile: "testdata/fixtures/ubuntu-1804.tar.gz", + testfile: "testdata/fixtures/images/ubuntu-1804.tar.gz", }, { name: "happy path, valid image path, ubuntu:18.04, with --ignore-unfixed option", imageTag: "ubuntu:18.04", ignoreUnfixed: true, expectedOutputFile: "testdata/ubuntu-1804-ignore-unfixed.json.golden", - testfile: "testdata/fixtures/ubuntu-1804.tar.gz", + testfile: "testdata/fixtures/images/ubuntu-1804.tar.gz", }, { name: "happy path, valid image path, registry.redhat.io/ubi7", imageTag: "registry.redhat.io/ubi7", expectedOutputFile: "testdata/ubi-7.json.golden", - testfile: "testdata/fixtures/ubi-7.tar.gz", + testfile: "testdata/fixtures/images/ubi-7.tar.gz", }, { name: "happy path, valid image path, opensuse leap 15.1", imageTag: "opensuse/leap:latest", expectedOutputFile: "testdata/opensuse-leap-151.json.golden", - testfile: "testdata/fixtures/opensuse-leap-151.tar.gz", + testfile: "testdata/fixtures/images/opensuse-leap-151.tar.gz", }, { name: "happy path, valid image path, opensuse leap 42.3", imageTag: "opensuse/leap:42.3", expectedOutputFile: "testdata/opensuse-leap-423.json.golden", - testfile: "testdata/fixtures/opensuse-leap-423.tar.gz", + testfile: "testdata/fixtures/images/opensuse-leap-423.tar.gz", }, { name: "happy path, valid image path, photon 1.0", imageTag: "photon:1.0-20190823", expectedOutputFile: "testdata/photon-10.json.golden", - testfile: "testdata/fixtures/photon-10.tar.gz", + testfile: "testdata/fixtures/images/photon-10.tar.gz", }, { name: "happy path, valid image path, photon 2.0", imageTag: "photon:2.0-20190726", expectedOutputFile: "testdata/photon-20.json.golden", - testfile: "testdata/fixtures/photon-20.tar.gz", + testfile: "testdata/fixtures/images/photon-20.tar.gz", }, { name: "happy path, valid image path, photon 3.0", imageTag: "photon:3.0-20190823", expectedOutputFile: "testdata/photon-30.json.golden", - testfile: "testdata/fixtures/photon-30.tar.gz", + testfile: "testdata/fixtures/images/photon-30.tar.gz", }, { name: "buxybox with Cargo.lock integration", imageTag: "busy-cargo:latest", expectedOutputFile: "testdata/busybox-with-lockfile.json.golden", - testfile: "testdata/fixtures/busybox-with-lockfile.tar.gz", + testfile: "testdata/fixtures/images/busybox-with-lockfile.tar.gz", }, { name: "sad path, invalid image", @@ -245,10 +245,8 @@ func TestRun_WithDockerEngine(t *testing.T) { }, } - // Copy DB file - cacheDir, err := gunzipDB() - require.NoError(t, err) - defer os.RemoveAll(cacheDir) + // Set up testing DB + cacheDir := gunzipDB(t) ctx := context.Background() defer ctx.Done() diff --git a/integration/fs_test.go b/integration/fs_test.go new file mode 100644 index 0000000000..5d1610a91a --- /dev/null +++ b/integration/fs_test.go @@ -0,0 +1,142 @@ +// +build integration + +package integration + +import ( + "io" + "os" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/aquasecurity/trivy/pkg/commands" +) + +func TestFilesystem(t *testing.T) { + type args struct { + securityChecks string + severity []string + ignoreIDs []string + policyPaths []string + namespaces []string + input string + } + tests := []struct { + name string + args args + golden string + }{ + { + name: "nodejs", + args: args{ + securityChecks: "vuln", + input: "testdata/fixtures/fs/nodejs", + }, + golden: "testdata/nodejs.json.golden", + }, + { + name: "dockerfile", + args: args{ + securityChecks: "config", + policyPaths: []string{"testdata/fixtures/fs/dockerfile/policy"}, + input: "testdata/fixtures/fs/dockerfile", + }, + golden: "testdata/dockerfile.json.golden", + }, + { + name: "dockerfile with rule exception", + args: args{ + securityChecks: "config", + policyPaths: []string{"testdata/fixtures/fs/rule-exception/policy"}, + input: "testdata/fixtures/fs/rule-exception", + }, + golden: "testdata/dockerfile-rule-exception.json.golden", + }, + { + name: "dockerfile with namespace exception", + args: args{ + securityChecks: "config", + policyPaths: []string{"testdata/fixtures/fs/namespace-exception/policy"}, + input: "testdata/fixtures/fs/namespace-exception", + }, + golden: "testdata/dockerfile-namespace-exception.json.golden", + }, + { + name: "dockerfile with custom policies", + args: args{ + securityChecks: "config", + policyPaths: []string{"testdata/fixtures/fs/custom-policy/policy"}, + namespaces: []string{"user"}, + input: "testdata/fixtures/fs/custom-policy", + }, + golden: "testdata/dockerfile-custom-policies.json.golden", + }, + } + + // Set up testing DB + cacheDir := gunzipDB(t) + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + osArgs := []string{"trivy", "--cache-dir", cacheDir, "fs", "--skip-db-update", "--skip-policy-update", + "--format", "json", "--security-checks", tt.args.securityChecks} + + if len(tt.args.policyPaths) != 0 { + for _, policyPath := range tt.args.policyPaths { + osArgs = append(osArgs, "--config-policy", policyPath) + } + } + + if len(tt.args.namespaces) != 0 { + for _, namespace := range tt.args.namespaces { + osArgs = append(osArgs, "--policy-namespaces", namespace) + } + } + + if len(tt.args.severity) != 0 { + osArgs = append(osArgs, + []string{"--severity", strings.Join(tt.args.severity, ",")}..., + ) + } + + if len(tt.args.ignoreIDs) != 0 { + trivyIgnore := ".trivyignore" + err := os.WriteFile(trivyIgnore, []byte(strings.Join(tt.args.ignoreIDs, "\n")), 0444) + assert.NoError(t, err, "failed to write .trivyignore") + defer os.Remove(trivyIgnore) + } + + // Setup the output file + var outputFile string + if *update { + outputFile = tt.golden + } else { + output, err := os.CreateTemp("", "integration") + require.NoError(t, err) + assert.Nil(t, output.Close()) + defer os.Remove(output.Name()) + outputFile = output.Name() + } + + osArgs = append(osArgs, "--output", outputFile) + osArgs = append(osArgs, tt.args.input) + + // Setup CLI App + app := commands.NewApp("dev") + app.Writer = io.Discard + + // Run "trivy fs" + assert.Nil(t, app.Run(osArgs)) + + // Compare want and got + want, err := os.ReadFile(tt.golden) + assert.NoError(t, err) + got, err := os.ReadFile(outputFile) + assert.NoError(t, err) + + assert.JSONEq(t, string(want), string(got)) + }) + } +} diff --git a/integration/integration_test.go b/integration/integration_test.go index 4b0da114ee..d5227a9100 100644 --- a/integration/integration_test.go +++ b/integration/integration_test.go @@ -8,52 +8,39 @@ import ( "encoding/json" "flag" "io" - "io/ioutil" "net" "os" "path/filepath" + "testing" "time" - "github.com/spf13/afero" + "github.com/stretchr/testify/require" "github.com/aquasecurity/trivy-db/pkg/db" ) var update = flag.Bool("update", false, "update golden files") -func gunzipDB() (string, error) { +func gunzipDB(t *testing.T) string { gz, err := os.Open("testdata/trivy.db.gz") - if err != nil { - return "", err - } + require.NoError(t, err) + zr, err := gzip.NewReader(gz) - if err != nil { - return "", err - } - - tmpDir, err := ioutil.TempDir("", "integration") - if err != nil { - return "", err - } + require.NoError(t, err) + tmpDir := t.TempDir() dbPath := db.Path(tmpDir) dbDir := filepath.Dir(dbPath) err = os.MkdirAll(dbDir, 0700) - if err != nil { - return "", err - } + require.NoError(t, err) file, err := os.Create(dbPath) - if err != nil { - return "", err - } + require.NoError(t, err) defer file.Close() - if _, err = io.Copy(file, zr); err != nil { - return "", err - } + _, err = io.Copy(file, zr) + require.NoError(t, err) - fs := afero.NewOsFs() metadataFile := filepath.Join(dbDir, "metadata.json") b, err := json.Marshal(db.Metadata{ Version: 1, @@ -61,15 +48,12 @@ func gunzipDB() (string, error) { NextUpdate: time.Time{}, UpdatedAt: time.Time{}, }) - if err != nil { - return "", err - } - err = afero.WriteFile(fs, metadataFile, b, 0600) - if err != nil { - return "", err - } + require.NoError(t, err) - return tmpDir, nil + err = os.WriteFile(metadataFile, b, 0600) + require.NoError(t, err) + + return tmpDir } func getFreePort() (int, error) { diff --git a/integration/registry_test.go b/integration/registry_test.go index f3e405de66..7a4f35340e 100644 --- a/integration/registry_test.go +++ b/integration/registry_test.go @@ -146,7 +146,7 @@ func TestRegistry(t *testing.T) { { name: "happy path with username/password", imageName: "alpine:3.10", - imageFile: "testdata/fixtures/alpine-310.tar.gz", + imageFile: "testdata/fixtures/images/alpine-310.tar.gz", option: registryOption{ AuthURL: authURL, Username: authUsername, @@ -157,7 +157,7 @@ func TestRegistry(t *testing.T) { { name: "happy path with registry token", imageName: "alpine:3.10", - imageFile: "testdata/fixtures/alpine-310.tar.gz", + imageFile: "testdata/fixtures/images/alpine-310.tar.gz", option: registryOption{ AuthURL: authURL, Username: authUsername, @@ -169,7 +169,7 @@ func TestRegistry(t *testing.T) { { name: "sad path", imageName: "alpine:3.10", - imageFile: "testdata/fixtures/alpine-310.tar.gz", + imageFile: "testdata/fixtures/images/alpine-310.tar.gz", wantErr: "unsupported status code 401; body: Auth failed", }, } @@ -188,7 +188,7 @@ func TestRegistry(t *testing.T) { require.NoError(t, err) // 2. Scan it - resultFile, cleanup, err := scan(imageRef, baseDir, tc.golden, tc.option) + resultFile, cleanup, err := scan(t, imageRef, baseDir, tc.golden, tc.option) if tc.wantErr != "" { require.NotNil(t, err) @@ -220,15 +220,11 @@ func TestRegistry(t *testing.T) { } } -func scan(imageRef name.Reference, baseDir, goldenFile string, opt registryOption) (string, func(), error) { +func scan(t *testing.T, imageRef name.Reference, baseDir, goldenFile string, opt registryOption) (string, func(), error) { cleanup := func() {} - // Copy DB file - cacheDir, err := gunzipDB() - if err != nil { - return "", cleanup, err - } - defer os.RemoveAll(cacheDir) + // Set up testing DB + cacheDir := gunzipDB(t) // Setup the output file var outputFile string @@ -248,7 +244,7 @@ func scan(imageRef name.Reference, baseDir, goldenFile string, opt registryOptio } // Setup env - if err = setupEnv(imageRef, baseDir, opt); err != nil { + if err := setupEnv(imageRef, baseDir, opt); err != nil { return "", cleanup, err } defer unsetEnv() @@ -260,7 +256,7 @@ func scan(imageRef name.Reference, baseDir, goldenFile string, opt registryOptio osArgs := []string{"trivy", "--cache-dir", cacheDir, "--format", "json", "--skip-update", "--output", outputFile, imageRef.Name()} // Run Trivy - if err = app.Run(osArgs); err != nil { + if err := app.Run(osArgs); err != nil { return "", cleanup, err } return outputFile, cleanup, nil diff --git a/integration/standalone_tar_test.go b/integration/standalone_tar_test.go index fd18fe4d40..36b14a1d16 100644 --- a/integration/standalone_tar_test.go +++ b/integration/standalone_tar_test.go @@ -9,7 +9,6 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "github.com/aquasecurity/trivy/pkg/commands" ) @@ -38,7 +37,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310.json.golden", }, @@ -49,7 +48,7 @@ func TestRun_WithTar(t *testing.T) { WithImageSubcommand: true, SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310.json.golden", }, @@ -60,7 +59,7 @@ func TestRun_WithTar(t *testing.T) { SkipUpdate: true, IgnoreUnfixed: true, Format: "json", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310-ignore-unfixed.json.golden", }, @@ -72,7 +71,7 @@ func TestRun_WithTar(t *testing.T) { IgnoreUnfixed: true, Severity: []string{"MEDIUM", "HIGH"}, Format: "json", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310-medium-high.json.golden", }, @@ -84,7 +83,7 @@ func TestRun_WithTar(t *testing.T) { IgnoreUnfixed: false, IgnoreIDs: []string{"CVE-2019-1549", "CVE-2019-1563"}, Format: "json", - Input: "testdata/fixtures/alpine-310.tar.gz", + Input: "testdata/fixtures/images/alpine-310.tar.gz", }, golden: "testdata/alpine-310-ignore-cveids.json.golden", }, @@ -94,7 +93,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/alpine-39.tar.gz", + Input: "testdata/fixtures/images/alpine-39.tar.gz", }, golden: "testdata/alpine-39.json.golden", }, @@ -104,7 +103,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/debian-buster.tar.gz", + Input: "testdata/fixtures/images/debian-buster.tar.gz", }, golden: "testdata/debian-buster.json.golden", }, @@ -115,7 +114,7 @@ func TestRun_WithTar(t *testing.T) { SkipUpdate: true, IgnoreUnfixed: true, Format: "json", - Input: "testdata/fixtures/debian-buster.tar.gz", + Input: "testdata/fixtures/images/debian-buster.tar.gz", }, golden: "testdata/debian-buster-ignore-unfixed.json.golden", }, @@ -125,7 +124,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/debian-stretch.tar.gz", + Input: "testdata/fixtures/images/debian-stretch.tar.gz", }, golden: "testdata/debian-stretch.json.golden", }, @@ -135,7 +134,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/ubuntu-1804.tar.gz", + Input: "testdata/fixtures/images/ubuntu-1804.tar.gz", }, golden: "testdata/ubuntu-1804.json.golden", }, @@ -146,7 +145,7 @@ func TestRun_WithTar(t *testing.T) { SkipUpdate: true, IgnoreUnfixed: true, Format: "json", - Input: "testdata/fixtures/ubuntu-1804.tar.gz", + Input: "testdata/fixtures/images/ubuntu-1804.tar.gz", }, golden: "testdata/ubuntu-1804-ignore-unfixed.json.golden", }, @@ -156,7 +155,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/ubuntu-1604.tar.gz", + Input: "testdata/fixtures/images/ubuntu-1604.tar.gz", }, golden: "testdata/ubuntu-1604.json.golden", }, @@ -166,7 +165,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/centos-7.tar.gz", + Input: "testdata/fixtures/images/centos-7.tar.gz", }, golden: "testdata/centos-7.json.golden", }, @@ -177,7 +176,7 @@ func TestRun_WithTar(t *testing.T) { SkipUpdate: true, IgnoreUnfixed: true, Format: "json", - Input: "testdata/fixtures/centos-7.tar.gz", + Input: "testdata/fixtures/images/centos-7.tar.gz", }, golden: "testdata/centos-7-ignore-unfixed.json.golden", }, @@ -189,7 +188,7 @@ func TestRun_WithTar(t *testing.T) { IgnoreUnfixed: true, Severity: []string{"LOW", "HIGH"}, Format: "json", - Input: "testdata/fixtures/centos-7.tar.gz", + Input: "testdata/fixtures/images/centos-7.tar.gz", }, golden: "testdata/centos-7-low-high.json.golden", }, @@ -199,7 +198,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/centos-6.tar.gz", + Input: "testdata/fixtures/images/centos-6.tar.gz", }, golden: "testdata/centos-6.json.golden", }, @@ -209,7 +208,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/ubi-7.tar.gz", + Input: "testdata/fixtures/images/ubi-7.tar.gz", }, golden: "testdata/ubi-7.json.golden", }, @@ -219,7 +218,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/distroless-base.tar.gz", + Input: "testdata/fixtures/images/distroless-base.tar.gz", }, golden: "testdata/distroless-base.json.golden", }, @@ -230,7 +229,7 @@ func TestRun_WithTar(t *testing.T) { SkipUpdate: true, IgnoreUnfixed: true, Format: "json", - Input: "testdata/fixtures/distroless-base.tar.gz", + Input: "testdata/fixtures/images/distroless-base.tar.gz", }, golden: "testdata/distroless-base-ignore-unfixed.json.golden", }, @@ -240,7 +239,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/distroless-python27.tar.gz", + Input: "testdata/fixtures/images/distroless-python27.tar.gz", }, golden: "testdata/distroless-python27.json.golden", }, @@ -250,7 +249,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/amazon-1.tar.gz", + Input: "testdata/fixtures/images/amazon-1.tar.gz", }, golden: "testdata/amazon-1.json.golden", }, @@ -260,7 +259,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/amazon-2.tar.gz", + Input: "testdata/fixtures/images/amazon-2.tar.gz", }, golden: "testdata/amazon-2.json.golden", }, @@ -270,7 +269,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/oraclelinux-6-slim.tar.gz", + Input: "testdata/fixtures/images/oraclelinux-6-slim.tar.gz", }, golden: "testdata/oraclelinux-6-slim.json.golden", }, @@ -280,7 +279,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/oraclelinux-7-slim.tar.gz", + Input: "testdata/fixtures/images/oraclelinux-7-slim.tar.gz", }, golden: "testdata/oraclelinux-7-slim.json.golden", }, @@ -290,7 +289,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/oraclelinux-8-slim.tar.gz", + Input: "testdata/fixtures/images/oraclelinux-8-slim.tar.gz", }, golden: "testdata/oraclelinux-8-slim.json.golden", }, @@ -300,7 +299,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/opensuse-leap-151.tar.gz", + Input: "testdata/fixtures/images/opensuse-leap-151.tar.gz", }, golden: "testdata/opensuse-leap-151.json.golden", }, @@ -310,7 +309,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/opensuse-leap-423.tar.gz", + Input: "testdata/fixtures/images/opensuse-leap-423.tar.gz", }, golden: "testdata/opensuse-leap-423.json.golden", }, @@ -320,7 +319,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/photon-10.tar.gz", + Input: "testdata/fixtures/images/photon-10.tar.gz", }, golden: "testdata/photon-10.json.golden", }, @@ -330,7 +329,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/photon-20.tar.gz", + Input: "testdata/fixtures/images/photon-20.tar.gz", }, golden: "testdata/photon-20.json.golden", }, @@ -340,7 +339,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/photon-30.tar.gz", + Input: "testdata/fixtures/images/photon-30.tar.gz", }, golden: "testdata/photon-30.json.golden", }, @@ -350,7 +349,7 @@ func TestRun_WithTar(t *testing.T) { Version: "dev", SkipUpdate: true, Format: "json", - Input: "testdata/fixtures/busybox-with-lockfile.tar.gz", + Input: "testdata/fixtures/images/busybox-with-lockfile.tar.gz", }, golden: "testdata/busybox-with-lockfile.json.golden", }, @@ -361,7 +360,7 @@ func TestRun_WithTar(t *testing.T) { SkipUpdate: true, IgnoreUnfixed: true, Format: "json", - Input: "testdata/fixtures/fluentd-multiple-lockfiles.tar.gz", + Input: "testdata/fixtures/images/fluentd-multiple-lockfiles.tar.gz", SkipFiles: []string{"/Gemfile.lock"}, SkipDirs: []string{ "/var/lib/gems/2.5.0/gems/http_parser.rb-0.6.0", @@ -372,10 +371,8 @@ func TestRun_WithTar(t *testing.T) { }, } - // Copy DB file - cacheDir, err := gunzipDB() - require.NoError(t, err) - defer os.RemoveAll(cacheDir) + // Set up testing DB + cacheDir := gunzipDB(t) // Setup CLI App app := commands.NewApp("dev") diff --git a/integration/testdata/alpine-310-ignore-cveids.json.golden b/integration/testdata/alpine-310-ignore-cveids.json.golden index fc2f118f23..d975e50427 100644 --- a/integration/testdata/alpine-310-ignore-cveids.json.golden +++ b/integration/testdata/alpine-310-ignore-cveids.json.golden @@ -1,6 +1,7 @@ [ { - "Target": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Target": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", + "Class": "os-pkgs", "Type": "alpine", "Vulnerabilities": [ { diff --git a/integration/testdata/alpine-310-ignore-unfixed.json.golden b/integration/testdata/alpine-310-ignore-unfixed.json.golden index 6583bc83ef..f2054794b3 100644 --- a/integration/testdata/alpine-310-ignore-unfixed.json.golden +++ b/integration/testdata/alpine-310-ignore-unfixed.json.golden @@ -1,6 +1,7 @@ [ { - "Target": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Target": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", + "Class": "os-pkgs", "Type": "alpine", "Vulnerabilities": [ { diff --git a/integration/testdata/alpine-310-medium-high.json.golden b/integration/testdata/alpine-310-medium-high.json.golden index d08c359bd1..3291aad06f 100644 --- a/integration/testdata/alpine-310-medium-high.json.golden +++ b/integration/testdata/alpine-310-medium-high.json.golden @@ -1,6 +1,7 @@ [ { - "Target": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Target": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", + "Class": "os-pkgs", "Type": "alpine", "Vulnerabilities": [ { diff --git a/integration/testdata/alpine-310-registry.json.golden b/integration/testdata/alpine-310-registry.json.golden index e3f463469c..4074905eab 100644 --- a/integration/testdata/alpine-310-registry.json.golden +++ b/integration/testdata/alpine-310-registry.json.golden @@ -1,6 +1,6 @@ [ { - "Target": "localhost:32799/alpine:3.10 (alpine 3.10.2)", + "Target": "localhost:55015/alpine:3.10 (alpine 3.10.2)", "Type": "alpine", "Vulnerabilities": [ { diff --git a/integration/testdata/alpine-310.asff.golden b/integration/testdata/alpine-310.asff.golden index a51dfe2934..42bc46a8b8 100644 --- a/integration/testdata/alpine-310.asff.golden +++ b/integration/testdata/alpine-310.asff.golden @@ -1,7 +1,7 @@ [ { "SchemaVersion": "2018-10-08", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1549", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1549", "ProductArn": "arn:aws:securityhub:test-region::product/aquasecurity/aquasecurity", "GeneratorId": "Trivy", "AwsAccountId": "123456789012", @@ -11,7 +11,7 @@ "Severity": { "Label": "MEDIUM" }, - "Title": "Trivy found a vulnerability to CVE-2019-1549 in container testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Title": "Trivy found a vulnerability to CVE-2019-1549 in container testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Description": "OpenSSL 1.1.1 introduced a rewritten random number generator (RNG). This was intended to include protection in the event of a fork() system call in order to ensure that the parent and child processes did not share the same RNG state. However this protection was not being used in the default case. A partial mitigation for this issue is that the output from a high precision timer is mixed into the RNG state so the likelihood of a parent and child process sharing state is significantly reduced. If an application already calls OPENSSL_init_crypto() explicitly using OPENSSL_INIT_ATFORK then this problem does not occur at all. Fixed in OpenSSL 1.1.1d (Affected 1.1.1-1.1.1c).", "Remediation": { "Recommendation": { @@ -23,11 +23,11 @@ "Resources": [ { "Type": "Container", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Partition": "aws", "Region": "test-region", "Details": { - "Container": { "ImageName": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" }, + "Container": { "ImageName": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "Other": { "CVE ID": "CVE-2019-1549", "CVE Title": "openssl: information disclosure in fork()", @@ -46,7 +46,7 @@ }, { "SchemaVersion": "2018-10-08", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1551", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1551", "ProductArn": "arn:aws:securityhub:test-region::product/aquasecurity/aquasecurity", "GeneratorId": "Trivy", "AwsAccountId": "123456789012", @@ -56,7 +56,7 @@ "Severity": { "Label": "MEDIUM" }, - "Title": "Trivy found a vulnerability to CVE-2019-1551 in container testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Title": "Trivy found a vulnerability to CVE-2019-1551 in container testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Description": "There is an overflow bug in the x64_64 Montgomery squaring procedure used in exponentiation with 512-bit moduli. No EC algorithms are affected. Analysis suggests that attacks against 2-prime RSA1024, 3-prime RSA1536, and DSA1024 as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH512 are considered just feasible. However, for an attack the target would have to re-use the DH512 private key, which is not recommended anyway. Also applications directly using the low level API BN_mod_exp may be affected if they use BN_FLG_CONSTTIME. Fixed in OpenSSL 1.1.1e-dev (Affected 1.1.1-1.1.1d). Fixed in OpenSSL 1.0.2u-dev (Affected 1.0.2-1.0.2t).", "Remediation": { "Recommendation": { @@ -68,11 +68,11 @@ "Resources": [ { "Type": "Container", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Partition": "aws", "Region": "test-region", "Details": { - "Container": { "ImageName": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" }, + "Container": { "ImageName": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "Other": { "CVE ID": "CVE-2019-1551", "CVE Title": "openssl: Integer overflow in RSAZ modular exponentiation on x86_64", @@ -91,7 +91,7 @@ }, { "SchemaVersion": "2018-10-08", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1563", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1563", "ProductArn": "arn:aws:securityhub:test-region::product/aquasecurity/aquasecurity", "GeneratorId": "Trivy", "AwsAccountId": "123456789012", @@ -101,7 +101,7 @@ "Severity": { "Label": "MEDIUM" }, - "Title": "Trivy found a vulnerability to CVE-2019-1563 in container testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Title": "Trivy found a vulnerability to CVE-2019-1563 in container testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Description": "In situations where an attacker receives automated notification of the success or failure of a decryption attempt an attacker, after sending a very large number of messages to be decrypted, can recover a CMS/PKCS7 transported encryption key or decrypt any RSA encrypted message that was encrypted with the public RSA key, using a Bleichenbacher padding oracle attack. Applications are not affected if they use a certificate together with the private RSA key to the CMS_decrypt or PKCS7_decrypt functions to select the correct recipient info to decrypt. Fixed in OpenSSL 1.1.1d (Affected 1.1.1-1.1.1c). Fixed in OpenSSL 1.1.0l (Affected 1.1.0-1.1.0k). Fixed in OpenSSL 1.0.2t (Affected 1.0.2-1.0.2s).", "Remediation": { "Recommendation": { @@ -113,11 +113,11 @@ "Resources": [ { "Type": "Container", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Partition": "aws", "Region": "test-region", "Details": { - "Container": { "ImageName": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" }, + "Container": { "ImageName": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "Other": { "CVE ID": "CVE-2019-1563", "CVE Title": "openssl: information disclosure in PKCS7_dataDecode and CMS_decrypt_set1_pkey", @@ -136,7 +136,7 @@ }, { "SchemaVersion": "2018-10-08", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1547", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1547", "ProductArn": "arn:aws:securityhub:test-region::product/aquasecurity/aquasecurity", "GeneratorId": "Trivy", "AwsAccountId": "123456789012", @@ -146,7 +146,7 @@ "Severity": { "Label": "LOW" }, - "Title": "Trivy found a vulnerability to CVE-2019-1547 in container testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Title": "Trivy found a vulnerability to CVE-2019-1547 in container testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Description": "Normally in OpenSSL EC groups always have a co-factor present and this is used in side channel resistant code paths. However, in some cases, it is possible to construct a group using explicit parameters (instead of using a named curve). In those cases it is possible that such a group does not have the cofactor present. This can occur even where all the parameters match a known named curve. If such a curve is used then OpenSSL falls back to non-side channel resistant code paths which may result in full key recovery during an ECDSA signature operation. In order to be vulnerable an attacker would have to have the ability to time the creation of a large number of signatures where explicit parameters with no co-factor present are in use by an application using libcrypto. For the avoidance of doubt libssl is not vulnerable because explicit parameters are never used. Fixed in OpenSSL 1.1.1d (Affected 1.1.1-1.1.1c). Fixed in OpenSSL 1.1.0l (Affected 1.1.0-1.1.0k). Fixed in OpenSSL 1.0.2t (Affected 1.0.2-1.0.2s).", "Remediation": { "Recommendation": { @@ -158,11 +158,11 @@ "Resources": [ { "Type": "Container", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Partition": "aws", "Region": "test-region", "Details": { - "Container": { "ImageName": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" }, + "Container": { "ImageName": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "Other": { "CVE ID": "CVE-2019-1547", "CVE Title": "openssl: side-channel weak encryption vulnerability", @@ -181,7 +181,7 @@ }, { "SchemaVersion": "2018-10-08", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1549", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1549", "ProductArn": "arn:aws:securityhub:test-region::product/aquasecurity/aquasecurity", "GeneratorId": "Trivy", "AwsAccountId": "123456789012", @@ -191,7 +191,7 @@ "Severity": { "Label": "MEDIUM" }, - "Title": "Trivy found a vulnerability to CVE-2019-1549 in container testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Title": "Trivy found a vulnerability to CVE-2019-1549 in container testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Description": "OpenSSL 1.1.1 introduced a rewritten random number generator (RNG). This was intended to include protection in the event of a fork() system call in order to ensure that the parent and child processes did not share the same RNG state. However this protection was not being used in the default case. A partial mitigation for this issue is that the output from a high precision timer is mixed into the RNG state so the likelihood of a parent and child process sharing state is significantly reduced. If an application already calls OPENSSL_init_crypto() explicitly using OPENSSL_INIT_ATFORK then this problem does not occur at all. Fixed in OpenSSL 1.1.1d (Affected 1.1.1-1.1.1c).", "Remediation": { "Recommendation": { @@ -203,11 +203,11 @@ "Resources": [ { "Type": "Container", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Partition": "aws", "Region": "test-region", "Details": { - "Container": { "ImageName": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" }, + "Container": { "ImageName": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "Other": { "CVE ID": "CVE-2019-1549", "CVE Title": "openssl: information disclosure in fork()", @@ -226,7 +226,7 @@ }, { "SchemaVersion": "2018-10-08", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1551", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1551", "ProductArn": "arn:aws:securityhub:test-region::product/aquasecurity/aquasecurity", "GeneratorId": "Trivy", "AwsAccountId": "123456789012", @@ -236,7 +236,7 @@ "Severity": { "Label": "MEDIUM" }, - "Title": "Trivy found a vulnerability to CVE-2019-1551 in container testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Title": "Trivy found a vulnerability to CVE-2019-1551 in container testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Description": "There is an overflow bug in the x64_64 Montgomery squaring procedure used in exponentiation with 512-bit moduli. No EC algorithms are affected. Analysis suggests that attacks against 2-prime RSA1024, 3-prime RSA1536, and DSA1024 as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH512 are considered just feasible. However, for an attack the target would have to re-use the DH512 private key, which is not recommended anyway. Also applications directly using the low level API BN_mod_exp may be affected if they use BN_FLG_CONSTTIME. Fixed in OpenSSL 1.1.1e-dev (Affected 1.1.1-1.1.1d). Fixed in OpenSSL 1.0.2u-dev (Affected 1.0.2-1.0.2t).", "Remediation": { "Recommendation": { @@ -248,11 +248,11 @@ "Resources": [ { "Type": "Container", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Partition": "aws", "Region": "test-region", "Details": { - "Container": { "ImageName": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" }, + "Container": { "ImageName": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "Other": { "CVE ID": "CVE-2019-1551", "CVE Title": "openssl: Integer overflow in RSAZ modular exponentiation on x86_64", @@ -271,7 +271,7 @@ }, { "SchemaVersion": "2018-10-08", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1563", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1563", "ProductArn": "arn:aws:securityhub:test-region::product/aquasecurity/aquasecurity", "GeneratorId": "Trivy", "AwsAccountId": "123456789012", @@ -281,7 +281,7 @@ "Severity": { "Label": "MEDIUM" }, - "Title": "Trivy found a vulnerability to CVE-2019-1563 in container testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Title": "Trivy found a vulnerability to CVE-2019-1563 in container testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Description": "In situations where an attacker receives automated notification of the success or failure of a decryption attempt an attacker, after sending a very large number of messages to be decrypted, can recover a CMS/PKCS7 transported encryption key or decrypt any RSA encrypted message that was encrypted with the public RSA key, using a Bleichenbacher padding oracle attack. Applications are not affected if they use a certificate together with the private RSA key to the CMS_decrypt or PKCS7_decrypt functions to select the correct recipient info to decrypt. Fixed in OpenSSL 1.1.1d (Affected 1.1.1-1.1.1c). Fixed in OpenSSL 1.1.0l (Affected 1.1.0-1.1.0k). Fixed in OpenSSL 1.0.2t (Affected 1.0.2-1.0.2s).", "Remediation": { "Recommendation": { @@ -293,11 +293,11 @@ "Resources": [ { "Type": "Container", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Partition": "aws", "Region": "test-region", "Details": { - "Container": { "ImageName": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" }, + "Container": { "ImageName": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "Other": { "CVE ID": "CVE-2019-1563", "CVE Title": "openssl: information disclosure in PKCS7_dataDecode and CMS_decrypt_set1_pkey", @@ -316,7 +316,7 @@ }, { "SchemaVersion": "2018-10-08", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1547", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)/CVE-2019-1547", "ProductArn": "arn:aws:securityhub:test-region::product/aquasecurity/aquasecurity", "GeneratorId": "Trivy", "AwsAccountId": "123456789012", @@ -326,7 +326,7 @@ "Severity": { "Label": "LOW" }, - "Title": "Trivy found a vulnerability to CVE-2019-1547 in container testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Title": "Trivy found a vulnerability to CVE-2019-1547 in container testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Description": "Normally in OpenSSL EC groups always have a co-factor present and this is used in side channel resistant code paths. However, in some cases, it is possible to construct a group using explicit parameters (instead of using a named curve). In those cases it is possible that such a group does not have the cofactor present. This can occur even where all the parameters match a known named curve. If such a curve is used then OpenSSL falls back to non-side channel resistant code paths which may result in full key recovery during an ECDSA signature operation. In order to be vulnerable an attacker would have to have the ability to time the creation of a large number of signatures where explicit parameters with no co-factor present are in use by an application using libcrypto. For the avoidance of doubt libssl is not vulnerable because explicit parameters are never used. Fixed in OpenSSL 1.1.1d (Affected 1.1.1-1.1.1c). Fixed in OpenSSL 1.1.0l (Affected 1.1.0-1.1.0k). Fixed in OpenSSL 1.0.2t (Affected 1.0.2-1.0.2s).", "Remediation": { "Recommendation": { @@ -338,11 +338,11 @@ "Resources": [ { "Type": "Container", - "Id": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)", + "Id": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)", "Partition": "aws", "Region": "test-region", "Details": { - "Container": { "ImageName": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" }, + "Container": { "ImageName": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "Other": { "CVE ID": "CVE-2019-1547", "CVE Title": "openssl: side-channel weak encryption vulnerability", diff --git a/integration/testdata/alpine-310.gitlab.golden b/integration/testdata/alpine-310.gitlab.golden index 58da2de807..a3bb53a0d4 100644 --- a/integration/testdata/alpine-310.gitlab.golden +++ b/integration/testdata/alpine-310.gitlab.golden @@ -22,7 +22,7 @@ "version": "1.1.1c-r0" }, "operating_system": "Unknown", - "image": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" + "image": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "identifiers": [ { @@ -68,7 +68,7 @@ "version": "1.1.1c-r0" }, "operating_system": "Unknown", - "image": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" + "image": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "identifiers": [ { @@ -124,7 +124,7 @@ "version": "1.1.1c-r0" }, "operating_system": "Unknown", - "image": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" + "image": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "identifiers": [ { @@ -174,7 +174,7 @@ "version": "1.1.1c-r0" }, "operating_system": "Unknown", - "image": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" + "image": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "identifiers": [ { @@ -226,7 +226,7 @@ "version": "1.1.1c-r0" }, "operating_system": "Unknown", - "image": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" + "image": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "identifiers": [ { @@ -272,7 +272,7 @@ "version": "1.1.1c-r0" }, "operating_system": "Unknown", - "image": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" + "image": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "identifiers": [ { @@ -328,7 +328,7 @@ "version": "1.1.1c-r0" }, "operating_system": "Unknown", - "image": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" + "image": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "identifiers": [ { @@ -378,7 +378,7 @@ "version": "1.1.1c-r0" }, "operating_system": "Unknown", - "image": "testdata/fixtures/alpine-310.tar.gz (alpine 3.10.2)" + "image": "testdata/fixtures/images/alpine-310.tar.gz (alpine 3.10.2)" }, "identifiers": [ { diff --git a/integration/testdata/alpine-310.html.golden b/integration/testdata/alpine-310.html.golden index 8377a276a2..598657d87a 100644 --- a/integration/testdata/alpine-310.html.golden +++ b/integration/testdata/alpine-310.html.golden @@ -51,7 +51,7 @@ } a.toggle-more-links { cursor: pointer; } -
| alpine | |||||
|---|---|---|---|---|---|