Compare commits
44 Commits
predicate@
...
v1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5026d36637 | ||
|
|
dc92b4c0be | ||
|
|
dd4b089aa5 | ||
|
|
fa5285f58e | ||
|
|
bd470e0ef8 | ||
|
|
0d076ca0ac | ||
|
|
79af85adb2 | ||
|
|
9e75edd833 | ||
|
|
f19ab44411 | ||
|
|
8507f05fe1 | ||
|
|
25b3c0884a | ||
|
|
b5fe8a6c40 | ||
|
|
47c91cee86 | ||
|
|
6d7733f629 | ||
|
|
adc5c62972 | ||
|
|
8541e845e0 | ||
|
|
bfc4aecb6d | ||
|
|
3d6693daad | ||
|
|
8a2267cfa7 | ||
|
|
9acafbf4c3 | ||
|
|
91d05efbc3 | ||
|
|
ab8de8941e | ||
|
|
c43b2b4d84 | ||
|
|
fe4a732a3e | ||
|
|
ba663bc478 | ||
|
|
49e7311f18 | ||
|
|
cb316d67b7 | ||
|
|
4696efab19 | ||
|
|
dcbe3081a3 | ||
|
|
aaa2d0a82e | ||
|
|
dc3e3b331e | ||
|
|
c29e4e9225 | ||
|
|
798ee587a2 | ||
|
|
7d87da1e33 | ||
|
|
e318c7dfea | ||
|
|
614575ea4f | ||
|
|
d00b213255 | ||
|
|
f975621746 | ||
|
|
5297f161fa | ||
|
|
10c27177cd | ||
|
|
c80e3ed30c | ||
|
|
c168f2354d | ||
|
|
5448b22ebd | ||
|
|
b125530ffd |
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
@@ -10,7 +10,7 @@ updates:
|
|||||||
- minor
|
- minor
|
||||||
- patch
|
- patch
|
||||||
ignore:
|
ignore:
|
||||||
- dependency-name: "actions/attest-sbom"
|
- dependency-name: 'actions/attest-sbom'
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: /
|
directory: /
|
||||||
|
|||||||
3
.github/workflows/linter.yml
vendored
3
.github/workflows/linter.yml
vendored
@@ -38,7 +38,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Lint Codebase
|
- name: Lint Codebase
|
||||||
id: super-linter
|
id: super-linter
|
||||||
uses: super-linter/super-linter/slim@v6
|
uses: super-linter/super-linter/slim@v7
|
||||||
env:
|
env:
|
||||||
DEFAULT_BRANCH: main
|
DEFAULT_BRANCH: main
|
||||||
FILTER_REGEX_EXCLUDE: dist/**/*
|
FILTER_REGEX_EXCLUDE: dist/**/*
|
||||||
@@ -46,4 +46,5 @@ jobs:
|
|||||||
TYPESCRIPT_DEFAULT_STYLE: prettier
|
TYPESCRIPT_DEFAULT_STYLE: prettier
|
||||||
VALIDATE_ALL_CODEBASE: true
|
VALIDATE_ALL_CODEBASE: true
|
||||||
VALIDATE_JAVASCRIPT_STANDARD: false
|
VALIDATE_JAVASCRIPT_STANDARD: false
|
||||||
|
VALIDATE_TYPESCRIPT_STANDARD: false
|
||||||
VALIDATE_JSCPD: false
|
VALIDATE_JSCPD: false
|
||||||
74
README.md
74
README.md
@@ -18,9 +18,12 @@ Once the attestation has been created and signed, it will be uploaded to the GH
|
|||||||
attestations API and associated with the repository from which the workflow was
|
attestations API and associated with the repository from which the workflow was
|
||||||
initiated.
|
initiated.
|
||||||
|
|
||||||
Attestations can be verified using the `attestation` command in the [GitHub
|
Attestations can be verified using the [`attestation` command in the GitHub
|
||||||
CLI][7].
|
CLI][7].
|
||||||
|
|
||||||
|
See [Using artifact attestations to establish provenance for builds][11] for
|
||||||
|
more information on artifact attestations.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Within the GitHub Actions workflow which builds some artifact you would like to
|
Within the GitHub Actions workflow which builds some artifact you would like to
|
||||||
@@ -38,7 +41,8 @@ attest:
|
|||||||
necessary to request a Sigstore signing certificate. The `attestations`
|
necessary to request a Sigstore signing certificate. The `attestations`
|
||||||
permission is necessary to persist the attestation.
|
permission is necessary to persist the attestation.
|
||||||
|
|
||||||
1. Add the following to your workflow after your artifact has been built:
|
1. Add the following to your workflow after your artifact has been built and
|
||||||
|
your SBOM has been generated:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: actions/attest-sbom@v1
|
- uses: actions/attest-sbom@v1
|
||||||
@@ -47,7 +51,7 @@ attest:
|
|||||||
sbom-path: '<PATH TO SBOM>'
|
sbom-path: '<PATH TO SBOM>'
|
||||||
```
|
```
|
||||||
|
|
||||||
The `subject-path` parameter should identity the artifact for which you want
|
The `subject-path` parameter should identify the artifact for which you want
|
||||||
to generate an SBOM attestation. The `sbom-path` parameter should identify
|
to generate an SBOM attestation. The `sbom-path` parameter should identify
|
||||||
the SBOM document to be associated with the subject.
|
the SBOM document to be associated with the subject.
|
||||||
|
|
||||||
@@ -56,13 +60,14 @@ attest:
|
|||||||
See [action.yml](action.yml)
|
See [action.yml](action.yml)
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: actions/attest@v1
|
- uses: actions/attest-sbom@v1
|
||||||
with:
|
with:
|
||||||
# Path to the artifact serving as the subject of the attestation. Must
|
# Path to the artifact serving as the subject of the attestation. Must
|
||||||
# specify exactly one of "subject-path" or "subject-digest".
|
# specify exactly one of "subject-path" or "subject-digest". May contain a
|
||||||
|
# glob pattern or list of paths (total subject count cannot exceed 2500).
|
||||||
subject-path:
|
subject-path:
|
||||||
|
|
||||||
# SHA256 digest of the subject for for the attestation. Must be in the form
|
# SHA256 digest of the subject for the attestation. Must be in the form
|
||||||
# "sha256:hex_digest" (e.g. "sha256:abc123..."). Must specify exactly one
|
# "sha256:hex_digest" (e.g. "sha256:abc123..."). Must specify exactly one
|
||||||
# of "subject-path" or "subject-digest".
|
# of "subject-path" or "subject-digest".
|
||||||
subject-digest:
|
subject-digest:
|
||||||
@@ -72,8 +77,8 @@ See [action.yml](action.yml)
|
|||||||
# path.
|
# path.
|
||||||
subject-name:
|
subject-name:
|
||||||
|
|
||||||
# Path to the JSON-formatted SBOM file to attest. When specified, the
|
# Path to the JSON-formatted SBOM file to attest. File size cannot exceed
|
||||||
# "scan-path" and "sbom-format" inputs are ignored.
|
# 16MB.
|
||||||
sbom-path:
|
sbom-path:
|
||||||
|
|
||||||
# Whether to push the attestation to the image registry. Requires that the
|
# Whether to push the attestation to the image registry. Requires that the
|
||||||
@@ -81,6 +86,10 @@ See [action.yml](action.yml)
|
|||||||
# the "subject-digest" parameter be specified. Defaults to false.
|
# the "subject-digest" parameter be specified. Defaults to false.
|
||||||
push-to-registry:
|
push-to-registry:
|
||||||
|
|
||||||
|
# Whether to attach a list of generated attestations to the workflow run
|
||||||
|
# summary page. Defaults to true.
|
||||||
|
show-summary:
|
||||||
|
|
||||||
# The GitHub token used to make authenticated API requests. Default is
|
# The GitHub token used to make authenticated API requests. Default is
|
||||||
# ${{ github.token }}
|
# ${{ github.token }}
|
||||||
github-token:
|
github-token:
|
||||||
@@ -102,6 +111,19 @@ If multiple subjects are being attested at the same time, each attestation will
|
|||||||
be written to the output file on a separate line (using the [JSON Lines][9]
|
be written to the output file on a separate line (using the [JSON Lines][9]
|
||||||
format).
|
format).
|
||||||
|
|
||||||
|
## Attestation Limits
|
||||||
|
|
||||||
|
### Subject Limits
|
||||||
|
|
||||||
|
No more than 2500 subjects can be attested at the same time. Subjects will be
|
||||||
|
processed in batches 50. After the initial group of 50, each subsequent batch
|
||||||
|
will incur an exponentially increasing amount of delay (capped at 1 minute of
|
||||||
|
delay per batch) to avoid overwhelming the attestation API.
|
||||||
|
|
||||||
|
### SBOM Limits
|
||||||
|
|
||||||
|
The SBOM supplied via the `sbom-path` input cannot exceed 16MB.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
### Identify Subject and SBOM by Path
|
### Identify Subject and SBOM by Path
|
||||||
@@ -129,15 +151,18 @@ jobs:
|
|||||||
- name: Build artifact
|
- name: Build artifact
|
||||||
run: make my-app
|
run: make my-app
|
||||||
- name: Generate SBOM
|
- name: Generate SBOM
|
||||||
run: make sbom
|
uses: anchore/sbom-action@v0
|
||||||
|
with:
|
||||||
|
format: 'spdx-json'
|
||||||
|
output-file: 'sbom.spdx.json'
|
||||||
- name: Attest
|
- name: Attest
|
||||||
uses: actions/attest-sbom@v1
|
uses: actions/attest-sbom@v1
|
||||||
with:
|
with:
|
||||||
subject-path: '${{ github.workspace }}/my-app'
|
subject-path: '${{ github.workspace }}/my-app'
|
||||||
sbom-path: '${{ github.workspace }}/my-app.sbom.spdx.json'
|
sbom-path: 'sbom.spdx.json'
|
||||||
```
|
```
|
||||||
|
|
||||||
### Identify Subjects by Wildcard
|
### Identify Multiple Subjects
|
||||||
|
|
||||||
If you are generating multiple artifacts, you can generate an attestation for
|
If you are generating multiple artifacts, you can generate an attestation for
|
||||||
each by using a wildcard in the `subject-path` input.
|
each by using a wildcard in the `subject-path` input.
|
||||||
@@ -152,6 +177,23 @@ each by using a wildcard in the `subject-path` input.
|
|||||||
For supported wildcards along with behavior and documentation, see
|
For supported wildcards along with behavior and documentation, see
|
||||||
[@actions/glob][10] which is used internally to search for files.
|
[@actions/glob][10] which is used internally to search for files.
|
||||||
|
|
||||||
|
Alternatively, you can explicitly list multiple subjects with either a comma or
|
||||||
|
newline delimited list:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- uses: actions/attest-sbom@v1
|
||||||
|
with:
|
||||||
|
subject-path: 'dist/foo, dist/bar'
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- uses: actions/attest-sbom@v1
|
||||||
|
with:
|
||||||
|
subject-path: |
|
||||||
|
dist/foo
|
||||||
|
dist/bar
|
||||||
|
```
|
||||||
|
|
||||||
### Container Image
|
### Container Image
|
||||||
|
|
||||||
When working with container images you can invoke the action with the
|
When working with container images you can invoke the action with the
|
||||||
@@ -202,7 +244,11 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
|
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
|
||||||
- name: Generate SBOM
|
- name: Generate SBOM
|
||||||
run: make sbom
|
uses: anchore/sbom-action@v0
|
||||||
|
with:
|
||||||
|
image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
|
||||||
|
format: 'cyclonedx-json'
|
||||||
|
output-file: 'sbom.cyclonedx.json'
|
||||||
- name: Attest
|
- name: Attest
|
||||||
uses: actions/attest-sbom@v1
|
uses: actions/attest-sbom@v1
|
||||||
id: attest
|
id: attest
|
||||||
@@ -218,8 +264,10 @@ jobs:
|
|||||||
[4]: https://spdx.dev/
|
[4]: https://spdx.dev/
|
||||||
[5]: https://cyclonedx.org/
|
[5]: https://cyclonedx.org/
|
||||||
[6]: https://www.sigstore.dev/
|
[6]: https://www.sigstore.dev/
|
||||||
[7]: https://cli.github.com/
|
[7]: https://cli.github.com/manual/gh_attestation_verify
|
||||||
[8]:
|
[8]:
|
||||||
https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto
|
https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto
|
||||||
[9]: https://jsonlines.org/
|
[9]: https://jsonlines.org/
|
||||||
[10]: https://github.com/actions/toolkit/tree/main/packages/glob#patterns
|
[10]: https://github.com/actions/toolkit/tree/main/packages/glob#patterns
|
||||||
|
[11]:
|
||||||
|
https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds
|
||||||
|
|||||||
25
RELEASE.md
25
RELEASE.md
@@ -1,12 +1,12 @@
|
|||||||
# Release Instructions
|
# Release Instructions
|
||||||
|
|
||||||
Follow the steps below to tag a new release for the
|
Follow the steps below to tag a new release for the `actions/attest-sbom`
|
||||||
`actions/attest-sbom` action.
|
action.
|
||||||
|
|
||||||
If changes were made to the internal `actions/attest-sbom/predicate`
|
If changes were made to the internal `actions/attest-sbom/predicate` action (any
|
||||||
action (any updates to [`./predicate/action.yaml`](./predicate/action.yml) or
|
updates to [`./predicate/action.yaml`](./predicate/action.yml) or any of the
|
||||||
any of the code in the [`./src`](./src) directory), start with step #1;
|
code in the [`./src`](./src) directory), start with step #1; otherwise, skip
|
||||||
otherwise, skip directly to step #5.
|
directly to step #5.
|
||||||
|
|
||||||
1. Merge the latest changes to the `main` branch.
|
1. Merge the latest changes to the `main` branch.
|
||||||
1. Create and push a new predicate tag of the form `predicate@X.X.X` following
|
1. Create and push a new predicate tag of the form `predicate@X.X.X` following
|
||||||
@@ -17,9 +17,8 @@ otherwise, skip directly to step #5.
|
|||||||
git push --tags
|
git push --tags
|
||||||
```
|
```
|
||||||
|
|
||||||
1. Update the reference to the `actions/attest-sbom/predicate`
|
1. Update the reference to the `actions/attest-sbom/predicate` action in
|
||||||
action in [`action.yml`](./action.yml) to point to the SHA of the newly
|
[`action.yml`](./action.yml) to point to the SHA of the newly created tag.
|
||||||
created tag.
|
|
||||||
1. Push the `action.yml` change and open a PR. Once it has been reviewed, merge
|
1. Push the `action.yml` change and open a PR. Once it has been reviewed, merge
|
||||||
the PR and proceed with the release instructions.
|
the PR and proceed with the release instructions.
|
||||||
1. Create a new release for the top-level action using a tag of the form
|
1. Create a new release for the top-level action using a tag of the form
|
||||||
@@ -28,3 +27,11 @@ otherwise, skip directly to step #5.
|
|||||||
```shell
|
```shell
|
||||||
gh release create vX.X.X
|
gh release create vX.X.X
|
||||||
```
|
```
|
||||||
|
|
||||||
|
1. Move (or create) the major version tag to point to the same commit tagged
|
||||||
|
above:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git tag -fa vX -m "vX"
|
||||||
|
git push origin vX --force
|
||||||
|
```
|
||||||
|
|||||||
@@ -6,10 +6,7 @@
|
|||||||
"documentNamespace": "https://anchore.com/syft/dir/80b363b6-87f4-4162-853f-60d402537d20",
|
"documentNamespace": "https://anchore.com/syft/dir/80b363b6-87f4-4162-853f-60d402537d20",
|
||||||
"creationInfo": {
|
"creationInfo": {
|
||||||
"licenseListVersion": "3.22",
|
"licenseListVersion": "3.22",
|
||||||
"creators": [
|
"creators": ["Organization: Anchore, Inc", "Tool: syft-0.103.1"],
|
||||||
"Organization: Anchore, Inc",
|
|
||||||
"Tool: syft-0.103.1"
|
|
||||||
],
|
|
||||||
"created": "2024-01-31T18:22:50Z"
|
"created": "2024-01-31T18:22:50Z"
|
||||||
},
|
},
|
||||||
"packages": [
|
"packages": [
|
||||||
|
|||||||
27
action.yml
27
action.yml
@@ -1,16 +1,20 @@
|
|||||||
name: 'Attest SBOM'
|
name: 'Attest SBOM'
|
||||||
description: 'Generate SBOM attestations for build artifacts'
|
description: 'Generate SBOM attestations for build artifacts'
|
||||||
author: 'GitHub'
|
author: 'GitHub'
|
||||||
|
branding:
|
||||||
|
color: 'blue'
|
||||||
|
icon: 'paperclip'
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
subject-path:
|
subject-path:
|
||||||
description: >
|
description: >
|
||||||
Path to the artifact serving as the subject of the attestation. Must
|
Path to the artifact serving as the subject of the attestation. Must
|
||||||
specify exactly one of "subject-path" or "subject-digest".
|
specify exactly one of "subject-path" or "subject-digest". May contain a
|
||||||
|
glob pattern or list of paths (total subject count cannot exceed 2500).
|
||||||
required: false
|
required: false
|
||||||
subject-digest:
|
subject-digest:
|
||||||
description: >
|
description: >
|
||||||
SHA256 digest of the subject for for the attestation. Must be in the form
|
SHA256 digest of the subject for the attestation. Must be in the form
|
||||||
"sha256:hex_digest" (e.g. "sha256:abc123..."). Must specify exactly one of
|
"sha256:hex_digest" (e.g. "sha256:abc123..."). Must specify exactly one of
|
||||||
"subject-path" or "subject-digest".
|
"subject-path" or "subject-digest".
|
||||||
required: false
|
required: false
|
||||||
@@ -21,9 +25,9 @@ inputs:
|
|||||||
path.
|
path.
|
||||||
sbom-path:
|
sbom-path:
|
||||||
description: >
|
description: >
|
||||||
Path to the JSON-formatted SBOM file to attest. When specified, the
|
Path to the JSON-formatted SBOM file to attest. File size cannot exceed
|
||||||
"scan-path" and "sbom-format" inputs are ignored.
|
16MB.
|
||||||
required: false
|
required: true
|
||||||
push-to-registry:
|
push-to-registry:
|
||||||
description: >
|
description: >
|
||||||
Whether to push the provenance statement to the image registry. Requires
|
Whether to push the provenance statement to the image registry. Requires
|
||||||
@@ -31,6 +35,12 @@ inputs:
|
|||||||
and that the "subject-digest" parameter be specified. Defaults to false.
|
and that the "subject-digest" parameter be specified. Defaults to false.
|
||||||
default: false
|
default: false
|
||||||
required: false
|
required: false
|
||||||
|
show-summary:
|
||||||
|
description: >
|
||||||
|
Whether to attach a list of generated attestations to the workflow run
|
||||||
|
summary page. Defaults to true.
|
||||||
|
default: true
|
||||||
|
required: false
|
||||||
github-token:
|
github-token:
|
||||||
description: >
|
description: >
|
||||||
The GitHub token used to make authenticated API requests.
|
The GitHub token used to make authenticated API requests.
|
||||||
@@ -45,11 +55,11 @@ outputs:
|
|||||||
runs:
|
runs:
|
||||||
using: 'composite'
|
using: 'composite'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/attest-sbom/predicate@847c6befa7ce187c962fa6c3e6cd3c96e4da9565 # predicate@0.1.0
|
- uses: actions/attest-sbom/predicate@534423496eab34674190bc45fdacbb8b1198e07f # predicate@1.0.0
|
||||||
id: generate-sbom-predicate
|
id: generate-sbom-predicate
|
||||||
with:
|
with:
|
||||||
sbom-path: ${{ inputs.sbom-path || steps.sbom-output.outputs.path }}
|
sbom-path: ${{ inputs.sbom-path }}
|
||||||
- uses: actions/attest@14e407ca15f1b08f4869fc058b059f7f1e434df6 # v0.1.0
|
- uses: actions/attest@67422f5511b7ff725f4dbd6fb9bd2cd925c65a8d # v1.4.1
|
||||||
id: attest
|
id: attest
|
||||||
with:
|
with:
|
||||||
subject-path: ${{ inputs.subject-path }}
|
subject-path: ${{ inputs.subject-path }}
|
||||||
@@ -60,4 +70,5 @@ runs:
|
|||||||
predicate-path:
|
predicate-path:
|
||||||
${{ steps.generate-sbom-predicate.outputs.predicate-path }}
|
${{ steps.generate-sbom-predicate.outputs.predicate-path }}
|
||||||
push-to-registry: ${{ inputs.push-to-registry }}
|
push-to-registry: ${{ inputs.push-to-registry }}
|
||||||
|
show-summary: ${{ inputs.show-summary }}
|
||||||
github-token: ${{ inputs.github-token }}
|
github-token: ${{ inputs.github-token }}
|
||||||
|
|||||||
7
dist/index.js
generated
vendored
7
dist/index.js
generated
vendored
@@ -24945,7 +24945,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.run = void 0;
|
exports.run = run;
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const sbom_1 = __nccwpck_require__(6210);
|
const sbom_1 = __nccwpck_require__(6210);
|
||||||
/**
|
/**
|
||||||
@@ -24969,7 +24969,6 @@ async function run() {
|
|||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.run = run;
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
@@ -25006,7 +25005,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.generateSBOMPredicate = exports.storePredicate = exports.parseSBOMFromPath = void 0;
|
exports.generateSBOMPredicate = exports.storePredicate = void 0;
|
||||||
|
exports.parseSBOMFromPath = parseSBOMFromPath;
|
||||||
const fs_1 = __importDefault(__nccwpck_require__(7147));
|
const fs_1 = __importDefault(__nccwpck_require__(7147));
|
||||||
const path = __importStar(__nccwpck_require__(1017));
|
const path = __importStar(__nccwpck_require__(1017));
|
||||||
async function parseSBOMFromPath(filePath) {
|
async function parseSBOMFromPath(filePath) {
|
||||||
@@ -25021,7 +25021,6 @@ async function parseSBOMFromPath(filePath) {
|
|||||||
}
|
}
|
||||||
throw new Error('Unsupported SBOM format');
|
throw new Error('Unsupported SBOM format');
|
||||||
}
|
}
|
||||||
exports.parseSBOMFromPath = parseSBOMFromPath;
|
|
||||||
function checkIsSPDX(sbomObject) {
|
function checkIsSPDX(sbomObject) {
|
||||||
if (sbomObject?.spdxVersion && sbomObject?.SPDXID) {
|
if (sbomObject?.spdxVersion && sbomObject?.SPDXID) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
1034
package-lock.json
generated
1034
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@@ -73,22 +73,22 @@
|
|||||||
"@actions/core": "^1.10.1"
|
"@actions/core": "^1.10.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@actions/attest": "^1.1.0",
|
"@actions/attest": "^1.4.0",
|
||||||
"@types/jest": "^29.5.12",
|
"@types/jest": "^29.5.12",
|
||||||
"@types/node": "^20.12.7",
|
"@types/node": "^22.4.1",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.7.0",
|
"@typescript-eslint/eslint-plugin": "^7.17.0",
|
||||||
"@typescript-eslint/parser": "^7.7.0",
|
"@typescript-eslint/parser": "^7.18.0",
|
||||||
"@vercel/ncc": "^0.38.1",
|
"@vercel/ncc": "^0.38.1",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-plugin-github": "^4.10.2",
|
"eslint-plugin-github": "^5.0.1",
|
||||||
"eslint-plugin-jest": "^28.2.0",
|
"eslint-plugin-jest": "^28.8.0",
|
||||||
"eslint-plugin-jsonc": "^2.15.1",
|
"eslint-plugin-jsonc": "^2.16.0",
|
||||||
"eslint-plugin-prettier": "^5.1.3",
|
"eslint-plugin-prettier": "^5.2.1",
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
"markdownlint-cli": "^0.39.0",
|
"markdownlint-cli": "^0.41.0",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.3.3",
|
||||||
"prettier-eslint": "^16.3.0",
|
"prettier-eslint": "^16.3.0",
|
||||||
"ts-jest": "^29.1.2",
|
"ts-jest": "^29.2.4",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user