Skip to content

Upload SBOM su Dependency-Track nella pipeline - #880

Merged
pintorig merged 3 commits into
3.10.xfrom
feature/dependency-track-upload
Sep 3, 2026
Merged

Upload SBOM su Dependency-Track nella pipeline#880
pintorig merged 3 commits into
3.10.xfrom
feature/dependency-track-upload

Conversation

@pintorig

@pintorig pintorig commented Sep 3, 2026

Copy link
Copy Markdown
Member

Completa il rollout dell'upload SBOM su Dependency-Track, gia' attivo sui componenti backend e frontend. Questo e' il progetto core, che va sotto il progetto padre GovPay-Legacy.

PR aperta su 3.10.x come richiesto.

Cosa cambia

.github/workflows/maven.yml — nuovo job dependency-track-upload, inserito dopo il job sbom gia' esistente. Qui, a differenza dei frontend, l'SBOM veniva gia' generato: serviva solo l'upload.

script/sbom/upload-sbom-parent-required.sh — copia identica dello script gia' su main di govpay-common.

Due adattamenti specifici di questo repository

Esecuzione su master e sulle linee di manutenzione. L'upload deve avvenire sia su master sia su 3.10.x. Ho usato la stessa condizione gia' adottata dal job docker_dev di questo workflow:

github.ref == 'refs/heads/master' || endsWith(github.ref, '.x')

cosi' la regola copre 3.10.x e ogni futura linea x.y.x senza doverla riaprire a ogni branch nuovo. La versione su Dependency-Track e' il nome del branch, quindi master e 3.10.x convivono come versioni distinte dello stesso progetto. Sui tag la versione e' il tag ed e' marcata latest.

Nome del progetto forzato. L'artifactId dell'aggregatore e' letteralmente bom, quindi senza intervento il progetto sarebbe comparso su Dependency-Track come bom 3.10.0-SNAPSHOT — confondibile con govpay-bom. DTRACK_PROJECT_NAME lo forza a govpay.

Verifiche

L'SBOM e' stato generato davvero in locale su questo progetto: 719 KB, 278 componenti, metadata.component = it.govpay:bom:3.10.0-SNAPSHOT — da cui la necessita' dell'override sul nome, confermata dandolo in pasto allo script di upload.

La logica di versione e' stata verificata su tutti i casi: master -> master, 3.10.x -> 3.10.x, 3.9.x -> 3.9.x, un branch qualsiasi -> dev, tag 3.10.0 -> 3.10.0 con latest=true.

YAML del workflow validato e job agganciato a needs: [sbom]. Non e' stato eseguito un upload reale verso il server da questo repository.

Prerequisito

Progetto padre GovPay-Legacy presente su Dependency-Track, senza versione. Il secret GOVPAY_DTRACK_API_KEY risulta gia' configurato.

Aggiunto il job dependency-track-upload al workflow maven.yml, che carica
l'SBOM CycloneDX prodotto dal job sbom gia' esistente sotto il progetto
GovPay-Legacy, e lo script script/sbom/upload-sbom-parent-required.sh.

L'esecuzione copre tag, master e le linee di manutenzione x.y.x, quindi
anche 3.10.x, con la stessa condizione gia' usata da docker_dev. La
versione su Dependency-Track e' il nome del branch, cosi' master e 3.10.x
convivono come versioni distinte dello stesso progetto; sui tag e' il tag
ed e' marcata latest.

L'artifactId dell'aggregatore e' 'bom': senza override il progetto
comparirebbe su Dependency-Track con quel nome, quindi DTRACK_PROJECT_NAME
lo forza a 'govpay'.

Replica di quanto gia' attivo sui componenti backend e frontend.
Il default del plugin CycloneDX e' projectType=library, che su
Dependency-Track avrebbe classificato come libreria un progetto
distribuito invece come applicazione. Aggiunto -DprojectType=application
alla generazione dell'SBOM.
@pintorig
pintorig merged commit 561791a into 3.10.x Sep 3, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant