podman

Форк
0
65 строк · 2.4 Кб
1
package sbom
2

3
import "github.com/containers/buildah/define"
4

5
// Preset returns a predefined SBOMScanOptions structure that has the passed-in
6
// name as one of its "Type" values.
7
func Preset(name string) (preset *define.SBOMScanOptions, err error) {
8
	// If you change these, make sure you update references in
9
	// buildah-commit.1.md and buildah-build.1.md to match!
10
	presets := []define.SBOMScanOptions{
11
		{
12
			Type:  []string{"", "syft", "syft-cyclonedx"},
13
			Image: "ghcr.io/anchore/syft",
14
			Commands: []string{
15
				"/syft scan -q dir:{ROOTFS} --output cyclonedx-json={OUTPUT}",
16
				"/syft scan -q dir:{CONTEXT} --output cyclonedx-json={OUTPUT}",
17
			},
18
			// ImageSBOMOutput: "/root/buildinfo/content_manifests/sbom-cyclonedx.json",
19
			// ImagePURLOutput: "/root/buildinfo/content_manifests/sbom-purl.json",
20
			MergeStrategy: define.SBOMMergeStrategyCycloneDXByComponentNameAndVersion,
21
		},
22
		{
23
			Type:  []string{"syft-spdx"},
24
			Image: "ghcr.io/anchore/syft",
25
			Commands: []string{
26
				"/syft scan -q dir:{ROOTFS} --output spdx-json={OUTPUT}",
27
				"/syft scan -q dir:{CONTEXT} --output spdx-json={OUTPUT}",
28
			},
29
			// ImageSBOMOutput: "/root/buildinfo/content_manifests/sbom-spdx.json",
30
			// ImagePURLOutput: "/root/buildinfo/content_manifests/sbom-purl.json",
31
			MergeStrategy: define.SBOMMergeStrategySPDXByPackageNameAndVersionInfo,
32
		},
33

34
		{
35
			Type:  []string{"trivy", "trivy-cyclonedx"},
36
			Image: "ghcr.io/aquasecurity/trivy",
37
			Commands: []string{
38
				"trivy filesystem -q {ROOTFS} --format cyclonedx --output {OUTPUT}",
39
				"trivy filesystem -q {CONTEXT} --format cyclonedx --output {OUTPUT}",
40
			},
41
			// ImageSBOMOutput: "/root/buildinfo/content_manifests/sbom-cyclonedx.json",
42
			// ImagePURLOutput: "/root/buildinfo/content_manifests/sbom-purl.json",
43
			MergeStrategy: define.SBOMMergeStrategyCycloneDXByComponentNameAndVersion,
44
		},
45
		{
46
			Type:  []string{"trivy-spdx"},
47
			Image: "ghcr.io/aquasecurity/trivy",
48
			Commands: []string{
49
				"trivy filesystem -q {ROOTFS} --format spdx-json --output {OUTPUT}",
50
				"trivy filesystem -q {CONTEXT} --format spdx-json --output {OUTPUT}",
51
			},
52
			// ImageSBOMOutput: "/root/buildinfo/content_manifests/sbom-spdx.json",
53
			// ImagePURLOutput: "/root/buildinfo/content_manifests/sbom-purl.json",
54
			MergeStrategy: define.SBOMMergeStrategySPDXByPackageNameAndVersionInfo,
55
		},
56
	}
57
	for _, preset := range presets {
58
		for _, presetName := range preset.Type {
59
			if presetName == name {
60
				return &preset, nil
61
			}
62
		}
63
	}
64
	return nil, nil
65
}
66

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.