Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
5c40c6a
chore: use archive.apache.org instead of dlcdn.apache.org (#234)
Strum355 Jun 20, 2025
cc39167
build: updated package with v0.2.4-ea.2 [skip ci]
Strum355 Jun 20, 2025
a9c8bf2
feat: support passing additional arguments to maven (#238)
Strum355 Jul 16, 2025
310ffbd
build: updated package with v0.2.4-ea.3 [skip ci]
Strum355 Jul 16, 2025
ad0d019
[Snyk] Upgrade node-fetch from 2.6.11 to 2.7.0 (#237)
desmax74 Jul 18, 2025
7a75938
build: updated package with v0.2.4-ea.4 [skip ci]
Strum355 Jul 18, 2025
fb08d25
chore(deps): upgrade fast-xml-parser from 4.3.2 to 4.5.3 (#235)
desmax74 Jul 18, 2025
3d04997
build: updated package with v0.2.4-ea.5 [skip ci]
Strum355 Jul 18, 2025
60c5f9d
chore(ci): add multi-arch integration tests (#200)
ruromero Jul 18, 2025
6058deb
fix: use & pass down opts for getCustom in imageAnalysis (#244)
Strum355 Sep 1, 2025
969dc24
build: updated package with v0.2.4-ea.6 [skip ci]
Strum355 Sep 1, 2025
5ea1a5e
fix: properly handle go.mod files with no dependencies (#245)
Strum355 Sep 1, 2025
d454a4a
build: updated package with v0.2.4-ea.7 [skip ci]
Strum355 Sep 1, 2025
b45975f
fix: allow ignored packages without version (#246)
ruromero Sep 2, 2025
854a70a
build: updated package with v0.2.4-ea.8 [skip ci]
ruromero Sep 2, 2025
e906448
fix: correctly fallback to podman if docker hostinfo returns nothing …
Strum355 Sep 2, 2025
d23acc7
build: updated package with v0.2.4-ea.9 [skip ci]
Strum355 Sep 2, 2025
a93a7f9
chore: include package manager in exhort API request headers (#253)
Strum355 Oct 6, 2025
57853f3
build: updated package with v0.2.4-ea.10 [skip ci]
Strum355 Oct 6, 2025
b7c8977
feat: separate telemetry id header from auth token header (#254)
Strum355 Oct 10, 2025
8e44e06
build: updated package with v0.2.4-ea.11 [skip ci]
Strum355 Oct 10, 2025
87054ff
feat!: set golang mvs true as default (#255)
ruromero Oct 30, 2025
3962c91
build: updated package with v0.2.4-ea.12 [skip ci]
ruromero Oct 30, 2025
06853ec
chore: rename trustification references to guacsec (#249)
Strum355 Nov 10, 2025
4fe9424
chore: fix-up & tidy-up workflows and remove references to .npmrc reg…
Strum355 Nov 12, 2025
fefbd25
chore: publish to npm only from 'trusted publisher' pipeline (#261)
Strum355 Nov 14, 2025
be76688
chore: publish public package with provenance (#264)
ruromero Nov 14, 2025
b427266
chore: trigger upon release.yml change (#265)
ruromero Nov 14, 2025
7b7b21f
chore: use newer node & npm versions (#267)
Strum355 Nov 14, 2025
a92f214
fix: pass --tag prerelease for prerelease publishing (#268)
Strum355 Nov 14, 2025
e0f6df3
fix: use 'switch' workflow for trusted publishing to npm (#269)
Strum355 Nov 14, 2025
3c78f63
fix: remove explicit registry from npm publish workflows (#270)
Strum355 Nov 14, 2025
f96b091
chore: verbose npm publish output for debugging (#271)
Strum355 Nov 14, 2025
f741363
chore: build and publish container image to ghcr.io (#263)
ruromero Nov 17, 2025
e13a06d
chore: trigger stage pipeline when publish workflows change (#272)
Strum355 Nov 17, 2025
ea76472
chore: use node 24 in workflows (#273)
Strum355 Nov 17, 2025
c2ce813
chore: refactor workflows (#274)
ruromero Nov 17, 2025
15afd53
fix: ci refs (#275)
ruromero Nov 17, 2025
7da70aa
fix: use short sha for `ea` versioning (#276)
ruromero Nov 18, 2025
f9025c1
chore: rename container script (#277)
ruromero Nov 18, 2025
334513c
feat: support image scan in cli (#278)
ruromero Nov 18, 2025
4321869
fix: simplify workflow triggers (#282)
ruromero Nov 19, 2025
2eeeeba
chore: rename Exhort to Trustify DA (#280)
ruromero Nov 19, 2025
c368bb8
chore: remove local integration tests (#285)
Strum355 Nov 25, 2025
96817e4
fix: validate for empty group ID/namespace (#284)
Strum355 Nov 27, 2025
acd33be
chore: open PR on new release (#295)
Strum355 Dec 9, 2025
73ab812
chore: open PR on new release (attempt 2) (#297)
Strum355 Dec 9, 2025
c80294b
chore: open PR on new release (attempt 3) (#298)
Strum355 Dec 9, 2025
c10bed5
fix: remove erroneous extra " in release pipeline (#299)
Strum355 Dec 9, 2025
5f9cb13
fix: include mandatory 'body' parameter to 'gh pr create' (#300)
Strum355 Dec 10, 2025
50acba2
fix: proper newline commands in workflow (#301)
Strum355 Dec 10, 2025
7fb7069
fix: include pull-request write permission in workflow (#302)
Strum355 Dec 10, 2025
91b0e1a
chore: update publish pipeline to be run via workflow_call from relea…
Strum355 Dec 10, 2025
bac28d3
fix: correctly trigger publish from release (#306)
Strum355 Dec 10, 2025
4a427e5
fix: set id-token write permissions in calling workflow (#308)
Strum355 Dec 10, 2025
e78dbd6
fix: use workflow_run instead of workflow_call due to Trusted Publish…
Strum355 Dec 10, 2025
f9568b7
fix: use upload-artifact@v5 instead of v2 (#311)
Strum355 Dec 10, 2025
7d6480b
fix: match releasebranch artifact name with filename (#313)
Strum355 Dec 10, 2025
3f0724f
fix: add 'if' guard to prod publish pipeline and add 'skip ci' to rel…
Strum355 Dec 11, 2025
b951581
build: release 0.3.0 (#314) [skip ci]
github-actions[bot] Dec 16, 2025
c9a9877
fix: it using a wrong reference for PRs (#322)
ruromero Jan 14, 2026
a3bd6e4
fix: add missing binaries to container image (#321)
ruromero Jan 15, 2026
fbdacbb
fix: use venv in python (#326)
ruromero Jan 15, 2026
b40d888
chore: enhance error prompt (#329)
ruromero Jan 15, 2026
daa4d82
chore(deps): exclude tst_manifests from dependabot scan (#332)
ruromero Jan 15, 2026
8178c04
build(deps): bump actions/checkout from 4 to 6 (#335)
dependabot[bot] Jan 15, 2026
3aa725a
fix: corepack permissions (#330)
ruromero Jan 15, 2026
02983f2
build(deps): bump amannn/action-semantic-pull-request from 5 to 6 (#339)
dependabot[bot] Jan 15, 2026
904e9f2
build(deps): bump actions/setup-go from 5 to 6 (#333)
dependabot[bot] Jan 15, 2026
57f5d5e
build(deps): bump docker/build-push-action from 5 to 6 (#334)
dependabot[bot] Jan 15, 2026
e12bc82
build(deps): bump actions/setup-python from 4 to 6 (#337)
dependabot[bot] Jan 15, 2026
ce73b2f
fix: support yarn classic (#350)
ruromero Jan 19, 2026
9b6856c
build(deps): bump actions/setup-java from 4 to 5 (#347)
dependabot[bot] Jan 19, 2026
4580bb1
fix: python install is not required as it is ran using a sidecar (#353)
ruromero Jan 20, 2026
892110f
chore: ignore test manifests with dependabot (#360)
Strum355 Feb 3, 2026
d349baa
chore: bump dependency versions (#361)
Strum355 Feb 3, 2026
c555cdf
chore: bump GHA workflow versions (#368)
Strum355 Feb 5, 2026
8adb67b
build(deps): bump softprops/action-gh-release from 1 to 2 (#373)
dependabot[bot] Feb 10, 2026
62f6bc7
chore: group dependabot pull requests (#374)
Strum355 Feb 10, 2026
a109536
fix: extract & pass correct headers & header values to exhort (#378)
Strum355 Feb 17, 2026
aba4457
chore: bump yargs to v18 for Node 25 support (#392)
Strum355 Feb 27, 2026
477151f
feat: use tree-sitter to parse requirements.txt more correctly (#391)
Strum355 Mar 5, 2026
7ed8d8c
build(deps): bump the github-actions group across 1 directory with 6 …
dependabot[bot] Mar 11, 2026
63ae5c2
build(deps): bump minimatch and editorconfig (#400)
dependabot[bot] Mar 11, 2026
0e9ba23
feat: implement license resolution and identification (#403)
ruromero Mar 11, 2026
6549d2a
chore: fix requirements.txt parser init & re-enable python tests (#404)
Strum355 Mar 11, 2026
ff266a3
chore: use path.resolve to find tree-sitter wasm files (#407)
Strum355 Mar 11, 2026
f2c4df7
feat: fall back to LICENSE file (#409)
ruromero Mar 12, 2026
29f6867
chore: colocate tree-sitter-requirements.wasm to resolve issues when …
Strum355 Mar 12, 2026
cb4ae28
fix: use PackageURL to canonicalize purls when matching deps.dev lice…
soul2zimate Mar 18, 2026
608d6fa
feat: rust analysis support (#411)
a-oren Mar 18, 2026
59f00f7
fix: analysis of an empty manifest returns non-zero scanned deps (#422)
a-oren Mar 23, 2026
9988076
fix: update npm before npm ci in CI workflows (#427)
a-oren Mar 24, 2026
2ea1d77
feat: support JS/TS monorepo workspace batch analysis (#423)
ruromero Mar 24, 2026
7144952
fix: wrong content type for batch-analysis (#429)
ruromero Mar 24, 2026
4689ffb
feat: walk up directory tree to find JS lockfile in monorepos (#431)
ruromero Mar 25, 2026
b8af0f8
fix: downgrade p-limit from v5 to v4 for webpack compatibility (#444)
ruromero Mar 30, 2026
decf73e
fix: include peer, optional, and bundled deps in JS stack/component a…
soul2zimate Apr 3, 2026
b94e000
fix: exclude devDep transitive trees from yarn berry SBOM and use exa…
soul2zimate Apr 3, 2026
de12f6a
chore: correctly parse and differentiate between indirect & direct de…
Strum355 Apr 7, 2026
d71f957
Merge pull request #449 from soul2zimate/TC-3977
soul2zimate Apr 8, 2026
f2d5d72
feat: add support for pyproject.toml via uv & poetry (#432)
Strum355 Apr 8, 2026
4b1bc6a
feat: add support for UV/poetry workspaces
Strum355 Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 3 additions & 4 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,12 @@
}]
},
"settings": {
"typescript": {},
"import/resolver": {
"node": {
"typescript": {
"extensions": [".js"]
}
}
},
"ignorePatterns": [
"integration"
]
"ignorePatterns": []
}
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
blank_issues_enabled: false
contact_links:
- name: GitHub Discussions
url: https://github.com/trustification/exhort-javascript-api/discussions/
url: https://github.com/guacsec/trustify-da-javascript-client/discussions/
about: You can also use Discussions for questions and ideas.
47 changes: 47 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# yaml-language-server: $schema=https://www.schemastore.org/dependabot-2.0.json
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
exclude-paths:
- "test/providers/tst_manifests/**"
groups:
npm-dependencies:
patterns:
- "*"
- package-ecosystem: "docker"
directory: "/docker-image/Dockerfiles"
schedule:
interval: "daily"
groups:
dockerfile:
patterns:
- "*"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
groups:
github-actions:
patterns:
- "*"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
exclude-paths:
- "test/providers/tst_manifests/**"
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: "weekly"
exclude-paths:
- "test/providers/tst_manifests/**"
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
exclude-paths:
- "test/providers/tst_manifests/**"
26 changes: 26 additions & 0 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-workflow.json
---
name: Integration Tests

on:
workflow_run:
workflows: ["Test"]
types:
- completed
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
call-shared:
# Only run if the test workflow succeeded, or if triggered manually
if: |
(github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') ||
github.event_name == 'workflow_dispatch'
uses: trustification/exhort-integration-tests/.github/workflows/integration.yml@main
with:
language: javascript
repo-url: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_repository.full_name || github.repository }}
commit-sha: ${{ github.event_name == 'workflow_dispatch' && github.sha || github.event.workflow_run.head_sha || github.sha }}
18 changes: 7 additions & 11 deletions .github/workflows/pr-validation.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-workflow.json
---
name: Validate PR

on:
Expand All @@ -11,29 +13,23 @@ jobs:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
- uses: amannn/action-semantic-pull-request@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

commit-message-validation:
name: Validate commit messages
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 20
registry-url: 'https://npm.pkg.github.com'
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create .npmrc
run: |
echo "@trustification:registry=https://npm.pkg.github.com" >> .npmrc
node-version: 24

- name: Install commitlint
run: |
Expand Down
115 changes: 115 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-workflow.json
---
name: Publish

on:
workflow_dispatch:
workflow_run:
workflows: ["Release"]
types:
- completed
push:
branches:
- main

permissions:
contents: write
id-token: write
actions: read

jobs:
publish-ea:
if: github.event_name == 'push'
runs-on: ubuntu-latest
name: Publish EA release to NPM
steps:
- name: Checkout sources
uses: actions/checkout@v6
with:
ref: ${{ github.ref_name }}
fetch-depth: 0

- name: Install node 24
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
registry-url: 'https://registry.npmjs.org'

- name: Update npm
run: npm install -g npm@11.11.1

- name: Configure git
run: |
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor }}@users.noreply.github.com"

- name: Reset to commit
run: |
git reset --hard ${{ github.sha }}

- name: Get current version
id: current-version
run: |
VERSION=$(node -p "require('./package.json').version")
# Remove both -ea. and -ea- formats for compatibility
BASE_VERSION=$(echo "$VERSION" | sed -E 's/-ea[.-][0-9]+$//')
echo "base-version=$BASE_VERSION" >> "$GITHUB_OUTPUT"

- name: Install project modules
run: npm ci

- name: Compile project
run: npm run compile

- name: Publish package
run: |
SHORT_SHA=$(git rev-parse --short "${{ github.sha }}")
EA_VERSION="${{ steps.current-version.outputs.base-version }}-ea.${SHORT_SHA}"
npm version "$EA_VERSION" --no-git-tag-version
npm publish --verbose --tag ea --access public --provenance

publish-release:
if: (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
name: Publish release to NPM
steps:
- name: Get releasebranch.txt artifact from Release pipeline
if: github.event_name == 'workflow_run'
uses: actions/download-artifact@v8
with:
name: releasebranch.txt
run-id: ${{ github.event.workflow_run.id }}
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Read releasebranch.txt
if: github.event_name == 'workflow_run'
id: releasebranch
run: |
echo "branch=$(cat releasebranch.txt)" >> "$GITHUB_OUTPUT"
rm releasebranch.txt

- name: Checkout sources
uses: actions/checkout@v6
with:
ref: ${{ (github.event_name == 'workflow_run' && steps.releasebranch.outputs.branch) || github.ref }}
fetch-depth: 0

- name: Install node 24
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
registry-url: 'https://registry.npmjs.org'

- name: Update npm
run: npm install -g npm@11.11.1

- name: Install project modules
run: npm ci

- name: Compile project
run: npm run compile

- name: Publish package
run: npm publish --verbose --access public --provenance
104 changes: 104 additions & 0 deletions .github/workflows/push-to-registry.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-workflow.json
---
name: Push to registry

on:
workflow_dispatch:
push:
branches:
- main
tags:
- 'v*.*.*'

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Install node 24
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm

- name: Install latest npm
run: npm install -g npm@11.11.1

- name: Install project modules
run: npm ci

- name: Compile project
run: npm run compile

- name: Determine package version
id: version
run: |
if [[ "${GITHUB_REF}" =~ refs/tags/ ]]; then
# Release tag
VERSION="${GITHUB_REF#refs/tags/v}"
EA_BUILD=false
elif [ "${GITHUB_REF}" = "refs/heads/main" ]; then
# EA build for main
BASE=$(node -p "require('./package.json').version" | sed -E 's/-ea[.-][0-9]+$//')
SHORT_SHA=$(git rev-parse --short "${GITHUB_SHA}")
VERSION="${BASE}-ea.${SHORT_SHA}"
EA_BUILD=true
else
echo "Not building image for this branch"
exit 0
fi

echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "ea_build=$EA_BUILD" >> $GITHUB_OUTPUT

- name: Get image metadata
id: image-meta
run: |
echo "revision=${{ github.sha }}" >> $GITHUB_OUTPUT
echo "created=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Log in to Container Registry
uses: docker/login-action@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v6
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest,enable=${{ steps.version.outputs.ea_build == 'true' }}
type=raw,value=${{ steps.version.outputs.version }}

- name: Build and push Docker image
uses: docker/build-push-action@v7
with:
context: .
file: ./docker-image/Dockerfiles/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
IMAGE_VERSION=${{ steps.version.outputs.version }}
IMAGE_REVISION=${{ steps.image-meta.outputs.revision }}
IMAGE_CREATED=${{ steps.image-meta.outputs.created }}
cache-from: type=gha
cache-to: type=gha,mode=max
provenance: true
sbom: true
Loading
Loading