Skip to content

Commit 2511800

Browse files
authored
✨ Github repository dependency graph SBOM resource. (#6695)
* ✨Github repository dependency graph resource. Signed-off-by: Vasil Sirakov <sirakov97@gmail.com> * Fix doc. Signed-off-by: Vasil Sirakov <sirakov97@gmail.com> * Simplify __id definitions. Signed-off-by: Vasil Sirakov <sirakov97@gmail.com> * Fix review comments. Signed-off-by: Vasil Sirakov <sirakov97@gmail.com> --------- Signed-off-by: Vasil Sirakov <sirakov97@gmail.com>
1 parent 89f99b8 commit 2511800

File tree

4 files changed

+723
-37
lines changed

4 files changed

+723
-37
lines changed

providers/github/resources/github.lr

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)