mirror of
https://github.com/anchore/syft.git
synced 2026-10-30 14:02:26 +01:00
Compare commits
18
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6676bb7459 | ||
|
|
20b692df04 | ||
|
|
434f100add | ||
|
|
bad5cf2af8 | ||
|
|
20a26a0dfe | ||
|
|
6440f26b5a | ||
|
|
f2633800ce | ||
|
|
4f227bf447 | ||
|
|
d70eb3d04b | ||
|
|
fe4819bc08 | ||
|
|
b26b38d6c5 | ||
|
|
31969136e3 | ||
|
|
f6845474bd | ||
|
|
e1cadead1d | ||
|
|
3e71f46fc8 | ||
|
|
3b01e13f92 | ||
|
|
25c2e60358 | ||
|
|
dc7fa21980 |
+1
-1
@@ -111,7 +111,7 @@ tools:
|
||||
# used for triggering a release
|
||||
- name: gh
|
||||
version:
|
||||
want: v2.47.0
|
||||
want: v2.48.0
|
||||
method: github-release
|
||||
with:
|
||||
repo: cli/cli
|
||||
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
OUTPUT="${OUTPUT//$'\r'/'%0D'}" # URL encode all '\r' characters
|
||||
echo "result=$OUTPUT" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
|
||||
- uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2
|
||||
with:
|
||||
name: benchmark-test-results
|
||||
path: test/results/**/*
|
||||
|
||||
@@ -45,7 +45,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@4355270be187e1b672a7a1c7c7bae5afdc1ab94a #v3.24.10
|
||||
uses: github/codeql-action/init@c7f9125735019aa87cfc361530512d50ea439c71 #v3.25.1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -56,7 +56,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@4355270be187e1b672a7a1c7c7bae5afdc1ab94a #v3.24.10
|
||||
uses: github/codeql-action/autobuild@c7f9125735019aa87cfc361530512d50ea439c71 #v3.25.1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -70,4 +70,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@4355270be187e1b672a7a1c7c7bae5afdc1ab94a #v3.24.10
|
||||
uses: github/codeql-action/analyze@c7f9125735019aa87cfc361530512d50ea439c71 #v3.25.1
|
||||
|
||||
@@ -50,7 +50,7 @@ jobs:
|
||||
app_id: ${{ secrets.TOKEN_APP_ID }}
|
||||
private_key: ${{ secrets.TOKEN_APP_PRIVATE_KEY }}
|
||||
|
||||
- uses: peter-evans/create-pull-request@c55203cfde3e5c11a452d352b4393e68b85b4533 #v6.0.3
|
||||
- uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83 #v6.0.4
|
||||
with:
|
||||
signoff: true
|
||||
delete-branch: true
|
||||
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
app_id: ${{ secrets.TOKEN_APP_ID }}
|
||||
private_key: ${{ secrets.TOKEN_APP_PRIVATE_KEY }}
|
||||
|
||||
- uses: peter-evans/create-pull-request@c55203cfde3e5c11a452d352b4393e68b85b4533 #v6.0.3
|
||||
- uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83 #v6.0.4
|
||||
with:
|
||||
signoff: true
|
||||
delete-branch: true
|
||||
|
||||
@@ -44,7 +44,7 @@ jobs:
|
||||
app_id: ${{ secrets.TOKEN_APP_ID }}
|
||||
private_key: ${{ secrets.TOKEN_APP_PRIVATE_KEY }}
|
||||
|
||||
- uses: peter-evans/create-pull-request@c55203cfde3e5c11a452d352b4393e68b85b4533 #v6.0.3
|
||||
- uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83 #v6.0.4
|
||||
with:
|
||||
signoff: true
|
||||
delete-branch: true
|
||||
|
||||
@@ -29,7 +29,7 @@ require (
|
||||
github.com/dave/jennifer v1.7.0
|
||||
github.com/deitch/magic v0.0.0-20230404182410-1ff89d7342da
|
||||
github.com/distribution/reference v0.6.0
|
||||
github.com/docker/docker v26.0.1+incompatible
|
||||
github.com/docker/docker v26.0.2+incompatible
|
||||
github.com/dustin/go-humanize v1.0.1
|
||||
github.com/elliotchance/phpserialize v1.4.0
|
||||
github.com/facebookincubator/nvdtools v0.1.5
|
||||
@@ -66,7 +66,7 @@ require (
|
||||
// pinned to pull in 386 arch fix: https://github.com/scylladb/go-set/commit/cc7b2070d91ebf40d233207b633e28f5bd8f03a5
|
||||
github.com/scylladb/go-set v1.0.3-0.20200225121959-cc7b2070d91e
|
||||
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3
|
||||
github.com/spdx/tools-golang v0.5.3
|
||||
github.com/spdx/tools-golang v0.5.4
|
||||
github.com/spf13/afero v1.11.0
|
||||
github.com/spf13/cobra v1.8.0
|
||||
github.com/stretchr/testify v1.9.0
|
||||
@@ -80,7 +80,7 @@ require (
|
||||
golang.org/x/mod v0.17.0
|
||||
golang.org/x/net v0.24.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
modernc.org/sqlite v1.29.6
|
||||
modernc.org/sqlite v1.29.8
|
||||
)
|
||||
|
||||
require (
|
||||
@@ -136,7 +136,7 @@ require (
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang/protobuf v1.5.3 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 // indirect
|
||||
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
@@ -155,7 +155,7 @@ require (
|
||||
github.com/magiconair/properties v1.8.7 // indirect
|
||||
github.com/maruel/natural v1.1.1 // indirect
|
||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||
github.com/mattn/go-isatty v0.0.18 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/mattn/go-localereader v0.0.2-0.20220822084749-2491eb6c1c75 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.15 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
|
||||
@@ -224,7 +224,7 @@ require (
|
||||
golang.org/x/sys v0.19.0 // indirect
|
||||
golang.org/x/term v0.19.0 // indirect
|
||||
golang.org/x/text v0.14.0 // indirect
|
||||
golang.org/x/tools v0.17.0 // indirect
|
||||
golang.org/x/tools v0.19.0 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
|
||||
google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
|
||||
@@ -233,9 +233,9 @@ require (
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect
|
||||
modernc.org/libc v1.41.0 // indirect
|
||||
modernc.org/libc v1.49.3 // indirect
|
||||
modernc.org/mathutil v1.6.0 // indirect
|
||||
modernc.org/memory v1.7.2 // indirect
|
||||
modernc.org/memory v1.8.0 // indirect
|
||||
modernc.org/strutil v1.2.0 // indirect
|
||||
modernc.org/token v1.1.0 // indirect
|
||||
)
|
||||
|
||||
@@ -223,8 +223,8 @@ github.com/docker/cli v24.0.0+incompatible h1:0+1VshNwBQzQAx9lOl+OYCTCEAD8fKs/qe
|
||||
github.com/docker/cli v24.0.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
||||
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
|
||||
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||
github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA=
|
||||
github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/docker v26.0.2+incompatible h1:yGVmKUFGgcxA6PXWAokO0sQL22BrQ67cgVjko8tGdXE=
|
||||
github.com/docker/docker v26.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A=
|
||||
github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0=
|
||||
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
|
||||
@@ -398,8 +398,8 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe
|
||||
github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg=
|
||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
|
||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
|
||||
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo=
|
||||
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
@@ -536,8 +536,8 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA
|
||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||
github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98=
|
||||
github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-localereader v0.0.2-0.20220822084749-2491eb6c1c75 h1:P8UmIzZMYDR+NGImiFvErt6VWfIRPuGM+vyjiEdkmIw=
|
||||
github.com/mattn/go-localereader v0.0.2-0.20220822084749-2491eb6c1c75/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88=
|
||||
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
||||
@@ -714,8 +714,8 @@ github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9yS
|
||||
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
|
||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/spdx/gordf v0.0.0-20201111095634-7098f93598fb/go.mod h1:uKWaldnbMnjsSAXRurWqqrdyZen1R7kxl8TkmWk2OyM=
|
||||
github.com/spdx/tools-golang v0.5.3 h1:ialnHeEYUC4+hkm5vJm4qz2x+oEJbS0mAMFrNXdQraY=
|
||||
github.com/spdx/tools-golang v0.5.3/go.mod h1:/ETOahiAo96Ob0/RAIBmFZw6XN0yTnyr/uFZm2NTMhI=
|
||||
github.com/spdx/tools-golang v0.5.4 h1:fRW4iz16P1ZCUtWStFqS6YiMgnK7WgfTFU/lrsYlvqY=
|
||||
github.com/spdx/tools-golang v0.5.4/go.mod h1:MVIsXx8ZZzaRWNQpUDhC4Dud34edUYJYecciXgrw5vE=
|
||||
github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
|
||||
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
|
||||
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
|
||||
@@ -1155,8 +1155,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc=
|
||||
golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
|
||||
golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
|
||||
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -1349,18 +1349,28 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
modernc.org/cc/v4 v4.20.0 h1:45Or8mQfbUqJOG9WaxvlFYOAQO0lQ5RvqBcFCXngjxk=
|
||||
modernc.org/cc/v4 v4.20.0/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ=
|
||||
modernc.org/ccgo/v4 v4.16.0 h1:ofwORa6vx2FMm0916/CkZjpFPSR70VwTjUCe2Eg5BnA=
|
||||
modernc.org/ccgo/v4 v4.16.0/go.mod h1:dkNyWIjFrVIZ68DTo36vHK+6/ShBn4ysU61So6PIqCI=
|
||||
modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
|
||||
modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
|
||||
modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw=
|
||||
modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU=
|
||||
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI=
|
||||
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
|
||||
modernc.org/libc v1.41.0 h1:g9YAc6BkKlgORsUWj+JwqoB1wU3o4DE3bM3yvA3k+Gk=
|
||||
modernc.org/libc v1.41.0/go.mod h1:w0eszPsiXoOnoMJgrXjglgLuDy/bt5RR4y3QzUUeodY=
|
||||
modernc.org/libc v1.49.3 h1:j2MRCRdwJI2ls/sGbeSk0t2bypOG/uvPZUsGQFDulqg=
|
||||
modernc.org/libc v1.49.3/go.mod h1:yMZuGkn7pXbKfoT/M35gFJOAEdSKdxL0q64sF7KqCDo=
|
||||
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
|
||||
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
|
||||
modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E=
|
||||
modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E=
|
||||
modernc.org/sqlite v1.29.6 h1:0lOXGrycJPptfHDuohfYgNqoe4hu+gYuN/pKgY5XjS4=
|
||||
modernc.org/sqlite v1.29.6/go.mod h1:S02dvcmm7TnTRvGhv8IGYyLnIt7AS2KPaB1F/71p75U=
|
||||
modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E=
|
||||
modernc.org/memory v1.8.0/go.mod h1:XPZ936zp5OMKGWPqbD3JShgd/ZoQ7899TUuQqxY+peU=
|
||||
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
|
||||
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
|
||||
modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc=
|
||||
modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss=
|
||||
modernc.org/sqlite v1.29.8 h1:nGKglNx9K5v0As+zF0/Gcl1kMkmaU1XynYyq92PbsC8=
|
||||
modernc.org/sqlite v1.29.8/go.mod h1:lQPm27iqa4UNZpmr4Aor0MH0HkCLbt1huYDfWylLZFk=
|
||||
modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
|
||||
modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
|
||||
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
||||
@@ -1368,4 +1378,4 @@ modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
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/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
|
||||
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
package unionreader
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"math"
|
||||
"sync"
|
||||
)
|
||||
|
||||
// lazyUnionReader must implement UnionReader
|
||||
var _ UnionReader = (*lazyUnionReader)(nil)
|
||||
|
||||
// lazyUnionReader wraps an io.Reader to make it into a logical ReadSeeker
|
||||
// The reader maintains a []byte, which is everything that has been read so far.
|
||||
// Otherwise, callers needing a ReadSeeker might copy the entire reader into
|
||||
// a buffer in order to have a seeker.
|
||||
type lazyUnionReader struct {
|
||||
buf []byte // the bytes that have been read so far
|
||||
cursor int64 // the current position where Read() will take place
|
||||
rc io.ReadCloser // the underlying reader
|
||||
mu sync.Mutex // exported methods must acquire this lock before changing any field. Unexported methods assume their caller acquired the lock
|
||||
}
|
||||
|
||||
func (c *lazyUnionReader) Read(p []byte) (n int, err error) {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
needBytes := int64(len(p))
|
||||
newOffset := c.cursor + needBytes
|
||||
err = c.ensureReadUntil(newOffset)
|
||||
if err != nil && !errors.Is(err, io.EOF) {
|
||||
return 0, err
|
||||
}
|
||||
// stop reading either at cursor + length p, or the end of the underlying reader,
|
||||
// whichever is sooner
|
||||
end := min(c.cursor+int64(len(p)), int64(len(c.buf)))
|
||||
copy(p, c.buf[c.cursor:end])
|
||||
n = int(end - c.cursor)
|
||||
c.cursor = end
|
||||
return n, err
|
||||
}
|
||||
|
||||
func (c *lazyUnionReader) ReadAt(p []byte, off int64) (n int, err error) {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
needUntil := int64(len(p)) + off
|
||||
err = c.ensureReadUntil(needUntil)
|
||||
end := min(off+int64(len(p)), int64(len(c.buf)))
|
||||
start := min(off, c.maxRead())
|
||||
if off > start {
|
||||
return 0, io.EOF
|
||||
}
|
||||
copy(p, c.buf[start:end])
|
||||
return int(end - start), err
|
||||
}
|
||||
|
||||
func (c *lazyUnionReader) Seek(offset int64, whence int) (int64, error) {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
var trueOffset int64
|
||||
var err error
|
||||
switch whence {
|
||||
case io.SeekStart:
|
||||
trueOffset = offset
|
||||
case io.SeekCurrent:
|
||||
trueOffset = offset + c.cursor
|
||||
err = c.ensureReadUntil(trueOffset)
|
||||
case io.SeekEnd:
|
||||
err = c.readAll()
|
||||
trueOffset = c.maxRead() + offset
|
||||
}
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if trueOffset < 0 {
|
||||
return 0, fmt.Errorf("request to read negative offset impossible %v", trueOffset)
|
||||
}
|
||||
trueOffset = min(c.maxRead(), trueOffset)
|
||||
c.cursor = trueOffset
|
||||
return c.cursor, nil
|
||||
}
|
||||
|
||||
func (c *lazyUnionReader) Close() error {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
return c.rc.Close()
|
||||
}
|
||||
|
||||
func (c *lazyUnionReader) readAll() error {
|
||||
buf, err := io.ReadAll(c.rc)
|
||||
switch {
|
||||
case err != nil && errors.Is(err, io.EOF):
|
||||
err = nil
|
||||
case err != nil:
|
||||
return err
|
||||
}
|
||||
c.buf = append(c.buf, buf...)
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *lazyUnionReader) ensureReadUntil(offset int64) error {
|
||||
readN := offset - c.maxRead()
|
||||
if readN <= 0 {
|
||||
return nil
|
||||
}
|
||||
var buf bytes.Buffer
|
||||
_, err := io.CopyN(&buf, c.rc, readN)
|
||||
if err != nil && !errors.Is(err, io.EOF) {
|
||||
return err
|
||||
}
|
||||
c.buf = append(c.buf, buf.Bytes()...)
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *lazyUnionReader) maxRead() int64 {
|
||||
return int64(len(c.buf))
|
||||
}
|
||||
|
||||
func min(ints ...int64) int64 {
|
||||
minSeeen := int64(math.MaxInt64) // really? math.MaxInt64 has type int?
|
||||
for _, n := range ints {
|
||||
if n < minSeeen {
|
||||
minSeeen = n
|
||||
}
|
||||
}
|
||||
return minSeeen
|
||||
}
|
||||
|
||||
func newLazyUnionReader(readCloser io.ReadCloser) UnionReader {
|
||||
return &lazyUnionReader{
|
||||
rc: readCloser,
|
||||
mu: sync.Mutex{},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,212 @@
|
||||
package unionreader
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
type spyingCloser struct {
|
||||
closed bool
|
||||
io.Reader
|
||||
}
|
||||
|
||||
func (s *spyingCloser) Close() error {
|
||||
s.closed = true
|
||||
return nil
|
||||
}
|
||||
|
||||
func Test_lazyUnionReader_Close(t *testing.T) {
|
||||
r := strings.NewReader("some string")
|
||||
sc := &spyingCloser{
|
||||
false,
|
||||
r,
|
||||
}
|
||||
subject := newLazyUnionReader(sc)
|
||||
require.NoError(t, subject.Close())
|
||||
assert.True(t, sc.closed)
|
||||
}
|
||||
|
||||
func Test_lazyUnionReader_ReadAll(t *testing.T) {
|
||||
rc := io.NopCloser(strings.NewReader("some data"))
|
||||
subject := newLazyUnionReader(rc)
|
||||
|
||||
b, err := io.ReadAll(subject)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "some data", string(b))
|
||||
}
|
||||
|
||||
func Test_lazyUnionReader_RepeatedlyRead(t *testing.T) {
|
||||
data := "some data for our reader that we need to read!"
|
||||
rc := io.NopCloser(strings.NewReader(data))
|
||||
subject := newLazyUnionReader(rc)
|
||||
var readErr error
|
||||
var readResult []byte
|
||||
for readErr == nil {
|
||||
buf := make([]byte, 2)
|
||||
var n int
|
||||
n, readErr = subject.Read(buf)
|
||||
readResult = append(readResult, buf[:n]...)
|
||||
}
|
||||
assert.Equal(t, data, string(readResult))
|
||||
assert.ErrorIs(t, readErr, io.EOF)
|
||||
}
|
||||
|
||||
func Test_lazyUnionReader_ReadAt(t *testing.T) {
|
||||
readStart := make([]byte, 4)
|
||||
readMid := make([]byte, 4)
|
||||
readEnd := make([]byte, 4)
|
||||
tests := []struct {
|
||||
name string
|
||||
dst []byte
|
||||
off int64
|
||||
wantN int
|
||||
wantBytes []byte
|
||||
wantEOF bool
|
||||
}{
|
||||
{
|
||||
name: "read first 4 bytes",
|
||||
dst: readStart,
|
||||
off: 0,
|
||||
wantN: 4,
|
||||
wantBytes: []byte("0123"),
|
||||
},
|
||||
{
|
||||
name: "read 4 bytes from middle",
|
||||
dst: readMid,
|
||||
off: 4,
|
||||
wantN: 4,
|
||||
wantBytes: []byte("4567"),
|
||||
},
|
||||
{
|
||||
name: "read last 4 bytes",
|
||||
dst: readEnd,
|
||||
off: 12,
|
||||
wantN: 4,
|
||||
wantBytes: []byte("cdef"),
|
||||
},
|
||||
{
|
||||
name: "read past end",
|
||||
dst: make([]byte, 4),
|
||||
off: 14,
|
||||
wantN: 2,
|
||||
wantBytes: []byte("ef"),
|
||||
wantEOF: true,
|
||||
},
|
||||
{
|
||||
name: "read way out of bounds",
|
||||
dst: make([]byte, 4),
|
||||
off: 512,
|
||||
wantN: 0,
|
||||
wantEOF: true,
|
||||
},
|
||||
{
|
||||
name: "buffer more than available",
|
||||
dst: make([]byte, 512),
|
||||
off: 0,
|
||||
wantN: 16,
|
||||
wantBytes: []byte("0123456789abcdef"),
|
||||
wantEOF: true,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
rc := io.NopCloser(strings.NewReader("0123456789abcdef"))
|
||||
subject := newLazyUnionReader(rc)
|
||||
n, err := subject.ReadAt(tt.dst, tt.off)
|
||||
assert.Equal(t, tt.wantN, n)
|
||||
assert.Equal(t, string(tt.wantBytes), string(tt.dst[:tt.wantN]))
|
||||
if tt.wantEOF {
|
||||
assert.ErrorIs(t, err, io.EOF)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func Test_lazyUnionReader_Seek(t *testing.T) {
|
||||
//const seek = 0
|
||||
//const read = 1
|
||||
type command struct {
|
||||
seekOffset int64
|
||||
seekWhence int
|
||||
readDst []byte
|
||||
}
|
||||
data := []byte("this is a string of data that I'm very excited to share")
|
||||
tests := []struct {
|
||||
name string
|
||||
commands []command
|
||||
wantBytes []byte
|
||||
wantEOF bool
|
||||
}{
|
||||
{
|
||||
name: "read the first 4 bytes twice",
|
||||
commands: []command{
|
||||
{
|
||||
readDst: make([]byte, 4),
|
||||
},
|
||||
{
|
||||
seekOffset: 0,
|
||||
seekWhence: io.SeekStart,
|
||||
},
|
||||
{
|
||||
readDst: make([]byte, 4),
|
||||
},
|
||||
},
|
||||
wantBytes: []byte("thisthis"),
|
||||
},
|
||||
{
|
||||
name: "read the last 4 bytes twice",
|
||||
commands: []command{
|
||||
{
|
||||
seekWhence: io.SeekEnd,
|
||||
seekOffset: -4,
|
||||
},
|
||||
{
|
||||
readDst: make([]byte, 4),
|
||||
},
|
||||
{
|
||||
seekWhence: io.SeekEnd,
|
||||
seekOffset: -4,
|
||||
},
|
||||
{
|
||||
readDst: make([]byte, 4),
|
||||
},
|
||||
},
|
||||
wantBytes: []byte("harehare"),
|
||||
},
|
||||
{
|
||||
name: "read 4, skip 4, read 4",
|
||||
commands: []command{
|
||||
{readDst: make([]byte, 4)},
|
||||
{seekOffset: 4, seekWhence: io.SeekCurrent},
|
||||
{readDst: make([]byte, 4)},
|
||||
},
|
||||
wantBytes: []byte("thisa st"),
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
rc := io.NopCloser(bytes.NewReader(data))
|
||||
subject := newLazyUnionReader(rc)
|
||||
var readSeekErr error
|
||||
var readResult []byte
|
||||
for _, c := range tt.commands {
|
||||
var n int
|
||||
if len(c.readDst) > 0 {
|
||||
n, readSeekErr = subject.Read(c.readDst)
|
||||
readResult = append(readResult, c.readDst[:n]...)
|
||||
} else {
|
||||
_, readSeekErr = subject.Seek(c.seekOffset, c.seekWhence)
|
||||
}
|
||||
}
|
||||
if tt.wantEOF {
|
||||
assert.ErrorIs(t, readSeekErr, io.EOF)
|
||||
}
|
||||
assert.Equal(t, string(tt.wantBytes), string(readResult))
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
package unionreader
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
macho "github.com/anchore/go-macholibre"
|
||||
@@ -43,23 +41,5 @@ func GetUnionReader(readerCloser io.ReadCloser) (UnionReader, error) {
|
||||
if ok {
|
||||
return reader, nil
|
||||
}
|
||||
|
||||
b, err := io.ReadAll(readerCloser)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to read contents from binary: %w", err)
|
||||
}
|
||||
|
||||
bytesReader := bytes.NewReader(b)
|
||||
|
||||
reader = struct {
|
||||
io.ReadCloser
|
||||
io.ReaderAt
|
||||
io.Seeker
|
||||
}{
|
||||
ReadCloser: io.NopCloser(bytesReader),
|
||||
ReaderAt: bytesReader,
|
||||
Seeker: bytesReader,
|
||||
}
|
||||
|
||||
return reader, nil
|
||||
return newLazyUnionReader(readerCloser), nil
|
||||
}
|
||||
|
||||
@@ -1,16 +1,9 @@
|
||||
{
|
||||
"ecosystems": {
|
||||
"jenkins_plugins": {
|
||||
"DotCi": "cpe:2.3:a:jenkins:dotci:*:*:*:*:*:jenkins:*:*",
|
||||
"JDK_Parameter_Plugin": "cpe:2.3:a:jenkins:jdk_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"TestComplete": "cpe:2.3:a:jenkins:testcomplete_support:*:*:*:*:*:jenkins:*:*",
|
||||
"TestFairy": "cpe:2.3:a:jenkins:testfairy:*:*:*:*:*:jenkins:*:*",
|
||||
"absint-a3": "cpe:2.3:a:jenkins:absint_a3:*:*:*:*:*:jenkins:*:*",
|
||||
"absint-astree": "cpe:2.3:a:jenkins:absint_astree:*:*:*:*:*:jenkins:*:*",
|
||||
"accurev": "cpe:2.3:a:microfocus:accurev:*:*:*:*:*:jenkins:*:*",
|
||||
"accurev": "cpe:2.3:a:jenkins:accurev:*:*:*:*:*:jenkins:*:*",
|
||||
"active-choices": "cpe:2.3:a:jenkins:active_choices:*:*:*:*:*:jenkins:*:*",
|
||||
"active-directory": "cpe:2.3:a:jenkins:active_directory:*:*:*:*:*:jenkins:*:*",
|
||||
"agent-server-parameter": "cpe:2.3:a:jenkins:agent_server_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"alauda-kubernetes-support": "cpe:2.3:a:jenkins:alauda_kubernetes_support:*:*:*:*:*:jenkins:*:*",
|
||||
"analysis-core": "cpe:2.3:a:jenkins:static_analysis_utilities:*:*:*:*:*:jenkins:*:*",
|
||||
"anchore-container-scanner": "cpe:2.3:a:jenkins:anchore_container_image_scanner:*:*:*:*:*:jenkins:*:*",
|
||||
@@ -19,244 +12,129 @@
|
||||
"ansible-tower": "cpe:2.3:a:jenkins:ansible_tower:*:*:*:*:*:jenkins:*:*",
|
||||
"app-detector": "cpe:2.3:a:jenkins:application_detector:*:*:*:*:*:jenkins:*:*",
|
||||
"appdynamics": "cpe:2.3:a:jenkins:appdynamics:*:*:*:*:*:jenkins:*:*",
|
||||
"applatix": "cpe:2.3:a:jenkins:applatix:*:*:*:*:*:jenkins:*:*",
|
||||
"apprenda": "cpe:2.3:a:jenkins:apprenda:*:*:*:*:*:jenkins:*:*",
|
||||
"aqua-microscanner": "cpe:2.3:a:jenkins:aqua_microscanner:*:*:*:*:*:jenkins:*:*",
|
||||
"aqua-security-scanner": "cpe:2.3:a:jenkins:aqua_security_scanner:*:*:*:*:*:jenkins:*:*",
|
||||
"aqua-serverless": "cpe:2.3:a:jenkins:aqua_security_severless_scanner:*:*:*:*:*:jenkins:*:*",
|
||||
"artifact-repository-parameter": "cpe:2.3:a:jenkins:artifact_repository_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"assembla": "cpe:2.3:a:jenkins:assembla:*:*:*:*:*:jenkins:*:*",
|
||||
"assembla-merge-request-builder": "cpe:2.3:a:jenkins:assembla_merge_request_builder:*:*:*:*:*:jenkins:*:*",
|
||||
"atlassian-bitbucket-server-integration": "cpe:2.3:a:jenkins:bitbucket_server_integration:*:*:*:*:*:jenkins:*:*",
|
||||
"audit-trail": "cpe:2.3:a:jenkins:audit_trail:*:*:*:*:*:jenkins:*:*",
|
||||
"audit2db": "cpe:2.3:a:jenkins:audit_to_database:*:*:*:*:*:jenkins:*:*",
|
||||
"autocomplete-parameter": "cpe:2.3:a:jenkins:autocomplete_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"autonomiq": "cpe:2.3:a:jenkins:autonomiq:*:*:*:*:*:jenkins:*:*",
|
||||
"avatar": "cpe:2.3:a:jenkins:avatar:*:*:*:*:*:jenkins:*:*",
|
||||
"aws-beanstalk-publisher": "cpe:2.3:a:jenkins:aws_elastic_beanstalk_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"aws-cloudwatch-logs-publisher": "cpe:2.3:a:jenkins:aws_cloudwatch_logs_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"aws-codebuild": "cpe:2.3:a:jenkins:aws_codebuild:*:*:*:*:*:jenkins:*:*",
|
||||
"aws-codecommit-trigger": "cpe:2.3:a:jenkins:aws_codecommit_trigger:*:*:*:*:*:jenkins:*:*",
|
||||
"aws-codedeploy": "cpe:2.3:a:jenkins:aws_codedeploy:*:*:*:*:*:jenkins:*:*",
|
||||
"aws-device-farm": "cpe:2.3:a:jenkins:aws-device-farm:*:*:*:*:*:jenkins:*:*",
|
||||
"aws-global-configuration": "cpe:2.3:a:jenkins:aws_global_configuration:*:*:*:*:*:jenkins:*:*",
|
||||
"aws-sam": "cpe:2.3:a:jenkins:amazon_web_services_service_application_model:*:*:*:*:*:jenkins:*:*",
|
||||
"awseb-deployment": "cpe:2.3:a:jenkins:awseb_deployment:*:*:*:*:*:jenkins:*:*",
|
||||
"azure-acs": "cpe:2.3:a:jenkins:azure_container_service:*:*:*:*:*:jenkins:*:*",
|
||||
"azure-ad": "cpe:2.3:a:jenkins:azure_ad:*:*:*:*:*:jenkins:*:*",
|
||||
"azure-keyvault": "cpe:2.3:a:jenkins:azure_key_vault:*:*:*:*:*:jenkins:*:*",
|
||||
"azure-publishersettings-credentials": "cpe:2.3:a:jenkins:azure_publishersettings_credentials:*:*:*:*:*:jenkins:*:*",
|
||||
"azure-vm-agents": "cpe:2.3:a:jenkins:azure_vm_agents:*:*:*:*:*:jenkins:*:*",
|
||||
"backlog": "cpe:2.3:a:jenkins:backlog:*:*:*:*:*:jenkins:*:*",
|
||||
"badge": "cpe:2.3:a:jenkins:badge:*:*:*:*:*:jenkins:*:*",
|
||||
"batch-task": "cpe:2.3:a:jenkins:batch_task:*:*:*:*:*:jenkins:*:*",
|
||||
"beaker-builder": "cpe:2.3:a:jenkins:beaker_builder:*:*:*:*:*:jenkins:*:*",
|
||||
"bigpanda-jenkins": "cpe:2.3:a:jenkins:bigpanda_notifier:*:*:*:*:*:jenkins:*:*",
|
||||
"bitbucket-approve": "cpe:2.3:a:jenkins:bitbucket_approve:*:*:*:*:*:jenkins:*:*",
|
||||
"bitbucket-branch-source": "cpe:2.3:a:jenkins:bitbucket_branch_source:*:*:*:*:*:jenkins:*:*",
|
||||
"bitbucket-oauth": "cpe:2.3:a:jenkins:bitbucket_oauth:*:*:*:*:*:jenkins:*:*",
|
||||
"blackduck-detect": "cpe:2.3:a:jenkins:synopsys_detect:*:*:*:*:*:jenkins:*:*",
|
||||
"blackduck-hub": "cpe:2.3:a:jenkins:black_duck_hub:*:*:*:*:*:jenkins:*:*",
|
||||
"blueocean": "cpe:2.3:a:jenkins:blue_ocean:*:*:*:*:*:jenkins:*:*",
|
||||
"bmc-rpd": "cpe:2.3:a:jenkins:bmc_release_package_and_deployment:*:*:*:*:*:jenkins:*:*",
|
||||
"brakeman": "cpe:2.3:a:jenkins:brakeman:*:*:*:*:*:jenkins:*:*",
|
||||
"bugzilla": "cpe:2.3:a:jenkins:bugzilla_plugin:*:*:*:*:*:jenkins:*:*",
|
||||
"build-failure-analyzer": "cpe:2.3:a:jenkins:build_failure_analyzer:*:*:*:*:*:jenkins:*:*",
|
||||
"build-metrics": "cpe:2.3:a:jenkins:build-metrics:*:*:*:*:*:jenkins:*:*",
|
||||
"build-notifications": "cpe:2.3:a:jenkins:build_notifications:*:*:*:*:*:jenkins:*:*",
|
||||
"build-pipeline": "cpe:2.3:a:jenkins:build_pipeline:*:*:*:*:*:jenkins:*:*",
|
||||
"build-publisher": "cpe:2.3:a:jenkins:build-publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"build-with-parameters": "cpe:2.3:a:jenkins:build_with_parameters:*:*:*:*:*:jenkins:*:*",
|
||||
"buildgraph-view": "cpe:2.3:a:jenkins:buildgraph-view:*:*:*:*:*:jenkins:*:*",
|
||||
"cas": "cpe:2.3:a:jenkins:cas:*:*:*:*:*:jenkins:*:*",
|
||||
"catalogic-ecx": "cpe:2.3:a:jenkins:ecx_copy_data_management:*:*:*:*:*:jenkins:*:*",
|
||||
"cccc": "cpe:2.3:a:jenkins:cccc:*:*:*:*:*:jenkins:*:*",
|
||||
"ccm": "cpe:2.3:a:jenkins:ccm:*:*:*:*:*:jenkins:*:*",
|
||||
"checkmarx": "cpe:2.3:a:jenkins:checkmarx:*:*:*:*:*:jenkins:*:*",
|
||||
"checkstyle": "cpe:2.3:a:jenkins:checkstyle:*:*:*:*:*:jenkins:*:*",
|
||||
"chosen-views-tabbar": "cpe:2.3:a:jenkins:chosen-views-tabbar:*:*:*:*:*:jenkins:*:*",
|
||||
"ci-with-toad-edge": "cpe:2.3:a:jenkins:continuous_integration_with_toad_edge:*:*:*:*:*:jenkins:*:*",
|
||||
"cisco-spark": "cpe:2.3:a:jenkins:cisco_spark:*:*:*:*:*:jenkins:*:*",
|
||||
"claim": "cpe:2.3:a:jenkins:claim:*:*:*:*:*:jenkins:*:*",
|
||||
"clearcase-release": "cpe:2.3:a:jenkins:clearcase_release:*:*:*:*:*:jenkins:*:*",
|
||||
"clif-performance-testing": "cpe:2.3:a:jenkins:clif_performance_testing:*:*:*:*:*:jenkins:*:*",
|
||||
"cloud-stats": "cpe:2.3:a:jenkins:cloud_statistics:*:*:*:*:*:jenkins:*:*",
|
||||
"cloudbees-folder": "cpe:2.3:a:jenkins:folders:*:*:*:*:*:jenkins:*:*",
|
||||
"cloudbees-jenkins-advisor": "cpe:2.3:a:jenkins:health_advisor_by_cloudbees:*:*:*:*:*:jenkins:*:*",
|
||||
"cloudcoreo-deploytime": "cpe:2.3:a:jenkins:cloudcoreo_deploytime:*:*:*:*:*:jenkins:*:*",
|
||||
"cloudfoundry": "cpe:2.3:a:jenkins:cloud_foundry:*:*:*:*:*:jenkins:*:*",
|
||||
"cloudshare-docker": "cpe:2.3:a:jenkins:cloudshare_docker-machine:*:*:*:*:*:jenkins:*:*",
|
||||
"cloudtest": "cpe:2.3:a:jenkins:soasta_cloudtest:*:*:*:*:*:jenkins:*:*",
|
||||
"cobertura": "cpe:2.3:a:jenkins:cobertura:*:*:*:*:*:jenkins:*:*",
|
||||
"code-coverage-api": "cpe:2.3:a:jenkins:code_coverage_api:*:*:*:*:*:jenkins:*:*",
|
||||
"codefresh": "cpe:2.3:a:jenkins:codefresh_integration:*:*:*:*:*:jenkins:*:*",
|
||||
"codescan": "cpe:2.3:a:jenkins:codescan:*:*:*:*:*:jenkins:*:*",
|
||||
"collabnet": "cpe:2.3:a:jenkins:collabnet:*:*:*:*:*:jenkins:*:*",
|
||||
"compact-columns": "cpe:2.3:a:jenkins:compact_columns:*:*:*:*:*:jenkins:*:*",
|
||||
"compatibility-action-storage": "cpe:2.3:a:praqma:compatibility_action_storage:*:*:*:*:*:jenkins:*:*",
|
||||
"computer-queue": "cpe:2.3:a:jenkins:computer_queue:*:*:*:*:*:jenkins:*:*",
|
||||
"compuware-common-configuration": "cpe:2.3:a:jenkins:compuware_common_configuration:*:*:*:*:*:jenkins:*:*",
|
||||
"compuware-topaz-for-total-test": "cpe:2.3:a:jenkins:compuware_topaz_for_total_test:*:*:*:*:*:jenkins:*:*",
|
||||
"config-file-provider": "cpe:2.3:a:jenkins:config_file_provider:*:*:*:*:*:jenkins:*:*",
|
||||
"configuration-as-code": "cpe:2.3:a:jenkins:configuration_as_code:*:*:*:*:*:jenkins:*:*",
|
||||
"configurationslicing": "cpe:2.3:a:jenkins:configuration_slicing:*:*:*:*:*:jenkins:*:*",
|
||||
"confluence-publisher": "cpe:2.3:a:jenkins:confluence_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"conjur-credentials": "cpe:2.3:a:jenkins:conjur_secrets:*:*:*:*:*:jenkins:*:*",
|
||||
"cons3rt": "cpe:2.3:a:jenkins:cons3rt:*:*:*:*:*:jenkins:*:*",
|
||||
"consul-kv-builder": "cpe:2.3:a:jenkins:consul_kv_builder:*:*:*:*:*:jenkins:*:*",
|
||||
"convert-to-pipeline": "cpe:2.3:a:jenkins:convert_to_pipeline:*:*:*:*:*:jenkins:*:*",
|
||||
"convertigo-mobile-platform": "cpe:2.3:a:jenkins:convertigo_mobile_platform:*:*:*:*:*:jenkins:*:*",
|
||||
"copr": "cpe:2.3:a:jenkins:copr:*:*:*:*:*:jenkins:*:*",
|
||||
"copy-data-to-workspace-plugin": "cpe:2.3:a:jenkins:copy_data_to_workspace:*:*:*:*:*:jenkins:*:*",
|
||||
"copy-to-slave": "cpe:2.3:a:jenkins:copy_to_slave:*:*:*:*:*:jenkins:*:*",
|
||||
"copyartifact": "cpe:2.3:a:jenkins:copy_artifact:*:*:*:*:*:jenkins:*:*",
|
||||
"couchdb-statistics": "cpe:2.3:a:jenkins:couchdb-statistics:*:*:*:*:*:jenkins:*:*",
|
||||
"covcomplplot": "cpe:2.3:a:jenkins:coverage\\/complexity_scatter_plot:*:*:*:*:*:jenkins:*:*",
|
||||
"coverity": "cpe:2.3:a:jenkins:coverity:*:*:*:*:*:jenkins:*:*",
|
||||
"cppcheck": "cpe:2.3:a:jenkins:cppcheck:*:*:*:*:*:jenkins:*:*",
|
||||
"cppncss": "cpe:2.3:a:jenkins:cppncss:*:*:*:*:*:jenkins:*:*",
|
||||
"crap4j": "cpe:2.3:a:jenkins:crap4j:*:*:*:*:*:jenkins:*:*",
|
||||
"credentials": "cpe:2.3:a:jenkins:credentials:*:*:*:*:*:jenkins:*:*",
|
||||
"credentials-binding": "cpe:2.3:a:jenkins:credentials_binding:*:*:*:*:*:jenkins:*:*",
|
||||
"crittercism-dsym": "cpe:2.3:a:jenkins:crittercism-dsym:*:*:*:*:*:jenkins:*:*",
|
||||
"crowd": "cpe:2.3:a:jenkins:crowd_integration:*:*:*:*:*:jenkins:*:*",
|
||||
"crx-content-package-deployer": "cpe:2.3:a:jenkins:crx_content_package_deployer:*:*:*:*:*:jenkins:*:*",
|
||||
"cryptomove": "cpe:2.3:a:jenkins:cryptomove:*:*:*:*:*:jenkins:*:*",
|
||||
"cucumber-living-documentation": "cpe:2.3:a:jenkins:cucumber_living_documentation:*:*:*:*:*:jenkins:*:*",
|
||||
"custom-checkbox-parameter": "cpe:2.3:a:jenkins:custom_checkbox_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"custom-job-icon": "cpe:2.3:a:jenkins:custom_job_icon:*:*:*:*:*:jenkins:*:*",
|
||||
"cvs": "cpe:2.3:a:jenkins:cvs:*:*:*:*:*:jenkins:*:*",
|
||||
"cvs": "cpe:2.3:a:jenkins:current_versions_systems:*:*:*:*:*:jenkins:*:*",
|
||||
"database": "cpe:2.3:a:jenkins:database:*:*:*:*:*:jenkins:*:*",
|
||||
"datadog": "cpe:2.3:a:jenkins:datadog:*:*:*:*:*:jenkins:*:*",
|
||||
"date-parameter": "cpe:2.3:a:jenkins:date_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"dbCharts": "cpe:2.3:a:jenkins:dbcharts:*:*:*:*:*:jenkins:*:*",
|
||||
"debian-package-builder": "cpe:2.3:a:jenkins:debian_package_builder:*:*:*:*:*:jenkins:*:*",
|
||||
"delphix": "cpe:2.3:a:jenkins:delphix:*:*:*:*:*:jenkins:*:*",
|
||||
"dependency-check": "cpe:2.3:a:jenkins:owasp_dependency-check:*:*:*:*:*:jenkins:*:*",
|
||||
"dependency-track": "cpe:2.3:a:jenkins:owasp_dependency-track:*:*:*:*:*:jenkins:*:*",
|
||||
"depgraph-view": "cpe:2.3:a:jenkins:dependency_graph_viewer:*:*:*:*:*:jenkins:*:*",
|
||||
"deploy": "cpe:2.3:a:jenkins:deploy:*:*:*:*:*:jenkins:*:*",
|
||||
"deployer-framework": "cpe:2.3:a:jenkins:deployer_framework:*:*:*:*:*:jenkins:*:*",
|
||||
"deployhub": "cpe:2.3:a:jenkins:deployhub:*:*:*:*:*:jenkins:*:*",
|
||||
"deployit-plugin": "cpe:2.3:a:jenkins:xebialabs_xl_deploy:*:*:*:*:*:jenkins:*:*",
|
||||
"description-column": "cpe:2.3:a:jenkins:description_column:*:*:*:*:*:jenkins:*:*",
|
||||
"diawi-upload": "cpe:2.3:a:jenkins:diawi_upload:*:*:*:*:*:jenkins:*:*",
|
||||
"digitalocean-plugin": "cpe:2.3:a:jenkins:digitalocean:*:*:*:*:*:jenkins:*:*",
|
||||
"dingding-json-pusher": "cpe:2.3:a:jenkins:dingding_json_pusher:*:*:*:*:*:jenkins:*:*",
|
||||
"dingding-notifications": "cpe:2.3:a:jenkins:dingding:*:*:*:*:*:jenkins:*:*",
|
||||
"distfork": "cpe:2.3:a:jenkins:distributed_fork:*:*:*:*:*:jenkins:*:*",
|
||||
"docker": "cpe:2.3:a:jenkins:docker:*:*:*:*:*:jenkins:*:*",
|
||||
"docker-commons": "cpe:2.3:a:jenkins:docker_commons:*:*:*:*:*:jenkins:*:*",
|
||||
"docker-swarm": "cpe:2.3:a:jenkins:docker_swarm:*:*:*:*:*:jenkins:*:*",
|
||||
"doktor": "cpe:2.3:a:jenkins:doktor:*:*:*:*:*:jenkins:*:*",
|
||||
"dry": "cpe:2.3:a:jenkins:dry:*:*:*:*:*:jenkins:*:*",
|
||||
"dynamic-extended-choice-parameter": "cpe:2.3:a:jenkins:dynamic_extended_choice_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"dynatrace": "cpe:2.3:a:jenkins:dynatrace_application_monitoring:*:*:*:*:*:jenkins:*:*",
|
||||
"eagle-tester": "cpe:2.3:a:jenkins:eagle_tester:*:*:*:*:*:jenkins:*:*",
|
||||
"ease-plugin": "cpe:2.3:a:jenkins:digital.ai_app_management_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"easyqa": "cpe:2.3:a:jenkins:easyqa:*:*:*:*:*:jenkins:*:*",
|
||||
"ec2": "cpe:2.3:a:jenkins:ec2:*:*:*:*:*:jenkins:*:*",
|
||||
"ec2-deployment-dashboard": "cpe:2.3:a:jenkins:deployment_dashboard:*:*:*:*:*:jenkins:*:*",
|
||||
"echarts-api": "cpe:2.3:a:jenkins:echarts_api:*:*:*:*:*:jenkins:*:*",
|
||||
"ecs-publisher": "cpe:2.3:a:trustsource:ecs_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"ecutest": "cpe:2.3:a:jenkins:tracetronic_ecu-test:*:*:*:*:*:jenkins:*:*",
|
||||
"eggplant": "cpe:2.3:a:jenkins:eggplant:*:*:*:*:*:jenkins:*:*",
|
||||
"elastest": "cpe:2.3:a:jenkins:elastest:*:*:*:*:*:jenkins:*:*",
|
||||
"elasticbox": "cpe:2.3:a:jenkins:elasticbox_ci:*:*:*:*:*:jenkins:*:*",
|
||||
"elasticsearch-query": "cpe:2.3:a:jenkins:elasticsearch_query:*:*:*:*:*:jenkins:*:*",
|
||||
"electricflow": "cpe:2.3:a:jenkins:electricflow:*:*:*:*:*:jenkins:*:*",
|
||||
"eloyente": "cpe:2.3:a:jenkins:eloyente:*:*:*:*:*:jenkins:*:*",
|
||||
"email-ext": "cpe:2.3:a:jenkins:email_extension:*:*:*:*:*:jenkins:*:*",
|
||||
"emailext-template": "cpe:2.3:a:jenkins:email_extension_template:*:*:*:*:*:jenkins:*:*",
|
||||
"embeddable-build-status": "cpe:2.3:a:jenkins:embeddable_build_status:*:*:*:*:*:jenkins:*:*",
|
||||
"embotics-vcommander": "cpe:2.3:a:jenkins:snow_commander:*:*:*:*:*:jenkins:*:*",
|
||||
"environment-dashboard": "cpe:2.3:a:jenkins:environment_dashboard:*:*:*:*:*:jenkins:*:*",
|
||||
"environment-manager-tools": "cpe:2.3:a:jenkins:parasoft_environment_manager:*:*:*:*:*:jenkins:*:*",
|
||||
"extensivetesting": "cpe:2.3:a:jenkins:extensive_testing:*:*:*:*:*:jenkins:*:*",
|
||||
"external-monitor-job": "cpe:2.3:a:jenkins:external_monitor_job_type:*:*:*:*:*:jenkins:*:*",
|
||||
"extra-columns": "cpe:2.3:a:jenkins:extra_columns:*:*:*:*:*:jenkins:*:*",
|
||||
"extreme-feedback": "cpe:2.3:a:jenkins:extreme-feedback:*:*:*:*:*:jenkins:*:*",
|
||||
"fabric-beta-publisher": "cpe:2.3:a:jenkins:fabric_beta_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"failedJobDeactivator": "cpe:2.3:a:jenkins:failed_job_deactivator:*:*:*:*:*:jenkins:*:*",
|
||||
"favorite": "cpe:2.3:a:jenkins:favorite_plugin:*:*:*:*:*:jenkins:*:*",
|
||||
"filesystem-list-parameter-plugin": "cpe:2.3:a:jenkins:filesystem_list_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"filesystem_scm": "cpe:2.3:a:jenkins:file_system_scm:*:*:*:*:*:jenkins:*:*",
|
||||
"findbugs": "cpe:2.3:a:jenkins:findbugs:*:*:*:*:*:jenkins:*:*",
|
||||
"fireline": "cpe:2.3:a:jenkins:360_fireline:*:*:*:*:*:jenkins:*:*",
|
||||
"fitnesse": "cpe:2.3:a:jenkins:fitnesse:*:*:*:*:*:jenkins:*:*",
|
||||
"flaky-test-handler": "cpe:2.3:a:jenkins:flaky_test_handler:*:*:*:*:*:jenkins:*:*",
|
||||
"fogbugz": "cpe:2.3:a:jenkins:fogbugz:*:*:*:*:*:jenkins:*:*",
|
||||
"fortify": "cpe:2.3:a:jenkins:fortify:*:*:*:*:*:jenkins:*:*",
|
||||
"fortify-cloudscan-jenkins-plugin": "cpe:2.3:a:jenkins:fortify_cloudscan:*:*:*:*:*:jenkins:*:.",
|
||||
"flaky-test-handler": "cpe:2.3:a:jenkins:flaky_test_handler:*:*:*:*:*:*:*:*",
|
||||
"fortify-on-demand-uploader": "cpe:2.3:a:jenkins:fortify_on_demand_uploader:*:*:*:*:*:jenkins:*:*",
|
||||
"frugal-testing": "cpe:2.3:a:jenkins:frugal_testing:*:*:*:*:*:jenkins:*:*",
|
||||
"ftppublisher": "cpe:2.3:a:jenkins:ftp_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"gatling": "cpe:2.3:a:jenkins:gatling:*:*:*:*:*:jenkins:*:*",
|
||||
"gearman-plugin": "cpe:2.3:a:jenkins:gearman:*:*:*:*:*:jenkins:*:*",
|
||||
"gem-publisher": "cpe:2.3:a:jenkins:gem_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"gerrit-trigger": "cpe:2.3:a:jenkins:gerrit_trigger:*:*:*:*:*:jenkins:*:*",
|
||||
"ghprb": "cpe:2.3:a:jenkins:github_pull_request_builder:*:*:*:*:*:jenkins:*:*",
|
||||
"git": "cpe:2.3:a:jenkins:git:*:*:*:*:*:jenkins:*:*",
|
||||
"git-changelog": "cpe:2.3:a:jenkins:git_changelog:*:*:*:*:*:jenkins:*:*",
|
||||
"git-parameter": "cpe:2.3:a:jenkins:git_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"git-server": "cpe:2.3:a:jenkins:git_server:*:*:*:*:*:jenkins:*:*",
|
||||
"gitea": "cpe:2.3:a:gitea:gitea:*:*:*:*:*:jenkins:*:*",
|
||||
"github": "cpe:2.3:a:jenkins:github:*:*:*:*:*:jenkins:*:*",
|
||||
"github-branch-source": "cpe:2.3:a:jenkins:github_branch_source:*:*:*:*:*:jenkins:*:*",
|
||||
"github-coverage-reporter": "cpe:2.3:a:jenkins:github_coverage_reporter:*:*:*:*:*:jenkins:*:*",
|
||||
"github-oauth": "cpe:2.3:a:jenkins:github_oauth:*:*:*:*:*:jenkins:*:*",
|
||||
"gitlab": "cpe:2.3:a:jenkins:gitlab:*:*:*:*:*:jenkins:*:*",
|
||||
"gitlab-hook": "cpe:2.3:a:jenkins:gitlab_hook:*:*:*:*:*:jenkins:*:*",
|
||||
"gitlab-oauth": "cpe:2.3:a:jenkins:gitlab_oauth:*:*:*:*:*:jenkins:*:*",
|
||||
"global-build-stats": "cpe:2.3:a:jenkins:global-build-stats:*:*:*:*:*:jenkins:*:*",
|
||||
"global-post-script": "cpe:2.3:a:jenkins:global_post_script:*:*:*:*:*:jenkins:*:*",
|
||||
"global-variable-string-parameter": "cpe:2.3:a:jenkins:global_variable_string_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"gogs-webhook": "cpe:2.3:a:jenkins:gogs:*:*:*:*:*:jenkins:*:*",
|
||||
"google-compute-engine": "cpe:2.3:a:jenkins:google_compute_engine:*:*:*:*:*:jenkins:*:*",
|
||||
"google-kubernetes-engine": "cpe:2.3:a:jenkins:google_kubernetes_engine:*:*:*:*:*:jenkins:*:*",
|
||||
"google-login": "cpe:2.3:a:jenkins:google_login:*:*:*:*:*:jenkins:*:*",
|
||||
"google-oauth": "cpe:2.3:a:jenkins:google_oauth_credentials:*:*:*:*:*:jenkins:*:*",
|
||||
"google-play-android-publisher": "cpe:2.3:a:jenkins:google-play-android-publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"gradle": "cpe:2.3:a:jenkins:gradle:*:*:*:*:*:jenkins:*:*",
|
||||
"groovy": "cpe:2.3:a:jenkins:groovy:*:*:*:*:*:jenkins:*:*",
|
||||
"groovy-postbuild": "cpe:2.3:a:jenkins:groovy_postbuild:*:*:*:*:*:jenkins:*:*",
|
||||
"harvest": "cpe:2.3:a:jenkins:harvest_scm:*:*:*:*:*:jenkins:*:*",
|
||||
"hashicorp-vault-plugin": "cpe:2.3:a:jenkins:hashicorp_vault:*:*:*:*:*:jenkins:*:*",
|
||||
"hidden-parameter": "cpe:2.3:a:jenkins:hidden_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"hipchat": "cpe:2.3:a:atlassian:hipchat:*:*:*:*:*:jenkins:*:*",
|
||||
"hockeyapp": "cpe:2.3:a:jenkins:hockeyapp:*:*:*:*:*:jenkins:*:*",
|
||||
"hp-quality-center": "cpe:2.3:a:hp_application_lifecycle_management_quality_center_project:hp_application_lifecycle_management_quality_center:*:*:*:*:*:jenkins:*:*",
|
||||
"hpe-network-virtualization": "cpe:2.3:a:jenkins:hpe_network_virtualization:*:*:*:*:*:jenkins:*:*",
|
||||
"htmlpublisher": "cpe:2.3:a:jenkins:html_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"htmlresource": "cpe:2.3:a:jenkins:html_resource:*:*:*:*:*:*:*:*",
|
||||
"http-request": "cpe:2.3:a:jenkins:http_request:*:*:*:*:*:jenkins:*:*",
|
||||
"hyper-commons": "cpe:2.3:a:jenkins:hyper.sh_commons:*:*:*:*:*:jenkins:*:*",
|
||||
"ibm-asoc": "cpe:2.3:a:jenkins:ibm_application_security_on_cloud:*:*:*:*:*:jenkins:*:*",
|
||||
"icescrum": "cpe:2.3:a:jenkins:icescrum:*:*:*:*:*:jenkins:*:*",
|
||||
"image-gallery": "cpe:2.3:a:jenkins:image_gallery:*:*:*:*:*:jenkins:*:*",
|
||||
"image-tag-parameter": "cpe:2.3:a:jenkins:image_tag_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"implied-labels": "cpe:2.3:a:jenkins:implied_labels:*:*:*:*:*:jenkins:*:*",
|
||||
"incapptic-connect-uploader": "cpe:2.3:a:jenkins:incapptic_connect_uploader:*:*:*:*:*:jenkins:*:*",
|
||||
"inedo-buildmaster": "cpe:2.3:a:jenkins:inedo_buildmaster:*:*:*:*:*:jenkins:*:*",
|
||||
"inedo-proget": "cpe:2.3:a:jenkins:inedo_proget:*:*:*:*:*:jenkins:*:*",
|
||||
"influxdb": "cpe:2.3:a:eficode:influxdb:*:*:*:*:*:jenkins:*:*",
|
||||
"instant-messaging": "cpe:2.3:a:jenkins:instant-messaging:*:*:*:*:*:jenkins:*:*",
|
||||
"ircbot": "cpe:2.3:a:jenkins:irc:*:*:*:*:*:jenkins:*:*",
|
||||
"ivy": "cpe:2.3:a:jenkins:ivy:*:*:*:*:*:jenkins:*:*",
|
||||
"jabber": "cpe:2.3:a:jenkins:jabber_\\(xmpp\\)_notifier_and_control:*:*:*:*:*:jenkins:*:*",
|
||||
"jabber-server-plugin": "cpe:2.3:a:jenkins:jabber_server:*:*:*:*:*:jenkins:*:*",
|
||||
"jacoco": "cpe:2.3:a:jenkins:jacoco:*:*:*:*:*:jenkins:*:*",
|
||||
"jclouds": "cpe:2.3:a:jenkins:jclouds:*:*:*:*:*:jenkins:*:*",
|
||||
"jenkins-cloudformation": "cpe:2.3:a:jenkins:jenkins-cloudformation-plugin:*:*:*:*:*:jenkins:*:*",
|
||||
"jenkins-multijob-plugin": "cpe:2.3:a:jenkins:multijob:*:*:*:*:*:jenkins:*:*",
|
||||
"jenkins-reviewbot": "cpe:2.3:a:jenkins:jenkins-reviewbot:*:*:*:*:*:jenkins:*:*",
|
||||
"jenkinsci-appspider-plugin": "cpe:2.3:a:jenkins:appspider:*:*:*:*:*:jenkins:*:*",
|
||||
"jianliao": "cpe:2.3:a:jenkins:jianliao_notification:*:*:*:*:*:jenkins:*:*",
|
||||
"jigomerge": "cpe:2.3:a:jenkins:jigomerge:*:*:*:*:*:jenkins:*:*",
|
||||
"jira": "cpe:2.3:a:jenkins:jira:*:*:*:*:*:*:*:*",
|
||||
"jira-ext": "cpe:2.3:a:jenkins:jira-ext:*:*:*:*:*:jenkins:*:*",
|
||||
"jira": "cpe:2.3:a:jenkins:jira:*:*:*:*:*:jenkins:*:*",
|
||||
"jira-issue-updater": "cpe:2.3:a:jenkins:jira_issue_updater:*:*:*:*:*:jenkins:*:*",
|
||||
"jira-steps": "cpe:2.3:a:jenkins:jira_pipeline_steps:*:*:*:*:*:jenkins:*:*",
|
||||
"job-dsl": "cpe:2.3:a:jenkins:job_dsl:*:*:*:*:*:jenkins:*:*",
|
||||
"job-import": "cpe:2.3:a:jenkins:job_import:*:*:*:*:*:jenkins:*:*",
|
||||
"jobConfigHistory": "cpe:2.3:a:jobconfighistory_project:jobconfighistory:*:*:*:*:*:jenkins:*:*",
|
||||
@@ -265,49 +143,32 @@
|
||||
"junit": "cpe:2.3:a:jenkins:junit:*:*:*:*:*:jenkins:*:*",
|
||||
"jx-resources": "cpe:2.3:a:jenkins:jx_resources:*:*:*:*:*:jenkins:*:*",
|
||||
"kanboard": "cpe:2.3:a:jenkins:kanboard:*:*:*:*:*:jenkins:*:*",
|
||||
"kiuwanJenkinsPlugin": "cpe:2.3:a:jenkins:kiuwan:*:*:*:*:*:jenkins:*:*",
|
||||
"klaros-testmanagement": "cpe:2.3:a:jenkins:klaros-testmanagement:*:*:*:*:*:jenkins:*:*",
|
||||
"klocwork": "cpe:2.3:a:jenkins:klocwork_analysis:*:*:*:*:*:jenkins:*:*",
|
||||
"kmap-jenkins": "cpe:2.3:a:jenkins:kmap:*:*:*:*:*:jenkins:*:*",
|
||||
"koji": "cpe:2.3:a:jenkins:koji:*:*:*:*:*:jenkins:*:*",
|
||||
"kubernetes": "cpe:2.3:a:jenkins:kubernetes:*:*:*:*:*:jenkins:*:*",
|
||||
"kubernetes-cd": "cpe:2.3:a:jenkins:kubernetes_continuous_deploy:*:*:*:*:*:jenkins:*:*",
|
||||
"kubernetes-ci": "cpe:2.3:a:jenkins:kubernetes_ci:*:*:*:*:*:jenkins:*:*",
|
||||
"kubernetes-pipeline": "cpe:2.3:a:jenkins:kubernetes_pipeline:*:*:*:*:*:jenkins:*:*",
|
||||
"labmanager": "cpe:2.3:a:jenkins:vmware_lab_manager_slaves:*:*:*:*:*:jenkins:*:*",
|
||||
"lambdatest-automation": "cpe:2.3:a:jenkins:lambdatest-automation:*:*:*:*:*:jenkins:*:*",
|
||||
"libvirt-slave": "cpe:2.3:a:jenkins:libvirt_slaves:*:*:*:*:*:jenkins:*:*",
|
||||
"link-column": "cpe:2.3:a:jenkins:link_column:*:*:*:*:*:jenkins:*:*",
|
||||
"liquibase-runner": "cpe:2.3:a:jenkins:liquibase_runner:*:*:*:*:*:jenkins:*:*",
|
||||
"list-git-branches-parameter": "cpe:2.3:a:jenkins:list_git_branches_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"literate": "cpe:2.3:a:jenkins:literate:*:*:*:*:*:jenkins:*:*",
|
||||
"lockable-resources": "cpe:2.3:a:jenkins:lockable_resources:*:*:*:*:*:jenkins:*:*",
|
||||
"locked-files-report": "cpe:2.3:a:jenkins:locked_files_report:*:*:*:*:*:jenkins:*:*",
|
||||
"log-parser": "cpe:2.3:a:jenkins:log_parser:*:*:*:*:*:jenkins:*:*",
|
||||
"logstash": "cpe:2.3:a:jenkins:logstash:*:*:*:*:*:jenkins:*:*",
|
||||
"m2release": "cpe:2.3:a:jenkins:m2release:*:*:*:*:*:jenkins:*:*",
|
||||
"mabl-integration": "cpe:2.3:a:jenkins:mabl:*:*:*:*:*:jenkins:*:*",
|
||||
"mac": "cpe:2.3:a:jenkins:mac:*:*:*:*:*:jenkins:*:*",
|
||||
"mail-commander": "cpe:2.3:a:jenkins:mail_commander:*:*:*:*:*:jenkins:*:*",
|
||||
"mailer": "cpe:2.3:a:jenkins:mailer:*:*:*:*:*:*:*:*",
|
||||
"mantis": "cpe:2.3:a:jenkins:mantis:*:*:*:*:*:jenkins:*:*",
|
||||
"mashup-portlets": "cpe:2.3:a:jenkins:mashup_portlets:*:*:*:*:*:jenkins:*:*",
|
||||
"mask-passwords": "cpe:2.3:a:jenkins:mask_passwords:*:*:*:*:*:jenkins:*:*",
|
||||
"mathworks-polyspace": "cpe:2.3:a:jenkins:mathworks_polyspace:*:*:*:*:*:jenkins:*:*",
|
||||
"matrix-auth": "cpe:2.3:a:jenkins:matrix_authorization_strategy:*:*:*:*:*:jenkins:*:*",
|
||||
"matrix-project": "cpe:2.3:a:jenkins:matrix_project:*:*:*:*:*:jenkins:*:*",
|
||||
"matrix-reloaded": "cpe:2.3:a:jenkins:matrix_reloaded:*:*:*:*:*:jenkins:*:*",
|
||||
"mattermost": "cpe:2.3:a:jenkins:mattermost_notification:*:*:*:*:*:jenkins:*:*",
|
||||
"maven": "cpe:2.3:a:jenkins:maven:*:*:*:*:*:jenkins:*:*",
|
||||
"maven-artifact-choicelistprovider": "cpe:2.3:a:jenkins:maven_artifact_choicelistprovider_\\(nexus\\):*:*:*:*:*:jenkins:*:*",
|
||||
"maven-metadata-plugin": "cpe:2.3:a:jenkins:maven_metadata:*:*:*:*:*:jenkins:*:*",
|
||||
"maven-release-cascade": "cpe:2.3:a:barchart:maven_cascade_release:*:*:*:*:*:jenkins:*:*",
|
||||
"meliora-testlab": "cpe:2.3:a:jenkins:meliora_testlab:*:*:*:*:*:jenkins:*:*",
|
||||
"mercurial": "cpe:2.3:a:jenkins:mercurial:*:*:*:*:*:jenkins:*:*",
|
||||
"mesos": "cpe:2.3:a:apache:mesos:*:*:*:*:*:jenkins:*:*",
|
||||
"metrics": "cpe:2.3:a:jenkins:metrics:*:*:*:*:*:jenkins:*:*",
|
||||
"minio-storage": "cpe:2.3:a:jenkins:minio_storage:*:*:*:*:*:jenkins:*:*",
|
||||
"miniorange-saml-sp": "cpe:2.3:a:jenkins:saml_single_sign_on:*:*:*:*:*:jenkins:*:*",
|
||||
"mongodb": "cpe:2.3:a:jenkins:mongodb:*:*:*:*:*:jenkins:*:*",
|
||||
"monitoring": "cpe:2.3:a:jenkins:monitoring:*:*:*:*:*:jenkins:*:*",
|
||||
"neoload": "cpe:2.3:a:jenkins:neoload:*:*:*:*:*:jenkins:*:*",
|
||||
@@ -315,17 +176,8 @@
|
||||
"nested-view": "cpe:2.3:a:jenkins:nested_view:*:*:*:*:*:jenkins:*:*",
|
||||
"netsparker-cloud-scan": "cpe:2.3:a:jenkins:netsparker_cloud_scan:*:*:*:*:*:jenkins:*:*",
|
||||
"nexus-platform": "cpe:2.3:a:jenkins:nexus_platform:*:*:*:*:*:jenkins:*:*",
|
||||
"nodelabelparameter": "cpe:2.3:a:jenkins:node_and_label_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"nomad": "cpe:2.3:a:jenkins:nomad:*:*:*:*:*:jenkins:*:*",
|
||||
"octoperf": "cpe:2.3:a:jenkins:octoperf_load_testing:*:*:*:*:*:jenkins:*:*",
|
||||
"oic-auth": "cpe:2.3:a:jenkins:openid_connect_authentication:*:*:*:*:*:jenkins:*:*",
|
||||
"ontrack": "cpe:2.3:a:jenkins:ontrack:*:*:*:*:*:jenkins:*:*",
|
||||
"open-stf": "cpe:2.3:a:jenkins:open_stf:*:*:*:*:*:jenkins:*:*",
|
||||
"openid": "cpe:2.3:a:jenkins:openid:*:*:*:*:*:jenkins:*:*",
|
||||
"openshift-deployer": "cpe:2.3:a:jenkins:openshift_deployer:*:*:*:*:*:jenkins:*:*",
|
||||
"openshift-pipeline": "cpe:2.3:a:jenkins:openshift_pipeline:*:*:*:*:*:jenkins:*:*",
|
||||
"openstack-cloud": "cpe:2.3:a:jenkins:openstack_cloud:*:*:*:*:*:jenkins:*:*",
|
||||
"opsgenie": "cpe:2.3:a:jenkins:opsgenie:*:*:*:*:*:jenkins:*:*",
|
||||
"ownership": "cpe:2.3:a:jenkins:job_and_node_ownership:*:*:*:*:*:jenkins:*:*",
|
||||
"p4": "cpe:2.3:a:jenkins:p4:*:*:*:*:*:jenkins:*:*",
|
||||
"pam-auth": "cpe:2.3:a:jenkins:pluggable_authentication_module:*:*:*:*:*:jenkins:*:*",
|
||||
@@ -335,186 +187,98 @@
|
||||
"parasoft-findings": "cpe:2.3:a:jenkins:parasoft_findings:*:*:*:*:*:jenkins:*:*",
|
||||
"pegdown-formatter": "cpe:2.3:a:jenkins:pegdown_formatter:*:*:*:*:*:jenkins:*:*",
|
||||
"perfecto": "cpe:2.3:a:jenkins:perfecto:*:*:*:*:*:jenkins:*:*",
|
||||
"perfectomobile": "cpe:2.3:a:jenkins:perfecto_mobile:*:*:*:*:*:jenkins:*:*",
|
||||
"performance": "cpe:2.3:a:jenkins:performance:*:*:*:*:*:jenkins:*:*",
|
||||
"periodicbackup": "cpe:2.3:a:jenkins:periodic_backup:*:*:*:*:*:jenkins:*:*",
|
||||
"persona": "cpe:2.3:a:jenkins:persona:*:*:*:*:*:jenkins:*:*",
|
||||
"phoenix-autotest": "cpe:2.3:a:jenkins:pipeline\\:_phoenix_autotest:*:*:*:*:*:jenkins:*:*",
|
||||
"pipeline-aws": "cpe:2.3:a:jenkins:pipeline\\:_aws_steps:*:*:*:*:*:jenkins:*:*",
|
||||
"pipeline-build-step": "cpe:2.3:a:jenkins:pipeline\\:_build_step:*:*:*:*:*:jenkins:*:*",
|
||||
"pipeline-githubnotify-step": "cpe:2.3:a:jenkins:pipeline_github_notify_step:*:*:*:*:*:jenkins:*:*",
|
||||
"pipeline-input-step": "cpe:2.3:a:jenkins:pipeline\\:input_step:*:*:*:*:*:jenkins:*:*",
|
||||
"pipeline-maven": "cpe:2.3:a:jenkins:pipeline_maven_integration:*:*:*:*:*:jenkins:*:*",
|
||||
"pipeline-model-definition": "cpe:2.3:a:jenkins:pipeline\\:_declarative:*:*:*:*:*:jenkins:*:*",
|
||||
"pipeline-stage-view": "cpe:2.3:a:jenkins:stage_view:*:*:*:*:*:jenkins:*:*",
|
||||
"play": "cpe:2.3:a:jenkins:play_framework:*:*:*:*:*:jenkins:*:*",
|
||||
"plot": "cpe:2.3:a:jenkins:plot:*:*:*:*:*:jenkins:*:*",
|
||||
"pmd": "cpe:2.3:a:jenkins:pmd:*:*:*:*:*:jenkins:*:*",
|
||||
"pollscm": "cpe:2.3:a:jenkins:poll_scm:*:*:*:*:*:jenkins:*:*",
|
||||
"pom2config": "cpe:2.3:a:jenkins:pom2config:*:*:*:*:*:jenkins:*:*",
|
||||
"port-allocator": "cpe:2.3:a:jenkins:port_allocator:*:*:*:*:*:jenkins:*:*",
|
||||
"project-inheritance": "cpe:2.3:a:jenkins:project_inheritance:*:*:*:*:*:jenkins:*:*",
|
||||
"promoted-builds": "cpe:2.3:a:jenkins:promoted_builds:*:*:*:*:*:jenkins:*:*",
|
||||
"promoted-builds-simple": "cpe:2.3:a:jenkins:promoted_builds_\\(simple\\):*:*:*:*:*:jenkins:*:*",
|
||||
"proxmox": "cpe:2.3:a:jenkins:proxmox:*:*:*:*:*:jenkins:*:*",
|
||||
"publish-over-cifs": "cpe:2.3:a:jenkins:publish_over_cifs:*:*:*:*:*:jenkins:*:*",
|
||||
"publish-over-ftp": "cpe:2.3:a:jenkins:publish_over_ftp:*:*:*:*:*:jenkins:*:*",
|
||||
"publish-over-ssh": "cpe:2.3:a:jenkins:publish_over_ssh:*:*:*:*:*:jenkins:*:*",
|
||||
"puppet-enterprise-pipeline": "cpe:2.3:a:jenkins:puppet_enterprise_pipeline:*:*:*:*:*:jenkins:*:*",
|
||||
"pwauth": "cpe:2.3:a:jenkins:pwauth_security_realm:*:*:*:*:*:jenkins:*:*",
|
||||
"quality-gates": "cpe:2.3:a:jenkins:quality_gates:*:*:*:*:*:jenkins:*:*",
|
||||
"quayio-trigger": "cpe:2.3:a:jenkins:quay.io_trigger:*:*:*:*:*:jenkins:*:*",
|
||||
"queue-cleanup": "cpe:2.3:a:jenkins:queue_cleanup:*:*:*:*:*:jenkins:*:*",
|
||||
"rabbitmq-consumer": "cpe:2.3:a:jenkins:rabbitmq_consumer:*:*:*:*:*:jenkins:*:*",
|
||||
"radargun": "cpe:2.3:a:jenkins:radargun:*:*:*:*:*:jenkins:*:*",
|
||||
"radiatorview": "cpe:2.3:a:jenkins:radiator_view:*:*:*:*:*:jenkins:*:*",
|
||||
"random-string-parameter": "cpe:2.3:a:jenkins:random_string_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"rapiddeploy": "cpe:2.3:a:jenkins:rapiddeploy:*:*:*:*:*:jenkins:*:*",
|
||||
"rebuild": "cpe:2.3:a:rebuild_project:rebuild:*:*:*:*:*:jenkins:*:*",
|
||||
"recipe": "cpe:2.3:a:jenkins:recipe:*:*:*:*:*:jenkins:*:*",
|
||||
"redgate-sql-ci": "cpe:2.3:a:jenkins:redgate_sql_change_automation:*:*:*:*:*:jenkins:*:*",
|
||||
"release-helper": "cpe:2.3:a:jenkins:release_helper:*:*:*:*:*:jenkins:*:*",
|
||||
"relution-publisher": "cpe:2.3:a:jenkins:relution_enterprise_appstore_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"remote-jobs-view": "cpe:2.3:a:jenkins:remote-jobs-view:*:*:*:*:*:jenkins:*:*",
|
||||
"reportportal": "cpe:2.3:a:jenkins:report_portal:*:*:*:*:*:jenkins:*:*",
|
||||
"repository-connector": "cpe:2.3:a:jenkins:repository_connector:*:*:*:*:*:jenkins:*:*",
|
||||
"requests": "cpe:2.3:a:jenkins:requests:*:*:*:*:*:jenkins:*:*",
|
||||
"resource-disposer": "cpe:2.3:a:jenkins:resource_disposer:*:*:*:*:*:jenkins:*:*",
|
||||
"rest-list-parameter": "cpe:2.3:a:jenkins:rest_list_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"rhnpush-plugin": "cpe:2.3:a:jenkins:rhnpush-plugin:*:*:*:*:*:jenkins:*:*",
|
||||
"rich-text-publisher-plugin": "cpe:2.3:a:jenkins:rich_text_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"robot": "cpe:2.3:a:jenkins:robot_framework:*:*:*:*:*:jenkins:*:*",
|
||||
"rocketchatnotifier": "cpe:2.3:a:jenkins:rocketchat_notifier:*:*:*:*:*:jenkins:*:*",
|
||||
"role-strategy": "cpe:2.3:a:jenkins:role-based_authorization_strategy:*:*:*:*:*:jenkins:*:*",
|
||||
"rpmsign": "cpe:2.3:a:jenkins:rpmsign-plugin:*:*:*:*:*:jenkins:*:*",
|
||||
"rqm-plugin": "cpe:2.3:a:jenkins:rqm:*:*:*:*:*:jenkins:*:*",
|
||||
"rrod": "cpe:2.3:a:jenkins:request_rename_or_delete:*:*:*:*:*:jenkins:*:*",
|
||||
"rundeck": "cpe:2.3:a:jenkins:rundeck:*:*:*:*:*:jenkins:*:*",
|
||||
"s3": "cpe:2.3:a:jenkins:s3_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"s3explorer": "cpe:2.3:a:jenkins:s3_explorer:*:*:*:*:*:jenkins:*:*",
|
||||
"saltstack": "cpe:2.3:a:jenkins:saltstack:*:*:*:*:*:jenkins:*:*",
|
||||
"sametime": "cpe:2.3:a:jenkins:sametime:*:*:*:*:*:jenkins:*:*",
|
||||
"saml": "cpe:2.3:a:jenkins:saml:*:*:*:*:*:jenkins:*:*",
|
||||
"sauce-ondemand": "cpe:2.3:a:jenkins:sauce_ondemand:*:*:*:*:*:jenkins:*:*",
|
||||
"scm-filter-jervis": "cpe:2.3:a:jenkins:source_code_management_filter_jervis:*:*:*:*:*:jenkins:*:*",
|
||||
"scm-httpclient": "cpe:2.3:a:jenkins:scm_httpclient:*:*:*:*:*:jenkins:*:*",
|
||||
"scp": "cpe:2.3:a:jenkins:scp_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"script-security": "cpe:2.3:a:jenkins:script_security:*:*:*:*:*:jenkins:*:*",
|
||||
"scriptler": "cpe:2.3:a:jenkins:scriptler:*:*:*:*:*:jenkins:*:*",
|
||||
"security-inspector": "cpe:2.3:a:jenkins:security_inspector:*:*:*:*:*:jenkins:*:*",
|
||||
"selected-tests-executor": "cpe:2.3:a:jenkins:tests_selector:*:*:*:*:*:jenkins:*:*",
|
||||
"selection-tasks-plugin": "cpe:2.3:a:jenkins:selection_tasks:*:*:*:*:*:jenkins:*:*",
|
||||
"selenium": "cpe:2.3:a:jenkins:selenium:*:*:*:*:*:jenkins:*:*",
|
||||
"seleniumhtmlreport": "cpe:2.3:a:jenkins:selenium_html_report:*:*:*:*:*:jenkins:*:*",
|
||||
"servicenow-devops": "cpe:2.3:a:jenkins:servicenow_devops:*:*:*:*:*:jenkins:*:*",
|
||||
"shared-objects": "cpe:2.3:a:jenkins:shared_objects:*:*:*:*:*:jenkins:*:*",
|
||||
"shelve-project": "cpe:2.3:a:jenkins:shelve_project:*:*:*:*:*:jenkins:*:*",
|
||||
"shortcut-job": "cpe:2.3:a:jenkins:shortcut_job:*:*:*:*:*:jenkins:*:*",
|
||||
"sidebar-link": "cpe:2.3:a:jenkins:sidebar_link:*:*:*:*:*:jenkins:*:*",
|
||||
"simple-travis-runner": "cpe:2.3:a:jenkins:simple_travis_pipeline_runner:*:*:*:*:*:jenkins:*:*",
|
||||
"sinatra-chef-builder": "cpe:2.3:a:jenkins:chef_sinatra:*:*:*:*:*:jenkins:*:*",
|
||||
"sitemonitor": "cpe:2.3:a:jenkins:sitemonitor:*:*:*:*:*:jenkins:*:*",
|
||||
"skype-notifier": "cpe:2.3:a:jenkins:skype_notifier:*:*:*:*:*:jenkins:*:*",
|
||||
"skytap-cloud": "cpe:2.3:a:jenkins:skytap_cloud_ci:*:*:*:*:*:jenkins:*:*",
|
||||
"slack": "cpe:2.3:a:jenkins:slack_notification:*:*:*:*:*:jenkins:*:*",
|
||||
"slack-uploader": "cpe:2.3:a:jenkins:slack_upload:*:*:*:*:*:jenkins:*:*",
|
||||
"smalltest": "cpe:2.3:a:jenkins:smalltest:*:*:*:*:*:jenkins:*:*",
|
||||
"sms": "cpe:2.3:a:jenkins:sms_notification:*:*:*:*:*:jenkins:*:*",
|
||||
"snsnotify": "cpe:2.3:a:jenkins:amazon_sns_build_notifier:*:*:*:*:*:jenkins:*:*",
|
||||
"soapui-pro-functional-testing": "cpe:2.3:a:jenkins:soapui_pro_functional_testing:*:*:*:*:*:jenkins:*:*",
|
||||
"sofy-ai": "cpe:2.3:a:jenkins:sofy.ai:*:*:*:*:*:jenkins:*:*",
|
||||
"sonar-gerrit": "cpe:2.3:a:jenkins:sonar_gerrit:*:*:*:*:*:jenkins:*:*",
|
||||
"sonar-quality-gates": "cpe:2.3:a:jenkins:sonar_quality_gates:*:*:*:*:*:jenkins:*:*",
|
||||
"sonargraph-integration": "cpe:2.3:a:jenkins:sonargraph_integration:*:*:*:*:*:jenkins:*:*",
|
||||
"sonarqube": "cpe:2.3:a:sonarsource:sonarqube_scanner:*:*:*:*:*:jenkins:*:*",
|
||||
"sounds": "cpe:2.3:a:jenkins:sounds:*:*:*:*:*:jenkins:*:*",
|
||||
"speaks": "cpe:2.3:a:jenkins:speaks\\!:*:*:*:*:*:jenkins:*:*",
|
||||
"splunk-devops": "cpe:2.3:a:jenkins:splunk:*:*:*:*:*:jenkins:*:*",
|
||||
"spoonscript": "cpe:2.3:a:jenkins:turboscript:*:*:*:*:*:jenkins:*:*",
|
||||
"sqlplus-script-runner": "cpe:2.3:a:jenkins:sqlplus_script_runner:*:*:*:*:*:jenkins:*:*",
|
||||
"sra-deploy": "cpe:2.3:a:jenkins:serena_sra_deploy:*:*:*:*:*:jenkins:*:*",
|
||||
"ssh": "cpe:2.3:a:jenkins:ssh:*:*:*:*:*:jenkins:*:*",
|
||||
"ssh-agent": "cpe:2.3:a:jenkins:ssh_agent:*:*:*:*:*:jenkins:*:*",
|
||||
"ssh-credentials": "cpe:2.3:a:jenkins:ssh_credentials:*:*:*:*:*:jenkins:*:*",
|
||||
"ssh-slaves": "cpe:2.3:a:jenkins:ssh_slaves:*:*:*:*:*:jenkins:*:*",
|
||||
"ssh2easy": "cpe:2.3:a:jenkins:ssh2_easy:*:*:*:*:*:jenkins:*:*",
|
||||
"starteam": "cpe:2.3:a:jenkins:starteam:*:*:*:*:*:jenkins:*:*",
|
||||
"storable-configs-plugin": "cpe:2.3:a:jenkins:storable_configs:*:*:*:*:*:jenkins:*:*",
|
||||
"subversion": "cpe:2.3:a:jenkins-ci:subversion-plugin:*:*:*:*:*:*:*:*",
|
||||
"sumologic-publisher": "cpe:2.3:a:jenkins:sumologic_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"svn-partial-release-mgr": "cpe:2.3:a:jenkins:subversion_partial_release_manager:*:*:*:*:*:jenkins:*:*",
|
||||
"svn-release-mgr": "cpe:2.3:a:jenkins:subversion_release_manager:*:*:*:*:*:jenkins:*:*",
|
||||
"swamp": "cpe:2.3:a:jenkins:swamp:*:*:*:*:*:jenkins:*:*",
|
||||
"swarm": "cpe:2.3:a:jenkins:self-organizing_swarm_modules:*:*:*:*:*:jenkins:*:*",
|
||||
"synopsys-coverity": "cpe:2.3:a:jenkins:synopsys_coverity:*:*:*:*:*:jenkins:*:*",
|
||||
"tap": "cpe:2.3:a:jenkins:tap:*:*:*:*:*:jenkins:*:*",
|
||||
"teams-webhook-trigger": "cpe:2.3:a:jenkins:msteams_webhook_trigger:*:*:*:*:*:jenkins:*:*",
|
||||
"templating-engine": "cpe:2.3:a:jenkins:templating_engine:*:*:*:*:*:jenkins:*:*",
|
||||
"testlink": "cpe:2.3:a:jenkins:testlink:*:*:*:*:*:jenkins:*:*",
|
||||
"testng-plugin": "cpe:2.3:a:jenkins:testng_results:*:*:*:*:*:jenkins:*:*",
|
||||
"testquality-updater": "cpe:2.3:a:jenkins:testquality_updater:*:*:*:*:*:jenkins:*:*",
|
||||
"tfs": "cpe:2.3:a:jenkins:team_foundation_server:*:*:*:*:*:jenkins:*:*",
|
||||
"threadfix": "cpe:2.3:a:jenkins:threadfix:*:*:*:*:*:jenkins:*:*",
|
||||
"thycotic-devops-secrets-vault": "cpe:2.3:a:jenkins:thycotic_devops_secrets_vault:*:*:*:*:*:jenkins:*:*",
|
||||
"thycotic-secret-server": "cpe:2.3:a:jenkins:thycotic_secret_server:*:*:*:*:*:jenkins:*:*",
|
||||
"tics": "cpe:2.3:a:jenkins:tics:*:*:*:*:*:jenkins:*:*",
|
||||
"timestamper": "cpe:2.3:a:jenkins:timestamper:*:*:*:*:*:jenkins:*:*",
|
||||
"tinfoil-scan": "cpe:2.3:a:jenkins:tinfoil_security:*:*:*:*:*:jenkins:*:*",
|
||||
"token-macro": "cpe:2.3:a:jenkins:token_macro:*:*:*:*:*:jenkins:*:*",
|
||||
"trac-publisher-plugin": "cpe:2.3:a:jenkins:trac_publisher:*:*:*:*:*:jenkins:*:*",
|
||||
"translation": "cpe:2.3:a:jenkins:translation_assistance:*:*:*:*:*:jenkins:*:*",
|
||||
"tuleap-oauth": "cpe:2.3:a:jenkins:tuleap_authentication:*:*:*:*:*:jenkins:*:*",
|
||||
"twitter": "cpe:2.3:a:jenkins:twitter:*:*:*:*:*:jenkins:*:*",
|
||||
"upload-pgyer": "cpe:2.3:a:jenkins:upload_to_pgyer:*:*:*:*:*:jenkins:*:*",
|
||||
"urltrigger": "cpe:2.3:a:jenkins:urltrigger:*:*:*:*:*:jenkins:*:*",
|
||||
"usemango-runner": "cpe:2.3:a:jenkins:usemango_runner:*:*:*:*:*:jenkins:*:*",
|
||||
"valgrind": "cpe:2.3:a:jenkins:valgrind:*:*:*:*:*:jenkins:*:*",
|
||||
"validating-email-parameter": "cpe:2.3:a:jenkins:validating_email_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"validating-string-parameter": "cpe:2.3:a:jenkins:validating_string_parameter:*:*:*:*:*:jenkins:*:*",
|
||||
"vault-scm-plugin": "cpe:2.3:a:jenkins:sourcegear_vault:*:*:*:*:*:jenkins:*:*",
|
||||
"vboxwrapper": "cpe:2.3:a:jenkins:vboxwrapper:*:*:*:*:*:jenkins:*:*",
|
||||
"veracode-scanner": "cpe:2.3:a:jenkins:veracode-scanner:*:*:*:*:*:jenkins:*:*",
|
||||
"view-cloner": "cpe:2.3:a:jenkins:view-cloner:*:*:*:*:*:jenkins:*:*",
|
||||
"view26": "cpe:2.3:a:jenkins:view26_test-reporting:*:*:*:*:*:jenkins:*:*",
|
||||
"violation-comments-to-gitlab": "cpe:2.3:a:jenkins:violation_comments_to_gitlab:*:*:*:*:*:jenkins:*:*",
|
||||
"visualexpert": "cpe:2.3:a:jenkins:visualexpert:*:*:*:*:*:jenkins:*:*",
|
||||
"visualworks-store": "cpe:2.3:a:jenkins:visualworks_store:*:*:*:*:*:jenkins:*:*",
|
||||
"vmware-vrealize-automation-plugin": "cpe:2.3:a:jenkins:vmware_vrealize_automation:*:*:*:*:*:jenkins:*:*",
|
||||
"vmware-vrealize-orchestrator": "cpe:2.3:a:jenkins:vrealize_orchestrator:*:*:*:*:*:jenkins:*:*",
|
||||
"vncrecorder": "cpe:2.3:a:jenkins:vncrecorder:*:*:*:*:*:jenkins:*:*",
|
||||
"vncviewer": "cpe:2.3:a:jenkins:vncviewer:*:*:*:*:*:jenkins:*:*",
|
||||
"vs-code-metrics": "cpe:2.3:a:jenkins:visual_studio_code_metrics:*:*:*:*:*:jenkins:*:*",
|
||||
"vsphere-cloud": "cpe:2.3:a:jenkins:vsphere:*:*:*:*:*:jenkins:*:*",
|
||||
"vsts-cd": "cpe:2.3:a:jenkins:vs_team_services_continuous_deployment:*:*:*:*:*:jenkins:*:*",
|
||||
"walldisplay": "cpe:2.3:a:jenkins:wall_display:*:*:*:*:*:jenkins:*:*",
|
||||
"walti": "cpe:2.3:a:jenkins:walti:*:*:*:*:*:jenkins:*:*",
|
||||
"warnings": "cpe:2.3:a:jenkins:warnings:*:*:*:*:*:jenkins:*:*",
|
||||
"warnings-ng": "cpe:2.3:a:jenkins:warnings_next_generation:*:*:*:*:*:jenkins:*:*",
|
||||
"weblogic-deployer": "cpe:2.3:a:jenkins:deploy_weblogic:*:*:*:*:*:jenkins:*:*",
|
||||
"websphere-deployer": "cpe:2.3:a:jenkins:websphere_deployer:*:*:*:*:*:jenkins:*:*",
|
||||
"whitesource": "cpe:2.3:a:jenkins:white_source:*:*:*:*:*:jenkins:*:*",
|
||||
"wildfly-deployer": "cpe:2.3:a:jenkins:wildfly_deployer:*:*:*:*:*:jenkins:*:*",
|
||||
"windows-slaves": "cpe:2.3:a:jenkins:wmi_windows_agents:*:*:*:*:*:jenkins:*:*",
|
||||
"workflow-cps": "cpe:2.3:a:jenkins:pipeline\\:_groovy:*:*:*:*:*:*:*:*",
|
||||
"workflow-cps-global-lib": "cpe:2.3:a:jenkins:pipeline\\:shared_groovy_libraries:*:*:*:*:*:jenkins:*:*",
|
||||
"workflow-multibranch": "cpe:2.3:a:jenkins:pipeline\\:_multibranch:*:*:*:*:*:jenkins:*:*",
|
||||
"workflow-remote-loader": "cpe:2.3:a:jenkins:pipeline_remote_loader:*:*:*:*:*:jenkins:*:*",
|
||||
"ws-execution-manager": "cpe:2.3:a:jenkins:worksoft_execution_manager:*:*:*:*:*:jenkins:*:*",
|
||||
"wso2id-oauth": "cpe:2.3:a:jenkins:wso2_oauth:*:*:*:*:*:jenkins:*:*",
|
||||
"xcode": "cpe:2.3:a:jenkins:xcode_integration:*:*:*:*:*:jenkins:*:*",
|
||||
"xfpanel": "cpe:2.3:a:jenkins:extreme_feedback_panel:*:*:*:*:*:jenkins:*:*",
|
||||
"xlrelease-plugin": "cpe:2.3:a:jenkins:xebialabs_xl_release:*:*:*:*:*:jenkins:*:*",
|
||||
"xpath-config-viewer": "cpe:2.3:a:jenkins:xpath_configuration_viewer:*:*:*:*:*:jenkins:*:*",
|
||||
"xray-connector": "cpe:2.3:a:jenkins:xray_-_test_management_for_jira:*:*:*:*:*:jenkins:*:*",
|
||||
"xunit": "cpe:2.3:a:jenkins:xunit:*:*:*:*:*:jenkins:*:*",
|
||||
"yaml-axis": "cpe:2.3:a:jenkins:yaml_axis:*:*:*:*:*:jenkins:*:*",
|
||||
"yet-another-build-visualizer": "cpe:2.3:a:jenkins:yet_another_build_visualizer:*:*:*:*:*:*:*:*",
|
||||
"youtrack": "cpe:2.3:a:jenkins:youtrack-plugin:*:*:*:*:*:jenkins:*:*",
|
||||
"zap": "cpe:2.3:a:jenkins:owasp_zap:*:*:*:*:*:jenkins:*:*",
|
||||
"zap-pipeline": "cpe:2.3:a:jenkins:zap_pipeline:*:*:*:*:*:jenkins:*:*",
|
||||
"zephyr-enterprise-test-management": "cpe:2.3:a:jenkins:zephyr_enterprise_test_management:*:*:*:*:*:jenkins:*:*",
|
||||
"zephyr-for-jira-test-management": "cpe:2.3:a:jenkins:zephyr_for_jira_test_management:*:*:*:*:*:jenkins:*:*",
|
||||
"zos-connector": "cpe:2.3:a:jenkins:z\\/os_connector:*:*:*:*:*:jenkins:*:*",
|
||||
"zulip": "cpe:2.3:a:jenkins:zulip:*:*:*:*:*:jenkins:*:*"
|
||||
},
|
||||
"npm": {
|
||||
@@ -1266,19 +1030,6 @@
|
||||
"zjjserver": "cpe:2.3:a:zjjserver_project:zjjserver:*:*:*:*:*:node.js:*:*",
|
||||
"zwserver": "cpe:2.3:a:zwserver_project:zwserver:*:*:*:*:*:node.js:*:*"
|
||||
},
|
||||
"php_pear": {
|
||||
"Archive_Tar": "cpe:2.3:a:php:pear_archive_tar:*:*:*:*:*:*:*:*",
|
||||
"HTML_AJAX": "cpe:2.3:a:pear:html_ajax:*:*:*:*:*:*:*:*",
|
||||
"HTML_QuickForm": "cpe:2.3:a:html_quickform_project:html_quickform:*:*:*:*:*:*:*:*",
|
||||
"PEAR": "cpe:2.3:a:php:pear:*:*:*:*:*:*:*:*",
|
||||
"XML_RPC": "cpe:2.3:a:php:xml_rpc:*:*:*:*:*:pear:*:*"
|
||||
},
|
||||
"php_pecl": {
|
||||
"imagick": "cpe:2.3:a:php:imagick:*:*:*:*:*:*:*:*",
|
||||
"memcached": "cpe:2.3:a:php:memcached:*:*:*:*:*:*:*:*",
|
||||
"pecl_http": "cpe:2.3:a:php:pecl_http:*:*:*:*:*:*:*:*",
|
||||
"xhprof": "cpe:2.3:a:php:xhprof:*:*:*:*:*:*:*:*"
|
||||
},
|
||||
"pypi": {
|
||||
"0.0.1": "cpe:2.3:a:pypi:pypi:*:*:*:*:*:*:*:*",
|
||||
"AAmiles": "cpe:2.3:a:pypi:aamiles:*:*:*:*:*:pypi:*:*",
|
||||
|
||||
@@ -101,18 +101,13 @@ func normalizeCPE(cpe *wfn.Attributes) *wfn.Attributes {
|
||||
}
|
||||
|
||||
const (
|
||||
prefixForNPMPackages = "https://www.npmjs.com/package/"
|
||||
prefixForRubyGems = "https://rubygems.org/gems/"
|
||||
prefixForRubyGemsHTTP = "http://rubygems.org/gems/"
|
||||
prefixForNativeRubyGems = "https://github.com/ruby/"
|
||||
prefixForPyPIPackages = "https://pypi.org/project/"
|
||||
prefixForJenkinsPlugins = "https://plugins.jenkins.io/"
|
||||
prefixForJenkinsPluginsGitHub = "https://github.com/jenkinsci/"
|
||||
prefixForRustCrates = "https://crates.io/crates/"
|
||||
prefixForPHPPear = "https://pear.php.net/"
|
||||
prefixForPHPPearHTTP = "http://pear.php.net/"
|
||||
prefixForPHPPecl = "https://pecl.php.net/"
|
||||
prefixForPHPPeclHTTP = "http://pecl.php.net/"
|
||||
prefixForNPMPackages = "https://www.npmjs.com/package/"
|
||||
prefixForRubyGems = "https://rubygems.org/gems/"
|
||||
prefixForRubyGemsHTTP = "http://rubygems.org/gems/"
|
||||
prefixForNativeRubyGems = "https://github.com/ruby/"
|
||||
prefixForPyPIPackages = "https://pypi.org/project/"
|
||||
prefixForJenkinsPlugins = "https://github.com/jenkinsci/"
|
||||
prefixForRustCrates = "https://crates.io/crates/"
|
||||
)
|
||||
|
||||
// indexCPEList creates an index of CPEs by ecosystem.
|
||||
@@ -140,21 +135,12 @@ func indexCPEList(list CpeList) *dictionary.Indexed {
|
||||
case strings.HasPrefix(ref, prefixForPyPIPackages):
|
||||
addEntryForPyPIPackage(indexed, ref, cpeItemName)
|
||||
|
||||
case strings.HasPrefix(ref, prefixForJenkinsPluginsGitHub):
|
||||
// It _might_ be a jenkins plugin!
|
||||
addEntryForJenkinsPluginGitHub(indexed, ref, cpeItemName)
|
||||
|
||||
case strings.HasPrefix(ref, prefixForJenkinsPlugins):
|
||||
// It _might_ be a jenkins plugin!
|
||||
addEntryForJenkinsPlugin(indexed, ref, cpeItemName)
|
||||
|
||||
case strings.HasPrefix(ref, prefixForRustCrates):
|
||||
addEntryForRustCrate(indexed, ref, cpeItemName)
|
||||
|
||||
case strings.HasPrefix(ref, prefixForPHPPear), strings.HasPrefix(ref, prefixForPHPPearHTTP):
|
||||
addEntryForPHPPearPackage(indexed, ref, cpeItemName)
|
||||
|
||||
case strings.HasPrefix(ref, prefixForPHPPecl), strings.HasPrefix(ref, prefixForPHPPeclHTTP):
|
||||
addEntryForPHPPeclPackage(indexed, ref, cpeItemName)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -174,9 +160,9 @@ func addEntryForRustCrate(indexed *dictionary.Indexed, ref string, cpeItemName s
|
||||
indexed.EcosystemPackages[dictionary.EcosystemRustCrates][ref] = cpeItemName
|
||||
}
|
||||
|
||||
func addEntryForJenkinsPluginGitHub(indexed *dictionary.Indexed, ref string, cpeItemName string) {
|
||||
func addEntryForJenkinsPlugin(indexed *dictionary.Indexed, ref string, cpeItemName string) {
|
||||
// Prune off the non-package-name parts of the URL
|
||||
ref = strings.TrimPrefix(ref, prefixForJenkinsPluginsGitHub)
|
||||
ref = strings.TrimPrefix(ref, prefixForJenkinsPlugins)
|
||||
ref = strings.Split(ref, "/")[0]
|
||||
|
||||
if !strings.HasSuffix(ref, "-plugin") {
|
||||
@@ -193,22 +179,6 @@ func addEntryForJenkinsPluginGitHub(indexed *dictionary.Indexed, ref string, cpe
|
||||
indexed.EcosystemPackages[dictionary.EcosystemJenkinsPlugins][ref] = cpeItemName
|
||||
}
|
||||
|
||||
func addEntryForJenkinsPlugin(indexed *dictionary.Indexed, ref string, cpeItemName string) {
|
||||
// Prune off the non-package-name parts of the URL
|
||||
ref = strings.TrimPrefix(ref, prefixForJenkinsPlugins)
|
||||
ref = strings.Split(ref, "/")[0]
|
||||
|
||||
if ref == "" {
|
||||
return
|
||||
}
|
||||
|
||||
if _, ok := indexed.EcosystemPackages[dictionary.EcosystemJenkinsPlugins]; !ok {
|
||||
indexed.EcosystemPackages[dictionary.EcosystemJenkinsPlugins] = make(dictionary.Packages)
|
||||
}
|
||||
|
||||
indexed.EcosystemPackages[dictionary.EcosystemJenkinsPlugins][ref] = cpeItemName
|
||||
}
|
||||
|
||||
func addEntryForPyPIPackage(indexed *dictionary.Indexed, ref string, cpeItemName string) {
|
||||
// Prune off the non-package-name parts of the URL
|
||||
ref = strings.TrimPrefix(ref, prefixForPyPIPackages)
|
||||
@@ -258,63 +228,3 @@ func addEntryForNPMPackage(indexed *dictionary.Indexed, ref string, cpeItemName
|
||||
|
||||
indexed.EcosystemPackages[dictionary.EcosystemNPM][ref] = cpeItemName
|
||||
}
|
||||
|
||||
func phpExtensionPackageFromURLFragment(ref string) string {
|
||||
if strings.HasPrefix(ref, "package/") { // package/HTML_QuickForm/download
|
||||
ref = strings.TrimPrefix(ref, "package/")
|
||||
components := strings.Split(ref, "/")
|
||||
|
||||
if len(components) < 1 {
|
||||
return ""
|
||||
}
|
||||
|
||||
ref = components[0]
|
||||
} else if strings.Contains(ref, "?package=") { // package-changelog.php?package=xhprof&release=0.9.4
|
||||
components := strings.Split(ref, "?package=")
|
||||
|
||||
if len(components) < 2 {
|
||||
return ""
|
||||
}
|
||||
|
||||
components = strings.Split(components[1], "&")
|
||||
if len(components) < 2 {
|
||||
return ""
|
||||
}
|
||||
|
||||
ref = components[0]
|
||||
}
|
||||
|
||||
return ref
|
||||
}
|
||||
|
||||
func addEntryForPHPPearPackage(indexed *dictionary.Indexed, ref string, cpeItemName string) {
|
||||
ref = strings.TrimPrefix(ref, prefixForPHPPear)
|
||||
ref = strings.TrimPrefix(ref, prefixForPHPPearHTTP)
|
||||
ref = phpExtensionPackageFromURLFragment(ref)
|
||||
|
||||
if ref == "" {
|
||||
return
|
||||
}
|
||||
|
||||
if _, ok := indexed.EcosystemPackages[dictionary.EcosystemPHPPear]; !ok {
|
||||
indexed.EcosystemPackages[dictionary.EcosystemPHPPear] = make(dictionary.Packages)
|
||||
}
|
||||
|
||||
indexed.EcosystemPackages[dictionary.EcosystemPHPPear][ref] = cpeItemName
|
||||
}
|
||||
|
||||
func addEntryForPHPPeclPackage(indexed *dictionary.Indexed, ref string, cpeItemName string) {
|
||||
ref = strings.TrimPrefix(ref, prefixForPHPPecl)
|
||||
ref = strings.TrimPrefix(ref, prefixForPHPPeclHTTP)
|
||||
ref = phpExtensionPackageFromURLFragment(ref)
|
||||
|
||||
if ref == "" {
|
||||
return
|
||||
}
|
||||
|
||||
if _, ok := indexed.EcosystemPackages[dictionary.EcosystemPHPPecl]; !ok {
|
||||
indexed.EcosystemPackages[dictionary.EcosystemPHPPecl] = make(dictionary.Packages)
|
||||
}
|
||||
|
||||
indexed.EcosystemPackages[dictionary.EcosystemPHPPecl][ref] = cpeItemName
|
||||
}
|
||||
|
||||
+4
-69
@@ -65,8 +65,8 @@ func Test_addEntryFuncs(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "addEntryForJenkinsPluginGitHub",
|
||||
addEntryFunc: addEntryForJenkinsPluginGitHub,
|
||||
name: "addEntryForJenkinsPlugin",
|
||||
addEntryFunc: addEntryForJenkinsPlugin,
|
||||
inputRef: "https://github.com/jenkinsci/sonarqube-plugin",
|
||||
inputCpeItemName: "cpe:2.3:a:sonarsource:sonarqube_scanner:2.7:*:*:*:*:jenkins:*:*",
|
||||
expectedIndexed: dictionary.Indexed{
|
||||
@@ -78,27 +78,14 @@ func Test_addEntryFuncs(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "addEntryForJenkinsPluginGitHub: not actually a plugin",
|
||||
addEntryFunc: addEntryForJenkinsPluginGitHub,
|
||||
name: "addEntryForJenkinsPlugin: not actually a plugin",
|
||||
addEntryFunc: addEntryForJenkinsPlugin,
|
||||
inputRef: "https://github.com/jenkinsci/jenkins",
|
||||
inputCpeItemName: "cpe:2.3:a:jenkins:jenkinsci:2.7:*:*:*:*:*:*:*",
|
||||
expectedIndexed: dictionary.Indexed{
|
||||
EcosystemPackages: map[string]dictionary.Packages{},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "addEntryForJenkinsPlugin",
|
||||
addEntryFunc: addEntryForJenkinsPlugin,
|
||||
inputRef: "https://plugins.jenkins.io/svn-partial-release-mgr/release",
|
||||
inputCpeItemName: "cpe:2.3:a:jenkins:_subversion_partial_release_manager:1.0.1:*:*:*:*:jenkins:*:*",
|
||||
expectedIndexed: dictionary.Indexed{
|
||||
EcosystemPackages: map[string]dictionary.Packages{
|
||||
dictionary.EcosystemJenkinsPlugins: {
|
||||
"svn-partial-release-mgr": "cpe:2.3:a:jenkins:_subversion_partial_release_manager:1.0.1:*:*:*:*:jenkins:*:*",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "addEntryForPyPIPackage",
|
||||
addEntryFunc: addEntryForPyPIPackage,
|
||||
@@ -164,58 +151,6 @@ func Test_addEntryFuncs(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "addEntryForPHPPeclPackage",
|
||||
addEntryFunc: addEntryForPHPPeclPackage,
|
||||
inputRef: "https://pecl.php.net/package/imagick/something/something/v4007.0",
|
||||
inputCpeItemName: "cpe:2.3:a:php:imagick:*:*:*:*:*:*:*:*",
|
||||
expectedIndexed: dictionary.Indexed{
|
||||
EcosystemPackages: map[string]dictionary.Packages{
|
||||
dictionary.EcosystemPHPPecl: {
|
||||
"imagick": "cpe:2.3:a:php:imagick:*:*:*:*:*:*:*:*",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "addEntryForPHPPeclPackage http changelog",
|
||||
addEntryFunc: addEntryForPHPPeclPackage,
|
||||
inputRef: "http://pecl.php.net/package-changelog.php?package=memcached&release",
|
||||
inputCpeItemName: "cpe:2.3:a:php:memcached:*:*:*:*:*:*:*:*",
|
||||
expectedIndexed: dictionary.Indexed{
|
||||
EcosystemPackages: map[string]dictionary.Packages{
|
||||
dictionary.EcosystemPHPPecl: {
|
||||
"memcached": "cpe:2.3:a:php:memcached:*:*:*:*:*:*:*:*",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "addEntryForPHPPearPackage",
|
||||
addEntryFunc: addEntryForPHPPearPackage,
|
||||
inputRef: "https://pear.php.net/package/PEAR/download",
|
||||
inputCpeItemName: "cpe:2.3:a:php:pear:*:*:*:*:*:*:*:*",
|
||||
expectedIndexed: dictionary.Indexed{
|
||||
EcosystemPackages: map[string]dictionary.Packages{
|
||||
dictionary.EcosystemPHPPear: {
|
||||
"PEAR": "cpe:2.3:a:php:pear:*:*:*:*:*:*:*:*",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "addEntryForPHPPearPackage http changelog",
|
||||
addEntryFunc: addEntryForPHPPearPackage,
|
||||
inputRef: "http://pear.php.net/package-changelog.php?package=abcdefg&release",
|
||||
inputCpeItemName: "cpe:2.3:a:php:abcdefg:*:*:*:*:*:*:*:*",
|
||||
expectedIndexed: dictionary.Indexed{
|
||||
EcosystemPackages: map[string]dictionary.Packages{
|
||||
dictionary.EcosystemPHPPear: {
|
||||
"abcdefg": "cpe:2.3:a:php:abcdefg:*:*:*:*:*:*:*:*",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
||||
Vendored
+1
-13
@@ -1,9 +1,7 @@
|
||||
{
|
||||
"ecosystems": {
|
||||
"jenkins_plugins": {
|
||||
"fireline": "cpe:2.3:a:jenkins:360_fireline:*:*:*:*:*:jenkins:*:*",
|
||||
"sonarqube": "cpe:2.3:a:sonarsource:sonarqube_scanner:*:*:*:*:*:jenkins:*:*",
|
||||
"svn-partial-release-mgr": "cpe:2.3:a:jenkins:_subversion_partial_release_manager:*:*:*:*:*:jenkins:*:*"
|
||||
"sonarqube": "cpe:2.3:a:sonarsource:sonarqube_scanner:*:*:*:*:*:jenkins:*:*"
|
||||
},
|
||||
"npm": {
|
||||
"merge-recursive": "cpe:2.3:a:umbraengineering:merge-recursive:*:*:*:*:*:node.js:*:*",
|
||||
@@ -15,16 +13,6 @@
|
||||
"unicode": "cpe:2.3:a:unicode_project:unicode:*:*:*:*:*:node.js:*:*",
|
||||
"unicorn-list": "cpe:2.3:a:unicorn-list_project:unicorn-list:*:*:*:*:*:node.js:*:*"
|
||||
},
|
||||
"php_pear": {
|
||||
"HTML_QuickForm": "cpe:2.3:a:html_quickform_project:html_quickform:*:*:*:*:*:*:*:*",
|
||||
"PEAR": "cpe:2.3:a:php:pear:*:*:*:*:*:*:*:*",
|
||||
"XML_RPC": "cpe:2.3:a:php:xml_rpc:*:*:*:*:*:pear:*:*"
|
||||
},
|
||||
"php_pecl": {
|
||||
"imagick": "cpe:2.3:a:php:imagick:*:*:*:*:*:*:*:*",
|
||||
"memcached": "cpe:2.3:a:php:memcached:*:*:*:*:*:*:*:*",
|
||||
"xhprof": "cpe:2.3:a:php:xhprof:*:*:*:*:*:*:*:*"
|
||||
},
|
||||
"rubygems": {
|
||||
"openssl": "cpe:2.3:a:ruby-lang:openssl:*:*:*:*:*:*:*:*"
|
||||
},
|
||||
|
||||
-130
@@ -24873,134 +24873,4 @@
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:zzzcms:zzzphp:2.1.0:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:xhprof:0.9.1">
|
||||
<title xml:lang="en-US">PHP XHProf 0.9.1</title>
|
||||
<references>
|
||||
<reference href="http://pecl.php.net/package-changelog.php?package=xhprof&release=0.9.4">product changelog</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:xhprof:0.9.1:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:xhprof:0.9.2">
|
||||
<title xml:lang="en-US">PHP XHProf 0.9.2</title>
|
||||
<references>
|
||||
<reference href="http://pecl.php.net/package-changelog.php?package=xhprof&release=0.9.4">product changelog</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:xhprof:0.9.2:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:xhprof:0.9.3">
|
||||
<title xml:lang="en-US">PHP XHProf 0.9.3</title>
|
||||
<references>
|
||||
<reference href="http://pecl.php.net/package-changelog.php?package=xhprof&release=0.9.4">product changelog</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:xhprof:0.9.3:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:memcached:0.1.0">
|
||||
<title xml:lang="en-US">PHP memecached 0.1.0</title>
|
||||
<references>
|
||||
<reference href="https://pecl.php.net/package-changelog.php?package=memcached&release">Change Log</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:memcached:0.1.0:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:memcached:0.1.2">
|
||||
<title xml:lang="en-US">PHP memecached 0.1.2</title>
|
||||
<references>
|
||||
<reference href="https://pecl.php.net/package-changelog.php?package=memcached&release">Change Log</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:memcached:0.1.2:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:memcached:0.1.3">
|
||||
<title xml:lang="en-US">PHP memecached 0.1.3</title>
|
||||
<references>
|
||||
<reference href="https://pecl.php.net/package-changelog.php?package=memcached&release">Change Log</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:memcached:0.1.3:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:imagick:3.3.0">
|
||||
<title xml:lang="en-US">PHP Imagick 3.3.0</title>
|
||||
<references>
|
||||
<reference href="http://pecl.php.net/package/imagick">Version</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:imagick:3.3.0:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:imagick:3.4.0:-">
|
||||
<title xml:lang="en-US">PHP Imagick 3.4.0</title>
|
||||
<references>
|
||||
<reference href="http://pecl.php.net/package/imagick">Version</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:imagick:3.4.0:-:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:xml_rpc:1.4.4::~~~pear~~">
|
||||
<title xml:lang="en-US">PHP XML_RPC 1.4.4 for Pear</title>
|
||||
<references>
|
||||
<reference href="https://pear.php.net/package/XML_RPC/download/">Version</reference>
|
||||
<reference href="https://pear.php.net/package/XML_RPC/">Product</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:xml_rpc:1.4.4:*:*:*:*:pear:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:xml_rpc:1.4.5::~~~pear~~">
|
||||
<title xml:lang="en-US">PHP XML_RPC 1.4.5 for Pear</title>
|
||||
<references>
|
||||
<reference href="https://pear.php.net/package/XML_RPC/download/">Version</reference>
|
||||
<reference href="https://pear.php.net/package/XML_RPC/">Product</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:xml_rpc:1.4.5:*:*:*:*:pear:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:xml_rpc:1.4.6::~~~pear~~">
|
||||
<title xml:lang="en-US">PHP XML_RPC 1.4.6 for Pear</title>
|
||||
<references>
|
||||
<reference href="https://pear.php.net/package/XML_RPC/download/">Version</reference>
|
||||
<reference href="https://pear.php.net/package/XML_RPC/">Product</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:xml_rpc:1.4.6:*:*:*:*:pear:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:pear:1.0:-">
|
||||
<title xml:lang="en-US">PHP PEAR 1.0</title>
|
||||
<references>
|
||||
<reference href="https://pear.php.net/package/PEAR/download/">Change Log</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:pear:1.0:-:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:php:pear:1.0:b1">
|
||||
<title xml:lang="en-US">PHP PEAR 1.0 Beta 1</title>
|
||||
<references>
|
||||
<reference href="https://pear.php.net/package/PEAR/download/">Change Log</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:php:pear:1.0:b1:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:html_quickform_project:html_quickform:2.0">
|
||||
<title xml:lang="en-US">HTML_QuickForm project HTML_QuickForm 2.0</title>
|
||||
<references>
|
||||
<reference href="http://pear.php.net/package/HTML_QuickForm/">Project</reference>
|
||||
<reference href="http://pear.php.net/package/HTML_QuickForm/download">Version</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:html_quickform_project:html_quickform:2.0:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:html_quickform_project:html_quickform:2.1">
|
||||
<title xml:lang="en-US">HTML_QuickForm project HTML_QuickForm 2.1</title>
|
||||
<references>
|
||||
<reference href="http://pear.php.net/package/HTML_QuickForm/">Project</reference>
|
||||
<reference href="http://pear.php.net/package/HTML_QuickForm/download">Version</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:html_quickform_project:html_quickform:2.1:*:*:*:*:*:*:*"/>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:jenkins:_subversion_partial_release_manager:1.0.1::~~~jenkins~~" deprecated="true" deprecation_date="2020-06-04T11:50:37.430Z">
|
||||
<title xml:lang="en-US">Jenkins Subversion Partial Release Manager 1.0.1 for Jenkins</title>
|
||||
<references>
|
||||
<reference href="https://github.com/jenkinsci/svn-partial-release-mgr-plugin">Version</reference>
|
||||
<reference href="https://plugins.jenkins.io/svn-partial-release-mgr">Product</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:jenkins:_subversion_partial_release_manager:1.0.1:*:*:*:*:jenkins:*:*">
|
||||
<cpe-23:deprecation date="2020-06-04T07:50:37.430-04:00">
|
||||
<cpe-23:deprecated-by name="cpe:2.3:a:jenkins:subversion_partial_release_manager:1.0.1:*:*:*:*:jenkins:*:*" type="NAME_CORRECTION"/>
|
||||
</cpe-23:deprecation>
|
||||
</cpe-23:cpe23-item>
|
||||
</cpe-item>
|
||||
<cpe-item name="cpe:/a:jenkins:360_fireline:1.0::~~~jenkins~~">
|
||||
<title xml:lang="en-US">Jenkins 360 FireLine 1.0 for Jenkins</title>
|
||||
<references>
|
||||
<reference href="https://plugins.jenkins.io/fireline">Product</reference>
|
||||
<reference href="https://github.com/jenkinsci/fireline-plugin">Version</reference>
|
||||
</references>
|
||||
<cpe-23:cpe23-item name="cpe:2.3:a:jenkins:360_fireline:1.0:*:*:*:*:jenkins:*:*"/>
|
||||
</cpe-item>
|
||||
</cpe-list>
|
||||
|
||||
@@ -4,8 +4,6 @@ const (
|
||||
EcosystemNPM = "npm"
|
||||
EcosystemRubyGems = "rubygems"
|
||||
EcosystemPyPI = "pypi"
|
||||
EcosystemPHPPear = "php_pear"
|
||||
EcosystemPHPPecl = "php_pecl"
|
||||
EcosystemJenkinsPlugins = "jenkins_plugins"
|
||||
EcosystemRustCrates = "rust_crates"
|
||||
)
|
||||
|
||||
@@ -86,9 +86,6 @@ func FromDictionaryFind(p pkg.Package) (cpe.CPE, bool) {
|
||||
case pkg.RustPkg:
|
||||
cpeString, ok = dict.EcosystemPackages[dictionary.EcosystemRustCrates][p.Name]
|
||||
|
||||
case pkg.PhpPeclPkg:
|
||||
cpeString, ok = dict.EcosystemPackages[dictionary.EcosystemPHPPecl][p.Name]
|
||||
|
||||
default:
|
||||
// The dictionary doesn't support this package type yet.
|
||||
return cpe.CPE{}, false
|
||||
|
||||
@@ -230,16 +230,30 @@ func cleanDescription(original *string) (cleaned string) {
|
||||
// resolveProperty emulates some maven property resolution logic by looking in the project's variables
|
||||
// as well as supporting the project expressions like ${project.parent.groupId}.
|
||||
// If no match is found, the entire expression including ${} is returned
|
||||
//
|
||||
//nolint:gocognit
|
||||
func resolveProperty(pom gopom.Project, property *string, propertyName string) string {
|
||||
propertyCase := safeString(property)
|
||||
log.WithFields("existingPropertyValue", propertyCase, "propertyName", propertyName).Trace("resolving property")
|
||||
seenBeforePropertyNames := map[string]struct{}{
|
||||
propertyName: {},
|
||||
}
|
||||
result := recursiveResolveProperty(pom, propertyCase, seenBeforePropertyNames)
|
||||
if propertyMatcher.MatchString(result) {
|
||||
return "" // dereferencing variable failed; fall back to empty string
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
//nolint:gocognit
|
||||
func recursiveResolveProperty(pom gopom.Project, propertyCase string, seenPropertyNames map[string]struct{}) string {
|
||||
return propertyMatcher.ReplaceAllStringFunc(propertyCase, func(match string) string {
|
||||
propertyName := strings.TrimSpace(match[2 : len(match)-1]) // remove leading ${ and trailing }
|
||||
if _, seen := seenPropertyNames[propertyName]; seen {
|
||||
return propertyCase
|
||||
}
|
||||
entries := pomProperties(pom)
|
||||
if value, ok := entries[propertyName]; ok {
|
||||
return value
|
||||
seenPropertyNames[propertyName] = struct{}{}
|
||||
return recursiveResolveProperty(pom, value, seenPropertyNames) // recursively resolve in case a variable points to a variable.
|
||||
}
|
||||
|
||||
// if we don't find anything directly in the pom properties,
|
||||
|
||||
@@ -502,7 +502,7 @@ func Test_resolveProperty(t *testing.T) {
|
||||
pom: gopom.Project{
|
||||
Parent: nil,
|
||||
},
|
||||
expected: "${project.parent.groupId}",
|
||||
expected: "",
|
||||
},
|
||||
{
|
||||
name: "nil string pointer halts search",
|
||||
@@ -512,7 +512,90 @@ func Test_resolveProperty(t *testing.T) {
|
||||
GroupID: nil,
|
||||
},
|
||||
},
|
||||
expected: "${project.parent.groupId}",
|
||||
expected: "",
|
||||
},
|
||||
{
|
||||
name: "double dereference",
|
||||
property: "${springboot.version}",
|
||||
pom: gopom.Project{
|
||||
Parent: &gopom.Parent{
|
||||
Version: stringPointer("1.2.3"),
|
||||
},
|
||||
Properties: &gopom.Properties{
|
||||
Entries: map[string]string{
|
||||
"springboot.version": "${project.parent.version}",
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: "1.2.3",
|
||||
},
|
||||
{
|
||||
name: "map missing stops double dereference",
|
||||
property: "${springboot.version}",
|
||||
pom: gopom.Project{
|
||||
Parent: &gopom.Parent{
|
||||
Version: stringPointer("1.2.3"),
|
||||
},
|
||||
},
|
||||
expected: "",
|
||||
},
|
||||
{
|
||||
name: "resolution halts even if it resolves to a variable",
|
||||
property: "${springboot.version}",
|
||||
pom: gopom.Project{
|
||||
Parent: &gopom.Parent{
|
||||
Version: stringPointer("${undefined.version}"),
|
||||
},
|
||||
Properties: &gopom.Properties{
|
||||
Entries: map[string]string{
|
||||
"springboot.version": "${project.parent.version}",
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: "",
|
||||
},
|
||||
{
|
||||
name: "resolution halts even if cyclic",
|
||||
property: "${springboot.version}",
|
||||
pom: gopom.Project{
|
||||
Properties: &gopom.Properties{
|
||||
Entries: map[string]string{
|
||||
"springboot.version": "${springboot.version}",
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: "",
|
||||
},
|
||||
{
|
||||
name: "resolution halts even if cyclic more steps",
|
||||
property: "${cyclic.version}",
|
||||
pom: gopom.Project{
|
||||
Properties: &gopom.Properties{
|
||||
Entries: map[string]string{
|
||||
"other.version": "${cyclic.version}",
|
||||
"springboot.version": "${other.version}",
|
||||
"cyclic.version": "${springboot.version}",
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: "",
|
||||
},
|
||||
{
|
||||
name: "resolution halts even if cyclic involving parent",
|
||||
property: "${cyclic.version}",
|
||||
pom: gopom.Project{
|
||||
Parent: &gopom.Parent{
|
||||
Version: stringPointer("${cyclic.version}"),
|
||||
},
|
||||
Properties: &gopom.Properties{
|
||||
Entries: map[string]string{
|
||||
"other.version": "${parent.version}",
|
||||
"springboot.version": "${other.version}",
|
||||
"cyclic.version": "${springboot.version}",
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: "",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -146,9 +146,6 @@ func (s License) Merge(l License) (*License, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if sHash != lHash {
|
||||
return nil, fmt.Errorf("cannot merge licenses with different hash")
|
||||
}
|
||||
|
||||
@@ -40,9 +40,6 @@ func (l stereoscopeImageSourceProvider) Provide(ctx context.Context) (source.Sou
|
||||
Exclude: l.cfg.Exclude,
|
||||
Alias: l.cfg.Alias,
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return New(img, cfg), nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user