Compare commits
144
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a89dd96450 | ||
|
|
76891836b1 | ||
|
|
fc5e2db757 | ||
|
|
ded987cb3b | ||
|
|
9f45b2463b | ||
|
|
559513a56c | ||
|
|
8edc431d7d | ||
|
|
3e8322e4bb | ||
|
|
5a55885447 | ||
|
|
f952b5a2c5 | ||
|
|
8678cfac42 | ||
|
|
aa8e70d588 | ||
|
|
3331d25f9d | ||
|
|
2af83f55fa | ||
|
|
0d3cf5ba9e | ||
|
|
b2a5ead1f7 | ||
|
|
79f0a0b62b | ||
|
|
fc44602899 | ||
|
|
7177991451 | ||
|
|
90fe789d91 | ||
|
|
5cbf74f675 | ||
|
|
11e0dead9a | ||
|
|
3c1cb72dcd | ||
|
|
570a2b5dcd | ||
|
|
a7e01b8d9c | ||
|
|
168567cd17 | ||
|
|
1d86ff759b | ||
|
|
0631089c32 | ||
|
|
0b8ffde994 | ||
|
|
68d57cd360 | ||
|
|
7314a0c1f5 | ||
|
|
cfeea91bf4 | ||
|
|
c8515ab391 | ||
|
|
cff52fd316 | ||
|
|
e65eb02ccf | ||
|
|
88953c2b16 | ||
|
|
d97416955e | ||
|
|
523c9a28aa | ||
|
|
f85d4d5bc2 | ||
|
|
89ff65dbf7 | ||
|
|
c3c32181a9 | ||
|
|
ead6e4616f | ||
|
|
a265e18106 | ||
|
|
a8759965d7 | ||
|
|
954314c2b1 | ||
|
|
5b62f3bc06 | ||
|
|
fddf4c3474 | ||
|
|
04e56a4409 | ||
|
|
af51c4b700 | ||
|
|
bd3b04e194 | ||
|
|
382d2873a9 | ||
|
|
500120a761 | ||
|
|
212ded88b2 | ||
|
|
7ec89343e1 | ||
|
|
536cc3d4b6 | ||
|
|
2bc52c6348 | ||
|
|
fe9d8a52c4 | ||
|
|
bd251cc9eb | ||
|
|
7e65a9bb48 | ||
|
|
b91ea51364 | ||
|
|
76b050a607 | ||
|
|
e6d6badddb | ||
|
|
f7363549ac | ||
|
|
f71a906c2e | ||
|
|
03ace23f96 | ||
|
|
0564d6f4de | ||
|
|
cd09f857a3 | ||
|
|
69a61b613b | ||
|
|
53eb1ebcf5 | ||
|
|
8dc52cdbed | ||
|
|
e8634671a4 | ||
|
|
69ecf4db79 | ||
|
|
70835908ea | ||
|
|
f704f55fa1 | ||
|
|
e51d18ae1e | ||
|
|
62f26a66d6 | ||
|
|
2f836bbce6 | ||
|
|
75dbba1acf | ||
|
|
8325453339 | ||
|
|
353956d50d | ||
|
|
4e41165d4b | ||
|
|
cf3393ef0a | ||
|
|
8213a1db10 | ||
|
|
64a6d1a0b8 | ||
|
|
364de25b16 | ||
|
|
ad34390f92 | ||
|
|
1f5e4f1cd9 | ||
|
|
fcb0293419 | ||
|
|
6c530dbedd | ||
|
|
e5c6ae035a | ||
|
|
9c66f1b1b1 | ||
|
|
9add2f12fa | ||
|
|
079b962af9 | ||
|
|
e6b5e83d4e | ||
|
|
3c40a50e4b | ||
|
|
886d1fcf5f | ||
|
|
615671754c | ||
|
|
cd1bb8895d | ||
|
|
7095391667 | ||
|
|
6c5ccdad46 | ||
|
|
51da82b3f5 | ||
|
|
ca13810d94 | ||
|
|
8447b31d38 | ||
|
|
85df23de2c | ||
|
|
5da6fdbdf9 | ||
|
|
92837b0ca8 | ||
|
|
35a52fd146 | ||
|
|
bed9726f78 | ||
|
|
e4d20ce9ad | ||
|
|
bb0ca79fcd | ||
|
|
07f52ce621 | ||
|
|
c7e8727af4 | ||
|
|
5e4b90e080 | ||
|
|
7d0e0f61e8 | ||
|
|
ffaf251c92 | ||
|
|
726ffc8aa8 | ||
|
|
fcef41f1e0 | ||
|
|
e81e6e582f | ||
|
|
511675e747 | ||
|
|
dcdbff2f84 | ||
|
|
29513b58ad | ||
|
|
347cb43687 | ||
|
|
dfe37bb356 | ||
|
|
ada103783f | ||
|
|
abc80cf6a0 | ||
|
|
15e91a3980 | ||
|
|
c7d2795410 | ||
|
|
eb07c6d763 | ||
|
|
4d8fe1e464 | ||
|
|
d3fa764646 | ||
|
|
1856a6de19 | ||
|
|
5573b58443 | ||
|
|
c3c3c2e746 | ||
|
|
f6f94a23a4 | ||
|
|
50954e6a9a | ||
|
|
66b6f67835 | ||
|
|
1644401f8d | ||
|
|
1a326fc7fa | ||
|
|
a82096e68a | ||
|
|
90d3a94eb7 | ||
|
|
9dde5949a8 | ||
|
|
cff142b535 | ||
|
|
a4c5ac881a | ||
|
|
d35955ebf6 |
@@ -21,10 +21,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set Node.js 18.x
|
- name: Set Node.js 18.x
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18.x
|
node-version: 18.x
|
||||||
cache: npm
|
cache: npm
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: npm
|
cache: npm
|
||||||
@@ -27,8 +27,8 @@ jobs:
|
|||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: npm
|
cache: npm
|
||||||
|
|||||||
@@ -9,6 +9,6 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: Dependency Review
|
- name: Dependency Review
|
||||||
uses: actions/dependency-review-action@main
|
uses: actions/dependency-review-action@main
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
```
|
```
|
||||||
@@ -57,7 +57,7 @@ jobs:
|
|||||||
runs-on: self-hosted
|
runs-on: self-hosted
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
```
|
```
|
||||||
@@ -67,7 +67,7 @@ jobs:
|
|||||||
Configure this action by either inlining these options in your workflow file, or by using an external configuration file. All configuration options are optional.
|
Configure this action by either inlining these options in your workflow file, or by using an external configuration file. All configuration options are optional.
|
||||||
|
|
||||||
| Option | Usage | Possible values | Default value |
|
| Option | Usage | Possible values | Default value |
|
||||||
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ------------- |
|
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------- |
|
||||||
| `fail-on-severity` | Defines the threshold for the level of severity. The action will fail on any pull requests that introduce vulnerabilities of the specified severity level or higher. | `low`, `moderate`, `high`, `critical` | `low` |
|
| `fail-on-severity` | Defines the threshold for the level of severity. The action will fail on any pull requests that introduce vulnerabilities of the specified severity level or higher. | `low`, `moderate`, `high`, `critical` | `low` |
|
||||||
| `allow-licenses`\* | Contains a list of allowed licenses. The action will fail on pull requests that introduce dependencies with licenses that do not match the list. | Any [SPDX-compliant identifier(s)](https://spdx.org/licenses/) | none |
|
| `allow-licenses`\* | Contains a list of allowed licenses. The action will fail on pull requests that introduce dependencies with licenses that do not match the list. | Any [SPDX-compliant identifier(s)](https://spdx.org/licenses/) | none |
|
||||||
| `deny-licenses`\* | Contains a list of prohibited licenses. The action will fail on pull requests that introduce dependencies with licenses that match the list. | Any [SPDX-compliant identifier(s)](https://spdx.org/licenses/) | none |
|
| `deny-licenses`\* | Contains a list of prohibited licenses. The action will fail on pull requests that introduce dependencies with licenses that match the list. | Any [SPDX-compliant identifier(s)](https://spdx.org/licenses/) | none |
|
||||||
@@ -80,6 +80,8 @@ Configure this action by either inlining these options in your workflow file, or
|
|||||||
| `comment-summary-in-pr` | Enable or disable reporting the review summary as a comment in the pull request. If enabled, you must give the workflow or job permission `pull-requests: write`. | `always`, `on-failure`, `never` | `never` |
|
| `comment-summary-in-pr` | Enable or disable reporting the review summary as a comment in the pull request. If enabled, you must give the workflow or job permission `pull-requests: write`. | `always`, `on-failure`, `never` | `never` |
|
||||||
| `deny-packages` | Any number of packages to block in a PR. | Package(s) in [purl](https://github.com/package-url/purl-spec) format | empty |
|
| `deny-packages` | Any number of packages to block in a PR. | Package(s) in [purl](https://github.com/package-url/purl-spec) format | empty |
|
||||||
| `deny-groups` | Any number of groups (namespaces) to block in a PR. | Namespace(s) in [purl](https://github.com/package-url/purl-spec) format (no package name, no version number) | empty |
|
| `deny-groups` | Any number of groups (namespaces) to block in a PR. | Namespace(s) in [purl](https://github.com/package-url/purl-spec) format (no package name, no version number) | empty |
|
||||||
|
| `retry-on-snapshot-warnings`\* | Enable or disable retrying the action every 10 seconds while waiting for dependency submission actions to complete. | `true`, `false` | `false` |
|
||||||
|
| `retry-on-snapshot-warnings-timeout`\* | Maximum amount of time (in seconds) to retry the action while waiting for dependency submission actions to complete. | Any positive integer | 120 |
|
||||||
|
|
||||||
\*not supported for use with GitHub Enterprise Server
|
\*not supported for use with GitHub Enterprise Server
|
||||||
|
|
||||||
@@ -101,7 +103,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: Dependency Review
|
- name: Dependency Review
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -126,7 +128,7 @@ Start by specifying that you will be using an external configuration file:
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Dependency Review
|
- name: Dependency Review
|
||||||
uses: actions/dependency-review-action@v2
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
config-file: './.github/dependency-review-config.yml'
|
config-file: './.github/dependency-review-config.yml'
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -26,7 +26,9 @@ const defaultConfig: ConfigurationOptions = {
|
|||||||
deny_licenses: [],
|
deny_licenses: [],
|
||||||
deny_packages: [],
|
deny_packages: [],
|
||||||
deny_groups: [],
|
deny_groups: [],
|
||||||
comment_summary_in_pr: true
|
comment_summary_in_pr: true,
|
||||||
|
retry_on_snapshot_warnings: false,
|
||||||
|
retry_on_snapshot_warnings_timeout: 120
|
||||||
}
|
}
|
||||||
|
|
||||||
const changesWithEmptyManifests: Changes = [
|
const changesWithEmptyManifests: Changes = [
|
||||||
|
|||||||
@@ -53,6 +53,14 @@ inputs:
|
|||||||
deny-groups:
|
deny-groups:
|
||||||
description: A comma-separated list of package URLs for group(s)/namespace(s) to deny (e.g. "pkg:npm/express, pkg:pip/pycrypto")
|
description: A comma-separated list of package URLs for group(s)/namespace(s) to deny (e.g. "pkg:npm/express, pkg:pip/pycrypto")
|
||||||
required: false
|
required: false
|
||||||
|
retry-on-snapshot-warnings:
|
||||||
|
description: Whether to retry on snapshot warnings
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
retry-on-snapshot-warnings-timeout:
|
||||||
|
description: Number of seconds to wait before stopping snapshot retries.
|
||||||
|
required: false
|
||||||
|
default: 120
|
||||||
runs:
|
runs:
|
||||||
using: 'node16'
|
using: 'node16'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
|
|||||||
+26667
-18749
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+280
-2
@@ -47,6 +47,28 @@ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|||||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
@fastify/busboy
|
||||||
|
MIT
|
||||||
|
Copyright Brian White. All rights reserved.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to
|
||||||
|
deal in the Software without restriction, including without limitation the
|
||||||
|
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
IN THE SOFTWARE.
|
||||||
|
|
||||||
@octokit/app
|
@octokit/app
|
||||||
MIT
|
MIT
|
||||||
The MIT License
|
The MIT License
|
||||||
@@ -1175,9 +1197,240 @@ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TOR
|
|||||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
lodash
|
lodash.includes
|
||||||
MIT
|
MIT
|
||||||
Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
||||||
|
|
||||||
|
Based on Underscore.js, copyright Jeremy Ashkenas,
|
||||||
|
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||||
|
|
||||||
|
This software consists of voluntary contributions made by many
|
||||||
|
individuals. For exact contribution history, see the revision history
|
||||||
|
available at https://github.com/lodash/lodash
|
||||||
|
|
||||||
|
The following license applies to all parts of this software except as
|
||||||
|
documented below:
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Copyright and related rights for sample code are waived via CC0. Sample
|
||||||
|
code is defined as all source code displayed within the prose of the
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
CC0: http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Files located in the node_modules and vendor directories are externally
|
||||||
|
maintained libraries used by this software which have their own
|
||||||
|
licenses; we recommend you read them, as their terms may differ from the
|
||||||
|
terms above.
|
||||||
|
|
||||||
|
|
||||||
|
lodash.isboolean
|
||||||
|
MIT
|
||||||
|
Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
|
||||||
|
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
|
||||||
|
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
lodash.isinteger
|
||||||
|
MIT
|
||||||
|
Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
||||||
|
|
||||||
|
Based on Underscore.js, copyright Jeremy Ashkenas,
|
||||||
|
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||||
|
|
||||||
|
This software consists of voluntary contributions made by many
|
||||||
|
individuals. For exact contribution history, see the revision history
|
||||||
|
available at https://github.com/lodash/lodash
|
||||||
|
|
||||||
|
The following license applies to all parts of this software except as
|
||||||
|
documented below:
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Copyright and related rights for sample code are waived via CC0. Sample
|
||||||
|
code is defined as all source code displayed within the prose of the
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
CC0: http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Files located in the node_modules and vendor directories are externally
|
||||||
|
maintained libraries used by this software which have their own
|
||||||
|
licenses; we recommend you read them, as their terms may differ from the
|
||||||
|
terms above.
|
||||||
|
|
||||||
|
|
||||||
|
lodash.isnumber
|
||||||
|
MIT
|
||||||
|
Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
|
||||||
|
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
|
||||||
|
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
lodash.isplainobject
|
||||||
|
MIT
|
||||||
|
Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
||||||
|
|
||||||
|
Based on Underscore.js, copyright Jeremy Ashkenas,
|
||||||
|
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||||
|
|
||||||
|
This software consists of voluntary contributions made by many
|
||||||
|
individuals. For exact contribution history, see the revision history
|
||||||
|
available at https://github.com/lodash/lodash
|
||||||
|
|
||||||
|
The following license applies to all parts of this software except as
|
||||||
|
documented below:
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Copyright and related rights for sample code are waived via CC0. Sample
|
||||||
|
code is defined as all source code displayed within the prose of the
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
CC0: http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
|
||||||
|
====
|
||||||
|
|
||||||
|
Files located in the node_modules and vendor directories are externally
|
||||||
|
maintained libraries used by this software which have their own
|
||||||
|
licenses; we recommend you read them, as their terms may differ from the
|
||||||
|
terms above.
|
||||||
|
|
||||||
|
|
||||||
|
lodash.isstring
|
||||||
|
MIT
|
||||||
|
Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
|
||||||
|
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
|
||||||
|
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
lodash.once
|
||||||
|
MIT
|
||||||
|
Copyright jQuery Foundation and other contributors <https://jquery.org/>
|
||||||
|
|
||||||
Based on Underscore.js, copyright Jeremy Ashkenas,
|
Based on Underscore.js, copyright Jeremy Ashkenas,
|
||||||
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
||||||
@@ -1517,6 +1770,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
undici
|
||||||
|
MIT
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) Matteo Collina and Undici contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
universal-github-app-jwt
|
universal-github-app-jwt
|
||||||
MIT
|
MIT
|
||||||
The MIT License
|
The MIT License
|
||||||
|
|||||||
+45
-9
@@ -18,7 +18,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
```
|
```
|
||||||
@@ -39,7 +39,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -76,7 +76,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -103,7 +103,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -130,7 +130,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -155,7 +155,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -183,7 +183,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -222,7 +222,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -251,10 +251,46 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@v3
|
uses: actions/dependency-review-action@v3
|
||||||
with:
|
with:
|
||||||
deny-packages: 'pkg:maven/org.apache.logging.log4j/log4j-api,pkg:maven/org.apache.logging.log4j/log4j-core'
|
deny-packages: 'pkg:maven/org.apache.logging.log4j/log4j-api,pkg:maven/org.apache.logging.log4j/log4j-core'
|
||||||
deny-groups: 'pkg:maven/com.bazaarvoice.jolt'
|
deny-groups: 'pkg:maven/com.bazaarvoice.jolt'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Waiting for dependency submission jobs to complete
|
||||||
|
|
||||||
|
When possible, this action will [include dependencies submitted through the dependency submission API][DSAPI]. In this case,
|
||||||
|
it's important for the action not to complete until all of the relevant dependencies have been submitted for both the base
|
||||||
|
and head commits.
|
||||||
|
|
||||||
|
When this action runs before one or more of the dependency submission actions, there will be an unequal number of dependency
|
||||||
|
snapshots between the base and head commits. For example, there may be one snapshot available for the tip of `main` and none
|
||||||
|
for the PR branch. In that case, the API response will contain a "snapshot warning" explaining the discrepancy.
|
||||||
|
|
||||||
|
In this example, when the action encounters one of these warnings it will retry every 10 seconds after that for 60 seconds
|
||||||
|
or until there is no warning in the response.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: 'Dependency Review'
|
||||||
|
on: [pull_request]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dependency-review:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: 'Checkout Repository'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: 'Dependency Review'
|
||||||
|
uses: actions/dependency-review-action@v3
|
||||||
|
with:
|
||||||
|
retry-on-snapshot-warnings: true
|
||||||
|
retry-on-snapshot-warnings-timeout: 60
|
||||||
|
```
|
||||||
|
|
||||||
|
[DSAPI]: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#best-practices-for-using-the-dependency-review-api-and-the-dependency-submission-api-together
|
||||||
|
|||||||
Generated
+1628
-2158
File diff suppressed because it is too large
Load Diff
+21
-21
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "dependency-review-action",
|
"name": "dependency-review-action",
|
||||||
"version": "3.0.8",
|
"version": "3.1.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "A GitHub Action for Dependency Review",
|
"description": "A GitHub Action for Dependency Review",
|
||||||
"main": "lib/main.js",
|
"main": "lib/main.js",
|
||||||
@@ -25,37 +25,37 @@
|
|||||||
"author": "GitHub",
|
"author": "GitHub",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.10.0",
|
"@actions/core": "^1.10.1",
|
||||||
"@actions/github": "^5.1.1",
|
"@actions/github": "^5.1.1",
|
||||||
"@octokit/plugin-retry": "^5.0.4",
|
"@octokit/plugin-retry": "^5.0.4",
|
||||||
"@octokit/request-error": "^2.1.0",
|
"@octokit/request-error": "^2.1.0",
|
||||||
|
"@types/jest": "^29.5.5",
|
||||||
"ansi-styles": "^6.2.1",
|
"ansi-styles": "^6.2.1",
|
||||||
"got": "^13.0.0",
|
"got": "^13.0.0",
|
||||||
|
"jest": "^29.7.0",
|
||||||
"octokit": "^2.1.0",
|
"octokit": "^2.1.0",
|
||||||
"packageurl-js": "^1.0.2",
|
"packageurl-js": "^1.2.0",
|
||||||
"spdx-expression-parse": "^3.0.1",
|
"spdx-expression-parse": "^3.0.1",
|
||||||
"spdx-satisfies": "^5.0.1",
|
"spdx-satisfies": "^5.0.1",
|
||||||
"yaml": "^2.3.1",
|
"ts-jest": "^29.1.1",
|
||||||
"zod": "^3.21.4"
|
"yaml": "^2.3.4",
|
||||||
|
"zod": "^3.22.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^27.5.2",
|
"@types/node": "^16.18.58",
|
||||||
"@types/node": "^16.18.41",
|
"@types/spdx-expression-parse": "^3.0.4",
|
||||||
"@types/spdx-expression-parse": "^3.0.2",
|
"@types/spdx-satisfies": "^0.1.1",
|
||||||
"@types/spdx-satisfies": "^0.1.0",
|
"@typescript-eslint/eslint-plugin": "^6.9.1",
|
||||||
"@typescript-eslint/eslint-plugin": "^6.4.0",
|
"@typescript-eslint/parser": "^6.9.1",
|
||||||
"@typescript-eslint/parser": "^6.2.1",
|
"@vercel/ncc": "^0.38.0",
|
||||||
"@vercel/ncc": "^0.36.1",
|
"esbuild-register": "^3.5.0",
|
||||||
"esbuild-register": "^3.4.2",
|
"eslint": "^8.52.0",
|
||||||
"eslint": "^8.47.0",
|
"eslint-plugin-github": "^4.10.1",
|
||||||
"eslint-plugin-github": "^4.8.0",
|
"eslint-plugin-jest": "^27.6.0",
|
||||||
"eslint-plugin-jest": "^27.2.2",
|
"eslint-plugin-prettier": "^5.0.1",
|
||||||
"eslint-plugin-prettier": "^5.0.0",
|
|
||||||
"jest": "^27.5.1",
|
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"nodemon": "^3.0.1",
|
"nodemon": "^3.0.1",
|
||||||
"prettier": "3.0.1",
|
"prettier": "3.0.3",
|
||||||
"ts-jest": "^27.1.4",
|
"typescript": "^5.2.2"
|
||||||
"typescript": "^4.9.5"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ const defaultConfig: ConfigurationOptions = {
|
|||||||
'pkg:pip/certifi',
|
'pkg:pip/certifi',
|
||||||
'pkg:pip/[email protected]'
|
'pkg:pip/[email protected]'
|
||||||
],
|
],
|
||||||
comment_summary_in_pr: 'never'
|
comment_summary_in_pr: true,
|
||||||
|
retry_on_snapshot_warnings: false,
|
||||||
|
retry_on_snapshot_warnings_timeout: 120
|
||||||
}
|
}
|
||||||
|
|
||||||
const tmpDir = path.resolve(__dirname, '../tmp')
|
const tmpDir = path.resolve(__dirname, '../tmp')
|
||||||
|
|||||||
+15
-1
@@ -41,6 +41,12 @@ function readInlineConfig(): ConfigurationOptionsPartial {
|
|||||||
const base_ref = getOptionalInput('base-ref')
|
const base_ref = getOptionalInput('base-ref')
|
||||||
const head_ref = getOptionalInput('head-ref')
|
const head_ref = getOptionalInput('head-ref')
|
||||||
const comment_summary_in_pr = getOptionalInput('comment-summary-in-pr')
|
const comment_summary_in_pr = getOptionalInput('comment-summary-in-pr')
|
||||||
|
const retry_on_snapshot_warnings = getOptionalBoolean(
|
||||||
|
'retry-on-snapshot-warnings'
|
||||||
|
)
|
||||||
|
const retry_on_snapshot_warnings_timeout = getOptionalNumber(
|
||||||
|
'retry-on-snapshot-warnings-timeout'
|
||||||
|
)
|
||||||
|
|
||||||
validatePURL(allow_dependencies_licenses)
|
validatePURL(allow_dependencies_licenses)
|
||||||
validateLicenses('allow-licenses', allow_licenses)
|
validateLicenses('allow-licenses', allow_licenses)
|
||||||
@@ -59,7 +65,9 @@ function readInlineConfig(): ConfigurationOptionsPartial {
|
|||||||
vulnerability_check,
|
vulnerability_check,
|
||||||
base_ref,
|
base_ref,
|
||||||
head_ref,
|
head_ref,
|
||||||
comment_summary_in_pr
|
comment_summary_in_pr,
|
||||||
|
retry_on_snapshot_warnings,
|
||||||
|
retry_on_snapshot_warnings_timeout
|
||||||
}
|
}
|
||||||
|
|
||||||
return Object.fromEntries(
|
return Object.fromEntries(
|
||||||
@@ -67,6 +75,12 @@ function readInlineConfig(): ConfigurationOptionsPartial {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getOptionalNumber(name: string): number | undefined {
|
||||||
|
const value = core.getInput(name)
|
||||||
|
const parsed = z.string().regex(/^\d+$/).transform(Number).safeParse(value)
|
||||||
|
return parsed.success ? parsed.data : undefined
|
||||||
|
}
|
||||||
|
|
||||||
function getOptionalBoolean(name: string): boolean | undefined {
|
function getOptionalBoolean(name: string): boolean | undefined {
|
||||||
const value = core.getInput(name)
|
const value = core.getInput(name)
|
||||||
return value.length > 0 ? core.getBooleanInput(name) : undefined
|
return value.length > 0 ? core.getBooleanInput(name) : undefined
|
||||||
|
|||||||
+49
-7
@@ -18,18 +18,60 @@ import {groupDependenciesByManifest} from './utils'
|
|||||||
import {commentPr} from './comment-pr'
|
import {commentPr} from './comment-pr'
|
||||||
import {getDeniedChanges} from './deny'
|
import {getDeniedChanges} from './deny'
|
||||||
|
|
||||||
|
async function delay(ms: number): Promise<void> {
|
||||||
|
return new Promise(resolve => setTimeout(resolve, ms))
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getComparison(
|
||||||
|
baseRef: string,
|
||||||
|
headRef: string,
|
||||||
|
retryOpts?: {
|
||||||
|
retryUntil: number
|
||||||
|
retryDelay: number
|
||||||
|
}
|
||||||
|
): ReturnType<typeof dependencyGraph.compare> {
|
||||||
|
const comparison = await dependencyGraph.compare({
|
||||||
|
owner: github.context.repo.owner,
|
||||||
|
repo: github.context.repo.repo,
|
||||||
|
baseRef,
|
||||||
|
headRef
|
||||||
|
})
|
||||||
|
|
||||||
|
if (comparison.snapshot_warnings.trim() !== '') {
|
||||||
|
core.info(comparison.snapshot_warnings)
|
||||||
|
if (retryOpts !== undefined) {
|
||||||
|
if (retryOpts.retryUntil < Date.now()) {
|
||||||
|
core.info(`Retry timeout exceeded. Proceeding...`)
|
||||||
|
return comparison
|
||||||
|
} else {
|
||||||
|
core.info(`Retrying in ${retryOpts.retryDelay} seconds...`)
|
||||||
|
await delay(retryOpts.retryDelay * 1000)
|
||||||
|
return getComparison(baseRef, headRef, retryOpts)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return comparison
|
||||||
|
}
|
||||||
|
|
||||||
async function run(): Promise<void> {
|
async function run(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
const config = await readConfig()
|
const config = await readConfig()
|
||||||
|
|
||||||
const refs = getRefs(config, github.context)
|
const refs = getRefs(config, github.context)
|
||||||
|
|
||||||
const comparison = await dependencyGraph.compare({
|
const comparison = await getComparison(
|
||||||
owner: github.context.repo.owner,
|
refs.base,
|
||||||
repo: github.context.repo.repo,
|
refs.head,
|
||||||
baseRef: refs.base,
|
config.retry_on_snapshot_warnings
|
||||||
headRef: refs.head
|
? {
|
||||||
})
|
retryUntil:
|
||||||
|
Date.now() + config.retry_on_snapshot_warnings_timeout * 1000,
|
||||||
|
retryDelay: 10
|
||||||
|
}
|
||||||
|
: undefined
|
||||||
|
)
|
||||||
|
|
||||||
const changes = comparison.changes
|
const changes = comparison.changes
|
||||||
const snapshot_warnings = comparison.snapshot_warnings
|
const snapshot_warnings = comparison.snapshot_warnings
|
||||||
|
|
||||||
@@ -81,7 +123,7 @@ async function run(): Promise<void> {
|
|||||||
)
|
)
|
||||||
|
|
||||||
if (snapshot_warnings) {
|
if (snapshot_warnings) {
|
||||||
summary.addSnapshotWarnings(snapshot_warnings)
|
summary.addSnapshotWarnings(config, snapshot_warnings)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.vulnerability_check) {
|
if (config.vulnerability_check) {
|
||||||
|
|||||||
@@ -49,6 +49,8 @@ export const ConfigurationOptionsSchema = z
|
|||||||
config_file: z.string().optional(),
|
config_file: z.string().optional(),
|
||||||
base_ref: z.string().optional(),
|
base_ref: z.string().optional(),
|
||||||
head_ref: z.string().optional(),
|
head_ref: z.string().optional(),
|
||||||
|
retry_on_snapshot_warnings: z.boolean().default(false),
|
||||||
|
retry_on_snapshot_warnings_timeout: z.number().default(120),
|
||||||
comment_summary_in_pr: z
|
comment_summary_in_pr: z
|
||||||
.union([
|
.union([
|
||||||
z.preprocess(
|
z.preprocess(
|
||||||
|
|||||||
+26
-4
@@ -231,12 +231,34 @@ export function addScannedDependencies(changes: Changes): void {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function addSnapshotWarnings(warnings: string): void {
|
function snapshotWarningRecommendation(
|
||||||
|
config: ConfigurationOptions,
|
||||||
|
warnings: string
|
||||||
|
): string {
|
||||||
|
const no_pr_snaps = warnings.includes(
|
||||||
|
'No snapshots were found for the head SHA'
|
||||||
|
)
|
||||||
|
const retries_disabled = !config.retry_on_snapshot_warnings
|
||||||
|
if (no_pr_snaps && retries_disabled) {
|
||||||
|
return 'Ensure that dependencies are being submitted on PR branches and consider enabling <em>retry-on-snapshot-warnings</em>.'
|
||||||
|
} else if (no_pr_snaps) {
|
||||||
|
return 'Ensure that dependencies are being submitted on PR branches. Re-running this action after a short time may resolve the issue.'
|
||||||
|
} else if (retries_disabled) {
|
||||||
|
return 'Consider enabling <em>retry-on-snapshot-warnings</em>.'
|
||||||
|
}
|
||||||
|
return 'Re-running this action after a short time may resolve the issue.'
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addSnapshotWarnings(
|
||||||
|
config: ConfigurationOptions,
|
||||||
|
warnings: string
|
||||||
|
): void {
|
||||||
core.summary.addHeading('Snapshot Warnings', 2)
|
core.summary.addHeading('Snapshot Warnings', 2)
|
||||||
core.summary.addQuote(`${icons.warning}: ${warnings}`)
|
core.summary.addQuote(`${icons.warning}: ${warnings}`)
|
||||||
core.summary.addRaw(
|
const recommendation = snapshotWarningRecommendation(config, warnings)
|
||||||
'Re-running this action after a short time may resolve the issue. See the documentation for more information and troubleshooting advice.'
|
const docsLink =
|
||||||
)
|
'See <a href="https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#best-practices-for-using-the-dependency-review-api-and-the-dependency-submission-api-together">the documentation</a> for more information and troubleshooting advice.'
|
||||||
|
core.summary.addRaw(`${recommendation} ${docsLink}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
function countLicenseIssues(
|
function countLicenseIssues(
|
||||||
|
|||||||
Reference in New Issue
Block a user