@@ -420,6 +420,70 @@ github.repository @defaults("fullName") {
420420 environments() []github.environment
421421 // Deployments for the repository
422422 deployments() []github.deployment
423+ // Software Bill of Materials (SPDX format) for the repository
424+ spdxSbom() github.repository.sbom
425+ }
426+
427+ // SPDX SBOM for a GitHub repository
428+ private github.repository.sbom @defaults("name spdxVersion") {
429+ // SPDX identifier for the document
430+ spdxId string
431+ // Version of the SPDX specification (e.g., "SPDX-2.3")
432+ spdxVersion string
433+ // Name of the SPDX document (e.g., "owner/repo")
434+ name string
435+ // License under which the SPDX document is released
436+ dataLicense string
437+ // Namespace URI for the document
438+ documentNamespace string
439+ // Time when the SBOM was generated
440+ createdAt time
441+ // List of creators of the SBOM
442+ creators []string
443+ // List of packages described in the SBOM
444+ packages []github.repository.sbom.package
445+ // Dependency relationships between packages
446+ relationships []github.repository.sbom.relationship
447+ }
448+
449+ // A package entry in a GitHub repository SBOM
450+ private github.repository.sbom.package @defaults("name versionInfo") {
451+ // Unique SPDX identifier for this package
452+ spdxId string
453+ // Package name
454+ name string
455+ // Package version or version range
456+ versionInfo string
457+ // Download location
458+ downloadLocation string
459+ // Whether file contents were analyzed
460+ filesAnalyzed bool
461+ // Concluded license
462+ licenseConcluded string
463+ // License declared by the package author
464+ licenseDeclared string
465+ // External references (e.g., purl)
466+ externalRefs []github.repository.sbom.package.externalRef
467+ }
468+
469+ // An external reference for a package in a GitHub repository SBOM
470+ private github.repository.sbom.package.externalRef {
471+ // The category of reference to an external resource this reference refers to. E.g. `PACKAGE-MANAGER`.
472+ referenceCategory string
473+ // A locator for the particular external resource this reference refers to. E.g. `pkg:gem/rails@6.0.1`.
474+ referenceLocator string
475+ // The type of the external reference. E.g. `purl`.
476+ referenceType string
477+ }
478+
479+ // A relationship entry between two SPDX elements
480+ private github.repository.sbom.relationship {
481+ // Type of relationship (e.g., "DEPENDS_ON")
482+ relationshipType string
483+ // SPDX identifier of the source element
484+ spdxElementId string
485+ // SPDX identifier of the target element
486+ relatedSpdxElement string
423487}
424488
425489// GitHub license
0 commit comments