|
191 | 191 | ;; case 9 - 1 package, 1 CPE, 1 CVE but SHADED - (*** humio-sender shades two libraries) |
192 | 192 | (defn transact-dependency [request org repo commit {:keys [fileName license sha256 packages vulnerabilityIds vulnerabilities]}] |
193 | 193 | (go-safe |
194 | | - (let [cpes (->> (seq vulnerabilityIds) |
| 194 | + (let [commit "$commit" |
| 195 | + cpes (->> (seq vulnerabilityIds) |
195 | 196 | (map-indexed (fn [index {:keys [id confidence url]}] |
196 | | - (let [cpe-evidence (gstring/format "cpe-evidence-%s-%d" fileName index)] |
| 197 | + (let [cpe-evidence (gstring/format "cpe-evidence-%s-%d" fileName index) |
| 198 | + cpe (gstring/format "cpe-%s-%d" fileName index)] |
197 | 199 | [(merge |
198 | 200 | {:schema/entity-type :vulnerability/cpe |
199 | | - :schema/entity (gstring/format "vuln-%s-%d" fileName index) |
200 | | - :vulnerability.cpe/evidence {:add [cpe-evidence]} |
| 201 | + :schema/entity cpe |
201 | 202 | :vulnerability.cpe/url id} |
202 | 203 | (when url {:vulnerability.cpe/search-url url})) |
203 | 204 | {:schema/entity-type :package/evidence |
204 | 205 | :schema/entity cpe-evidence |
| 206 | + :package.evidence/commit commit |
205 | 207 | :package.evidence/dependency fileName |
| 208 | + :package.evidence/cpe cpe |
206 | 209 | :package.evidence/source :package.evidence.source/DEPENDENCY_CHECK |
207 | 210 | :package.evidence/confidence confidence}]))) |
208 | 211 | (apply concat)) |
209 | 212 | purls (->> (seq packages) |
210 | 213 | (map-indexed (fn [index {:keys [id confidence url]}] |
211 | | - (let [package-evidence (gstring/format "package-evidence-%s-%d" fileName index)] |
| 214 | + (let [package-evidence (gstring/format "package-evidence-%s-%d" fileName index) |
| 215 | + purl (gstring/format "package-%s-%d" fileName index)] |
212 | 216 | [{:schema/entity-type :package/url |
213 | | - :schema/entity (gstring/format "package-%s-%d" fileName index) |
214 | | - :package.url/evidence {:add [package-evidence]} |
| 217 | + :schema/entity purl |
215 | 218 | :package.url/url id |
216 | 219 | :package.url/search-url url} |
217 | 220 | {:schema/entity-type :package/evidence |
218 | 221 | :schema/entity package-evidence |
| 222 | + :package.evidence/commit commit |
219 | 223 | :package.evidence/dependency fileName |
| 224 | + :package.evidence/purl purl |
220 | 225 | :package.evidence/confidence confidence |
221 | 226 | :package.evidence/source :package.evidence.source/DEPENDENCY_CHECK}]))) |
222 | 227 | (apply concat)) |
|
257 | 262 | :git.provider/url (:git.provider/url org) |
258 | 263 | :git.repo/source-id (:git.repo/source-id repo)} |
259 | 264 | {:schema/entity-type :git/commit |
260 | | - :schema/entity "$commit" |
| 265 | + :schema/entity commit |
261 | 266 | :git.provider/url (:git.provider/url org) |
262 | 267 | :git.commit/sha (:git.commit/sha commit) |
263 | | - :git.commit/repo "$repo" |
264 | | - |
265 | | - ;; add discovered dependencies to the Commit |
266 | | - :git.commit/dependency-evidence |
267 | | - {:add (->> entities |
268 | | - (filter #(= :package/evidence (:schema/entity-type %))) |
269 | | - (map :schema/entity) |
270 | | - (into []))}}]) |
| 268 | + :git.commit/repo "$repo"}]) |
271 | 269 | (into []))))))) |
272 | 270 |
|
273 | 271 | (defn transact-vulns [handler] |
|
423 | 421 | (let [{:git.commit/keys [sha]} (-> request :subscription :result first first) |
424 | 422 | summary (->> (-> request :subscription :result first) |
425 | 423 | (map second) |
426 | | - (map (fn [{:vulnerability.cve/keys [source-id source cvss-score] |
427 | | - cpes :vulnerability.cpe/_cves |
428 | | - packages :package.url/_cves}] |
429 | | - (gstring/format "%-20s%-10s(%-5s) -- %s - %s" source-id source cvss-score cpes packages))) |
| 424 | + (map (fn [{:package.evidence/keys [confidence source purl cpe]} |
| 425 | + {{:package.dependency/keys [license fileName]} :package.evidence/dependency}] |
| 426 | + (or |
| 427 | + (if-let [{:package.url/keys [url]} purl] |
| 428 | + (gstring/format "%s, %s, %s, %s, %s" url source confidence fileName license)) |
| 429 | + (if-let [{:vulnerability.cpe/keys [url]} cpe] |
| 430 | + (gstring/format "%s, %s, %s, %s, %s" url source confidence fileName license))))) |
430 | 431 | (interpose "\n* ") |
431 | 432 | (apply str))] |
432 | 433 | (<? (handler (assoc request |
|
0 commit comments