Skip to content

Commit ec93346

Browse files
Sophie Wigmoreryanmoran
Sophie Wigmore
authored andcommitted
Add source and source sha256 to postal dependency bom gen
1 parent 5372d7c commit ec93346

File tree

2 files changed

+85
-65
lines changed

2 files changed

+85
-65
lines changed

postal/service.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,12 @@ func (s Service) GenerateBillOfMaterials(dependencies ...Dependency) []packit.BO
189189
entry := packit.BOMEntry{
190190
Name: dependency.Name,
191191
Metadata: map[string]interface{}{
192-
"sha256": dependency.SHA256,
193-
"stacks": dependency.Stacks,
194-
"uri": dependency.URI,
195-
"version": dependency.Version,
192+
"sha256": dependency.SHA256,
193+
"source": dependency.Source,
194+
"source-sha256": dependency.SourceSHA256,
195+
"stacks": dependency.Stacks,
196+
"uri": dependency.URI,
197+
"version": dependency.Version,
196198
},
197199
}
198200

postal/service_test.go

+79-61
Original file line numberDiff line numberDiff line change
@@ -961,41 +961,47 @@ version = "this is super not semver"
961961
it("returns a list of BOMEntry values", func() {
962962
entries := service.GenerateBillOfMaterials(
963963
postal.Dependency{
964-
ID: "some-entry",
965-
Name: "Some Entry",
966-
SHA256: "some-sha",
967-
Source: "some-source",
968-
Stacks: []string{"some-stack"},
969-
URI: "some-uri",
970-
Version: "1.2.3",
964+
ID: "some-entry",
965+
Name: "Some Entry",
966+
SHA256: "some-sha",
967+
Source: "some-source",
968+
SourceSHA256: "some-source-sha",
969+
Stacks: []string{"some-stack"},
970+
URI: "some-uri",
971+
Version: "1.2.3",
971972
},
972973
postal.Dependency{
973-
ID: "other-entry",
974-
Name: "Other Entry",
975-
SHA256: "other-sha",
976-
Source: "other-source",
977-
Stacks: []string{"other-stack"},
978-
URI: "other-uri",
979-
Version: "4.5.6",
974+
ID: "other-entry",
975+
Name: "Other Entry",
976+
SHA256: "other-sha",
977+
Source: "other-source",
978+
SourceSHA256: "other-source-sha",
979+
Stacks: []string{"other-stack"},
980+
URI: "other-uri",
981+
Version: "4.5.6",
980982
},
981983
)
982984
Expect(entries).To(Equal([]packit.BOMEntry{
983985
{
984986
Name: "Some Entry",
985987
Metadata: map[string]interface{}{
986-
"sha256": "some-sha",
987-
"stacks": []string{"some-stack"},
988-
"uri": "some-uri",
989-
"version": "1.2.3",
988+
"sha256": "some-sha",
989+
"source": "some-source",
990+
"source-sha256": "some-source-sha",
991+
"stacks": []string{"some-stack"},
992+
"uri": "some-uri",
993+
"version": "1.2.3",
990994
},
991995
},
992996
{
993997
Name: "Other Entry",
994998
Metadata: map[string]interface{}{
995-
"sha256": "other-sha",
996-
"stacks": []string{"other-stack"},
997-
"uri": "other-uri",
998-
"version": "4.5.6",
999+
"sha256": "other-sha",
1000+
"source": "other-source",
1001+
"source-sha256": "other-source-sha",
1002+
"stacks": []string{"other-stack"},
1003+
"uri": "other-uri",
1004+
"version": "4.5.6",
9991005
},
10001006
},
10011007
}))
@@ -1005,26 +1011,29 @@ version = "this is super not semver"
10051011
it("generates a BOM with the CPE", func() {
10061012
entries := service.GenerateBillOfMaterials(
10071013
postal.Dependency{
1008-
CPE: "some-cpe",
1009-
ID: "some-entry",
1010-
Name: "Some Entry",
1011-
SHA256: "some-sha",
1012-
Source: "some-source",
1013-
Stacks: []string{"some-stack"},
1014-
URI: "some-uri",
1015-
Version: "1.2.3",
1014+
CPE: "some-cpe",
1015+
ID: "some-entry",
1016+
Name: "Some Entry",
1017+
SHA256: "some-sha",
1018+
Source: "some-source",
1019+
SourceSHA256: "some-source-sha",
1020+
Stacks: []string{"some-stack"},
1021+
URI: "some-uri",
1022+
Version: "1.2.3",
10161023
},
10171024
)
10181025

10191026
Expect(entries).To(Equal([]packit.BOMEntry{
10201027
{
10211028
Name: "Some Entry",
10221029
Metadata: map[string]interface{}{
1023-
"cpe": "some-cpe",
1024-
"sha256": "some-sha",
1025-
"stacks": []string{"some-stack"},
1026-
"uri": "some-uri",
1027-
"version": "1.2.3",
1030+
"cpe": "some-cpe",
1031+
"sha256": "some-sha",
1032+
"source": "some-source",
1033+
"source-sha256": "some-source-sha",
1034+
"stacks": []string{"some-stack"},
1035+
"uri": "some-uri",
1036+
"version": "1.2.3",
10281037
},
10291038
},
10301039
}))
@@ -1048,6 +1057,7 @@ version = "this is super not semver"
10481057
Name: "Some Entry",
10491058
SHA256: "some-sha",
10501059
Source: "some-source",
1060+
SourceSHA256: "some-source-sha",
10511061
Stacks: []string{"some-stack"},
10521062
URI: "some-uri",
10531063
Version: "1.2.3",
@@ -1060,6 +1070,8 @@ version = "this is super not semver"
10601070
Metadata: map[string]interface{}{
10611071
"deprecation-date": deprecationDate,
10621072
"sha256": "some-sha",
1073+
"source": "some-source",
1074+
"source-sha256": "some-source-sha",
10631075
"stacks": []string{"some-stack"},
10641076
"uri": "some-uri",
10651077
"version": "1.2.3",
@@ -1073,26 +1085,29 @@ version = "this is super not semver"
10731085
it("generates a BOM with the license information", func() {
10741086
entries := service.GenerateBillOfMaterials(
10751087
postal.Dependency{
1076-
ID: "some-entry",
1077-
Licenses: []string{"some-license"},
1078-
Name: "Some Entry",
1079-
SHA256: "some-sha",
1080-
Source: "some-source",
1081-
Stacks: []string{"some-stack"},
1082-
URI: "some-uri",
1083-
Version: "1.2.3",
1088+
ID: "some-entry",
1089+
Licenses: []string{"some-license"},
1090+
Name: "Some Entry",
1091+
SHA256: "some-sha",
1092+
Source: "some-source",
1093+
SourceSHA256: "some-source-sha",
1094+
Stacks: []string{"some-stack"},
1095+
URI: "some-uri",
1096+
Version: "1.2.3",
10841097
},
10851098
)
10861099

10871100
Expect(entries).To(Equal([]packit.BOMEntry{
10881101
{
10891102
Name: "Some Entry",
10901103
Metadata: map[string]interface{}{
1091-
"licenses": []string{"some-license"},
1092-
"sha256": "some-sha",
1093-
"stacks": []string{"some-stack"},
1094-
"uri": "some-uri",
1095-
"version": "1.2.3",
1104+
"licenses": []string{"some-license"},
1105+
"sha256": "some-sha",
1106+
"source": "some-source",
1107+
"source-sha256": "some-source-sha",
1108+
"stacks": []string{"some-stack"},
1109+
"uri": "some-uri",
1110+
"version": "1.2.3",
10961111
},
10971112
},
10981113
}))
@@ -1103,26 +1118,29 @@ version = "this is super not semver"
11031118
it("generates a BOM with the pURL", func() {
11041119
entries := service.GenerateBillOfMaterials(
11051120
postal.Dependency{
1106-
ID: "some-entry",
1107-
Name: "Some Entry",
1108-
PURL: "some-purl",
1109-
SHA256: "some-sha",
1110-
Source: "some-source",
1111-
Stacks: []string{"some-stack"},
1112-
URI: "some-uri",
1113-
Version: "1.2.3",
1121+
ID: "some-entry",
1122+
Name: "Some Entry",
1123+
PURL: "some-purl",
1124+
SHA256: "some-sha",
1125+
Source: "some-source",
1126+
SourceSHA256: "some-source-sha",
1127+
Stacks: []string{"some-stack"},
1128+
URI: "some-uri",
1129+
Version: "1.2.3",
11141130
},
11151131
)
11161132

11171133
Expect(entries).To(Equal([]packit.BOMEntry{
11181134
{
11191135
Name: "Some Entry",
11201136
Metadata: map[string]interface{}{
1121-
"purl": "some-purl",
1122-
"sha256": "some-sha",
1123-
"stacks": []string{"some-stack"},
1124-
"uri": "some-uri",
1125-
"version": "1.2.3",
1137+
"purl": "some-purl",
1138+
"sha256": "some-sha",
1139+
"source": "some-source",
1140+
"source-sha256": "some-source-sha",
1141+
"stacks": []string{"some-stack"},
1142+
"uri": "some-uri",
1143+
"version": "1.2.3",
11261144
},
11271145
},
11281146
}))

0 commit comments

Comments
 (0)