Skip to content

Upload SBOM su Dependency-Track nella pipeline - #74

Merged
pintorig merged 3 commits into
mainfrom
feature/dependency-track-upload
Sep 3, 2026
Merged

Upload SBOM su Dependency-Track nella pipeline#74
pintorig merged 3 commits into
mainfrom
feature/dependency-track-upload

Conversation

@pintorig

@pintorig pintorig commented Sep 3, 2026

Copy link
Copy Markdown
Member

Replica su questo componente il caricamento dell'SBOM su Dependency-Track, gia' attivo e verificato su govpay-common.

Cosa cambia

.github/workflows/maven.yml — nuovo job dependency-track-upload, inserito subito dopo il job sbom esistente:

  • scarica l'artifact sbom-report e carica sbom/cyclonedx/bom.cdx.json sotto il progetto padre GovPay-Backend
  • gira su tag e sui branch main/master/staging; forzabile con la variabile FORCE_DTRACK_UPLOAD_JOB, disattivabile con DISABLE_DTRACK_UPLOAD_JOB, che ha la precedenza
  • continue-on-error riproduce l'allow_failure differenziato del job GitLab: bloccante su tag e branch protetti, tollerante sulle esecuzioni forzate
  • versione e flag latest: su tag la versione e' il tag ed e' marcata latest, sui branch protetti e' il nome del branch, altrimenti dev
  • uno step di verifica prerequisiti controlla separatamente secret, script e SBOM, con un messaggio dedicato per ciascuno

script/sbom/upload-sbom-parent-required.sh — copia identica dello script gia' su main di govpay-common. Adattamento GovPay dello script GovDesk upload-sbom-dependency-track.sh, con la gerarchia collassata a un solo livello: il progetto padre deve gia' esistere e nessun livello intermedio viene creato. Nome e versione del progetto foglia sono ricavati dai metadati dell'SBOM, sovrascrivibili con DTRACK_PROJECT_NAME e DTRACK_VERSION.

Prerequisito

Secret GOVPAY_DTRACK_API_KEY configurato sul repository, con permessi VIEW_PORTFOLIO, PROJECT_CREATION_UPLOAD, BOM_UPLOAD e PORTFOLIO_MANAGEMENT (quest'ultimo perche' sui tag la versione viene marcata latest).

Verifiche

YAML del workflow validato e job correttamente agganciato a needs: [sbom]; sintassi dello script verificata. Il flusso completo, upload compreso, e' gia' stato eseguito con successo su govpay-common.

Non e' stato eseguito un run reale su questo repository: l'upload e' verificabile solo dopo il merge, oppure lanciando il workflow con FORCE_DTRACK_UPLOAD_JOB, che e' tollerante ai fallimenti e non blocca la pipeline.

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

Replica di quanto gia' attivo su govpay-common.
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 992c91f into main Sep 3, 2026
7 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