Replies: 5 comments 2 replies
Gradle (Groovy DSL / Kotlin DSL)While working with Gradle-based Java projects, I encountered two separate limitations in GitHub’s dependency graph support. 1. Package detection issueProblemGitHub may have difficulty inferring package coordinates directly from Gradle repositories. In one of my projects, the package:
was not automatically associated with the repository when using Gradle configuration. WorkaroundAdding a minimal Example commit: lightsail-network/java-stellar-sdk@2ba274b After adding the This suggests GitHub’s ecosystem detection works more reliably when Maven metadata is present. 2. Reverse dependency tracking issue (Dependents)ExperimentTo verify how GitHub tracks reverse dependencies for Gradle projects, I created three minimal Java projects: Each project depends on the same library: For all repositories:
ResultWhen checking the Dependents page for ImplicationThis suggests GitHub’s reverse dependency tracking currently works better for Maven than Gradle. For ecosystems heavily using Gradle, this can lead to undercounting of dependents and incomplete dependency graphs. |
Swift Package ManagerI maintain the Stellar iOS SDK, which is distributed via Swift Package Manager. I ran into two issues with GitHub's dependency graph support for SPM. 1. SPM dependencies not detected in SBOMProblemGitHub's Dependency Graph API does not detect Swift Package Manager dependencies declared in For Soneso/stellar-ios-mac-sdk, the SBOM returned by For comparison, the same API correctly detects:
Test: does
|
|
Thank you both for the thorough testing and experimentation! I've found a couple of official SBOM generators for these ecosystems, which to me look reliable enough to build upon. Asking for your expert opinion, since I do not have any active Gradle or Swift projects myself. @overcat would you mind reviewing setup-gradle and reporting back how many of your issues it would address when adopted? @christian-rogobete the same question but for the new SwiftPM feature. Since that doesn't include an Action that submits the SBOM to GitHub yet, I'm very curious to learn if an unofficial Action is available and worth using. Or, should we consider bypassing the GitHub dependency graph and support SwiftPM directly in the PG Atlas SBOM Action? Or in a separate precursor action that does submit to GitHub like the Gradle one does, so we can keep the main action simple? Edit: all the "built-in" Automatic dependency submission is just ecosystem-specific Actions under the hood. There's nothing wrong with adding support, or choosing a better Action than the one GitHub likes to run by default. |
Update: Dependency Submission API works for SPMI found vapor-community/swift-dependency-submission (v0.2.0, February 2026), a GitHub Action that parses Swift dependencies and submits them via the Dependency Submission API. I tested it with a third repo: demo-dependents-spm-submission. The workflow ran successfully and the SBOM now includes stellar-ios-mac-sdk: For comparison, the two repos without the action still show zero Swift dependencies. The Dependents page for stellar-ios-mac-sdk still shows 0 repositories, so the Dependency Submission API does not feed into reverse dependency tracking.
Regarding SE-0509 (native SBOM generation in SwiftPM) — the proposal was accepted in February but the latest SwiftPM release is from October 2025. No release with this feature yet. |
Native Git DependenciesAn observation: GitHub's Automatic dependency submission excludes declared dependencies on git URLs. So do all the snapshot generators for the Dependency Submission API ( I want to point this out as (yet another) known systematic coverage gap. Found while investigating if an SBOM ingestion fallback could be removed. The dependencies in questionMany ecosystems and their package managers natively clone, build, and resolve dependencies directly from Git repositories and record exact Git commit hashes in their lockfiles. This is of course done to depend on code that's not published as a package, but I've done it for other reasons, targeting a fork, an unreleased fix commit, or a specific branch.
These native git dependencies are first-class citizens, and I'd think they should be included in any general-purpose SBOM. The examples I could quickly find that have Dependency Submission APIWhat about the submission paths that go through the Dependency Submission API? Well, in theory it's possible to submit git dependencies with e.g. the Syft and Trivy prefer using the package registry PURLs, even when this is less accurate than the actual declared dependency. That at least preserves some reference, but loses the nuance of dependency on a fork or an unreleased commit — it uses the version kept in the git source. For Python (sorry I have not tested everything), GitHub's Automatic dependency submission simply drops any git dependencies. A custom Action for I suspect the reason is the security-orientation: the most important use case of GitHub's Dependency Graph is Dependabot, and it is definitely oriented towards published packages. Although it's possible to publish a security advisory for specific commits and commit ranges (without any version tags), I'm not sure how complete the tooling support actually is. I'll leave that demo for another day. For now, the gap to be aware of: we should expect any declared dependencies on git repos to be missing from the SBOM that PG Atlas ingests. |
Uh oh!
There was an error while loading. Please reload this page.
Following the recent discussion about dependency graphs and SBOM submissions, I wanted to start a thread to track software ecosystems where GitHub’s Dependency Graph does not work out-of-the-box.
The goal of this discussion is to collect practical findings from contributors so we can document:
• ecosystems with incomplete GitHub support
• repository configurations required for dependency detection
• workarounds used in practice
Instead of putting everything into a single post, it might be clearer if we track one ecosystem per reply.
That way:
I'll start with Gradle in the first reply.
If others have encountered similar issues with ecosystems such as Swift Package Manager, .NET, Go modules, etc., please feel free to add them below.
All reactions